From 654a00ece18fec6b44034f2aa6c552e5d20849fa Mon Sep 17 00:00:00 2001 From: Raquel Eucaria <81540491+raqueleucaria@users.noreply.github.com> Date: Thu, 7 Dec 2023 23:41:10 +0000 Subject: [PATCH] excluindo arquivos --- project/app/__init__.py | 0 .../app/__pycache__/__init__.cpython-310.pyc | Bin 167 -> 0 bytes .../app/__pycache__/__init__.cpython-311.pyc | Bin 177 -> 0 bytes .../app/__pycache__/__init__.cpython-38.pyc | Bin 163 -> 0 bytes project/app/__pycache__/admin.cpython-310.pyc | Bin 208 -> 0 bytes project/app/__pycache__/admin.cpython-311.pyc | Bin 232 -> 0 bytes project/app/__pycache__/admin.cpython-38.pyc | Bin 204 -> 0 bytes project/app/__pycache__/apps.cpython-310.pyc | Bin 429 -> 0 bytes project/app/__pycache__/apps.cpython-311.pyc | Bin 531 -> 0 bytes project/app/__pycache__/apps.cpython-38.pyc | Bin 423 -> 0 bytes project/app/__pycache__/capa.cpython-38.pyc | Bin 5935 -> 0 bytes project/app/__pycache__/estilo.cpython-38.pyc | Bin 5019 -> 0 bytes .../__pycache__/estilo_fundep.cpython-38.pyc | Bin 2291 -> 0 bytes .../app/__pycache__/models.cpython-310.pyc | Bin 205 -> 0 bytes .../app/__pycache__/models.cpython-311.pyc | Bin 229 -> 0 bytes project/app/__pycache__/models.cpython-38.pyc | Bin 3543 -> 0 bytes .../app/__pycache__/new_dev.cpython-38.pyc | Bin 4072 -> 0 bytes .../__pycache__/oracle_cruds.cpython-38.pyc | Bin 2962 -> 0 bytes .../__pycache__/preenche_fub.cpython-38.pyc | Bin 16538 -> 0 bytes .../preenche_fundep.cpython-38.pyc | Bin 4006 -> 0 bytes .../preencher_colunas.cpython-38.pyc | Bin 3050 -> 0 bytes project/app/__pycache__/urls.cpython-310.pyc | Bin 475 -> 0 bytes project/app/__pycache__/urls.cpython-311.pyc | Bin 859 -> 0 bytes project/app/__pycache__/urls.cpython-38.pyc | Bin 543 -> 0 bytes project/app/__pycache__/views.cpython-310.pyc | Bin 2125 -> 0 bytes project/app/__pycache__/views.cpython-311.pyc | Bin 4213 -> 0 bytes project/app/__pycache__/views.cpython-38.pyc | Bin 7335 -> 0 bytes project/app/admin.py | 3 - project/app/apps.py | 6 - project/app/capa.py | 329 -- project/app/capa_60/agencia.png | Bin 1007 -> 0 bytes project/app/capa_60/agencia_branco.png | Bin 1140 -> 0 bytes project/app/capa_60/agente.png | Bin 1123 -> 0 bytes project/app/capa_60/agente_branco.png | Bin 1240 -> 0 bytes project/app/capa_60/analista.png | Bin 1698 -> 0 bytes project/app/capa_60/analista_branco.png | Bin 1885 -> 0 bytes .../app/capa_60/assinaturas_responsaveis.png | Bin 1148 -> 0 bytes project/app/capa_60/assistente.png | Bin 1804 -> 0 bytes project/app/capa_60/assistente_branco.png | Bin 2000 -> 0 bytes project/app/capa_60/banco.png | Bin 1007 -> 0 bytes project/app/capa_60/banco_branco.png | Bin 1140 -> 0 bytes project/app/capa_60/centrodecusto.png | Bin 1058 -> 0 bytes project/app/capa_60/centrodecusto_branco.png | Bin 1035 -> 0 bytes project/app/capa_60/conta_corrente.png | Bin 995 -> 0 bytes project/app/capa_60/conta_corrente_branco.png | Bin 1140 -> 0 bytes project/app/capa_60/coordenador.png | Bin 1102 -> 0 bytes project/app/capa_60/coordenador_branco.png | Bin 1130 -> 0 bytes project/app/capa_60/dadosdoacordo.png | Bin 1061 -> 0 bytes project/app/capa_60/gerente.png | Bin 1635 -> 0 bytes project/app/capa_60/gerente_branco.png | Bin 1830 -> 0 bytes project/app/capa_60/periodo.png | Bin 1123 -> 0 bytes project/app/capa_60/periodo_branco.png | Bin 1123 -> 0 bytes ...resta\303\247\303\243odecontasparcial.png" | Bin 1162 -> 0 bytes project/app/capa_60/processo.png | Bin 1058 -> 0 bytes project/app/capa_60/processo_branco.png | Bin 1046 -> 0 bytes project/app/capa_60/projeto.png | Bin 2387 -> 0 bytes project/app/capa_60/projeto_branco.png | Bin 2621 -> 0 bytes project/app/estilo_fub.py | 3798 ----------------- project/app/estilo_fundep.py | 82 - project/app/migrations/0001_initial.py | 124 - ...ia_mapeamento_agencia_bancaria_and_more.py | 17 - .../0003_alter_mapeamento_id_tipo.py | 18 - project/app/migrations/__init__.py | 0 .../__pycache__/0001_initial.cpython-38.pyc | Bin 3528 -> 0 bytes ...o_agencia_bancaria_and_more.cpython-38.pyc | Bin 589 -> 0 bytes ...03_alter_mapeamento_id_tipo.cpython-38.pyc | Bin 662 -> 0 bytes .../__pycache__/__init__.cpython-310.pyc | Bin 178 -> 0 bytes .../__pycache__/__init__.cpython-311.pyc | Bin 188 -> 0 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 174 -> 0 bytes project/app/models.py | 98 - project/app/new_dev.py | 225 - project/app/oracle_cruds.py | 199 - project/app/planilhas/ModeloFAP.xlsx | Bin 73080 -> 0 bytes project/app/planilhas/ModeloFINEP.xlsx | Bin 347656 -> 0 bytes project/app/planilhas/ModeloFUNDEP.xlsx | Bin 24116 -> 0 bytes project/app/planilhas/ModeloOPAS.xlsx | Bin 48497 -> 0 bytes project/app/planilhas/Modelo_Fub.xlsx | Bin 21767 -> 0 bytes .../planilhas_preenchidas/planilhas/test.txt | 1 - project/app/preenche_fub.py | 876 ---- project/app/preenche_fundep.py | 157 - project/app/static/css/cadastro.css | 192 - project/app/static/css/home.css | 262 -- project/app/static/css/style.css | 273 -- project/app/static/imagem/finateclogo.svg | 18 - project/app/static/imagem/fundoLogo.svg | 8 - project/app/static/imagem/logo.svg | 8 - project/app/static/imagem/logoFinatec.png | Bin 10833 -> 0 bytes project/app/static/imagem/perfil.svg | 13 - project/app/static/imagem/perfilC.svg | 9 - project/app/static/imagem/sairImg.svg | 5 - project/app/templates/base.html | 30 - project/app/templates/cadastro.html | 120 - project/app/templates/cadastro_legado.html | 99 - project/app/templates/home.html | 37 - project/app/templates/login.html | 94 - project/app/templates/login_legado.html | 95 - project/app/templates/projeto.html | 147 - project/app/templates/projeto_legado.html | 101 - project/app/tests.py | 3 - project/app/urls.py | 16 - project/app/views.py | 379 -- project/backend/__init__.py | 0 .../__pycache__/__init__.cpython-38.pyc | Bin 167 -> 0 bytes .../backend/__pycache__/admin.cpython-38.pyc | Bin 208 -> 0 bytes .../backend/__pycache__/apps.cpython-38.pyc | Bin 446 -> 0 bytes .../consultas_oracledb.cpython-38.pyc | Bin 1767 -> 0 bytes .../backend/__pycache__/models.cpython-38.pyc | Bin 205 -> 0 bytes .../__pycache__/teste_projects.cpython-38.pyc | Bin 1763 -> 0 bytes .../backend/__pycache__/urls.cpython-38.pyc | Bin 309 -> 0 bytes .../backend/__pycache__/views.cpython-38.pyc | Bin 2540 -> 0 bytes project/backend/admin.py | 3 - project/backend/apps.py | 6 - project/backend/consultas_oracledb.py | 107 - project/backend/migrations/__init__.py | 0 .../__pycache__/__init__.cpython-38.pyc | Bin 178 -> 0 bytes project/backend/models.py | 3 - project/backend/templates/backend/base.html | 26 - .../backend/templates/backend/projetos.html | 180 - project/backend/tests.py | 3 - project/backend/urls.py | 6 - project/backend/views.py | 86 - project/db.sqlite3 | Bin 147456 -> 0 bytes project/manage.py | 22 - project/project/__init__.py | 0 .../__pycache__/__init__.cpython-310.pyc | Bin 171 -> 0 bytes .../__pycache__/__init__.cpython-311.pyc | Bin 181 -> 0 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 167 -> 0 bytes .../__pycache__/settings.cpython-310.pyc | Bin 2096 -> 0 bytes .../__pycache__/settings.cpython-311.pyc | Bin 2528 -> 0 bytes .../project/__pycache__/urls.cpython-310.pyc | Bin 348 -> 0 bytes .../project/__pycache__/urls.cpython-311.pyc | Bin 497 -> 0 bytes .../project/__pycache__/wsgi.cpython-310.pyc | Bin 574 -> 0 bytes .../project/__pycache__/wsgi.cpython-311.pyc | Bin 703 -> 0 bytes .../project/__pycache__/wsgi.cpython-38.pyc | Bin 570 -> 0 bytes project/project/asgi.py | 16 - project/project/populando_banco.py | 50 - project/project/settings.py | 160 - project/project/urls.py | 9 - project/project/wsgi.py | 16 - project/tabela | Bin 127104 -> 0 bytes requirements.txt | 3 - src/codigo-inicial/FUNDEP.xlsx | Bin 8963 -> 0 bytes src/codigo-inicial/antigo_dev.py | 351 -- src/codigo-inicial/app.py | 78 - src/codigo-inicial/index.py | 70 - src/codigo-inicial/inicial.py | 50 - src/scripts/modeloTemplates.py | 318 -- 147 files changed, 9405 deletions(-) delete mode 100644 project/app/__init__.py delete mode 100644 project/app/__pycache__/__init__.cpython-310.pyc delete mode 100644 project/app/__pycache__/__init__.cpython-311.pyc delete mode 100644 project/app/__pycache__/__init__.cpython-38.pyc delete mode 100644 project/app/__pycache__/admin.cpython-310.pyc delete mode 100644 project/app/__pycache__/admin.cpython-311.pyc delete mode 100644 project/app/__pycache__/admin.cpython-38.pyc delete mode 100644 project/app/__pycache__/apps.cpython-310.pyc delete mode 100644 project/app/__pycache__/apps.cpython-311.pyc delete mode 100644 project/app/__pycache__/apps.cpython-38.pyc delete mode 100644 project/app/__pycache__/capa.cpython-38.pyc delete mode 100644 project/app/__pycache__/estilo.cpython-38.pyc delete mode 100644 project/app/__pycache__/estilo_fundep.cpython-38.pyc delete mode 100644 project/app/__pycache__/models.cpython-310.pyc delete mode 100644 project/app/__pycache__/models.cpython-311.pyc delete mode 100644 project/app/__pycache__/models.cpython-38.pyc delete mode 100644 project/app/__pycache__/new_dev.cpython-38.pyc delete mode 100644 project/app/__pycache__/oracle_cruds.cpython-38.pyc delete mode 100644 project/app/__pycache__/preenche_fub.cpython-38.pyc delete mode 100644 project/app/__pycache__/preenche_fundep.cpython-38.pyc delete mode 100644 project/app/__pycache__/preencher_colunas.cpython-38.pyc delete mode 100644 project/app/__pycache__/urls.cpython-310.pyc delete mode 100644 project/app/__pycache__/urls.cpython-311.pyc delete mode 100644 project/app/__pycache__/urls.cpython-38.pyc delete mode 100644 project/app/__pycache__/views.cpython-310.pyc delete mode 100644 project/app/__pycache__/views.cpython-311.pyc delete mode 100644 project/app/__pycache__/views.cpython-38.pyc delete mode 100644 project/app/admin.py delete mode 100644 project/app/apps.py delete mode 100644 project/app/capa.py delete mode 100644 project/app/capa_60/agencia.png delete mode 100644 project/app/capa_60/agencia_branco.png delete mode 100644 project/app/capa_60/agente.png delete mode 100644 project/app/capa_60/agente_branco.png delete mode 100644 project/app/capa_60/analista.png delete mode 100644 project/app/capa_60/analista_branco.png delete mode 100644 project/app/capa_60/assinaturas_responsaveis.png delete mode 100644 project/app/capa_60/assistente.png delete mode 100644 project/app/capa_60/assistente_branco.png delete mode 100644 project/app/capa_60/banco.png delete mode 100644 project/app/capa_60/banco_branco.png delete mode 100644 project/app/capa_60/centrodecusto.png delete mode 100644 project/app/capa_60/centrodecusto_branco.png delete mode 100644 project/app/capa_60/conta_corrente.png delete mode 100644 project/app/capa_60/conta_corrente_branco.png delete mode 100644 project/app/capa_60/coordenador.png delete mode 100644 project/app/capa_60/coordenador_branco.png delete mode 100644 project/app/capa_60/dadosdoacordo.png delete mode 100644 project/app/capa_60/gerente.png delete mode 100644 project/app/capa_60/gerente_branco.png delete mode 100644 project/app/capa_60/periodo.png delete mode 100644 project/app/capa_60/periodo_branco.png delete mode 100644 "project/app/capa_60/presta\303\247\303\243odecontasparcial.png" delete mode 100644 project/app/capa_60/processo.png delete mode 100644 project/app/capa_60/processo_branco.png delete mode 100644 project/app/capa_60/projeto.png delete mode 100644 project/app/capa_60/projeto_branco.png delete mode 100644 project/app/estilo_fub.py delete mode 100644 project/app/estilo_fundep.py delete mode 100644 project/app/migrations/0001_initial.py delete mode 100644 project/app/migrations/0002_rename_agencia_bancaria_mapeamento_agencia_bancaria_and_more.py delete mode 100644 project/app/migrations/0003_alter_mapeamento_id_tipo.py delete mode 100644 project/app/migrations/__init__.py delete mode 100644 project/app/migrations/__pycache__/0001_initial.cpython-38.pyc delete mode 100644 project/app/migrations/__pycache__/0002_rename_agencia_bancaria_mapeamento_agencia_bancaria_and_more.cpython-38.pyc delete mode 100644 project/app/migrations/__pycache__/0003_alter_mapeamento_id_tipo.cpython-38.pyc delete mode 100644 project/app/migrations/__pycache__/__init__.cpython-310.pyc delete mode 100644 project/app/migrations/__pycache__/__init__.cpython-311.pyc delete mode 100644 project/app/migrations/__pycache__/__init__.cpython-38.pyc delete mode 100644 project/app/models.py delete mode 100644 project/app/new_dev.py delete mode 100644 project/app/oracle_cruds.py delete mode 100644 project/app/planilhas/ModeloFAP.xlsx delete mode 100644 project/app/planilhas/ModeloFINEP.xlsx delete mode 100644 project/app/planilhas/ModeloFUNDEP.xlsx delete mode 100644 project/app/planilhas/ModeloOPAS.xlsx delete mode 100644 project/app/planilhas/Modelo_Fub.xlsx delete mode 100644 project/app/planilhas_preenchidas/planilhas/test.txt delete mode 100644 project/app/preenche_fub.py delete mode 100644 project/app/preenche_fundep.py delete mode 100644 project/app/static/css/cadastro.css delete mode 100644 project/app/static/css/home.css delete mode 100644 project/app/static/css/style.css delete mode 100644 project/app/static/imagem/finateclogo.svg delete mode 100644 project/app/static/imagem/fundoLogo.svg delete mode 100644 project/app/static/imagem/logo.svg delete mode 100644 project/app/static/imagem/logoFinatec.png delete mode 100644 project/app/static/imagem/perfil.svg delete mode 100644 project/app/static/imagem/perfilC.svg delete mode 100644 project/app/static/imagem/sairImg.svg delete mode 100644 project/app/templates/base.html delete mode 100644 project/app/templates/cadastro.html delete mode 100644 project/app/templates/cadastro_legado.html delete mode 100644 project/app/templates/home.html delete mode 100644 project/app/templates/login.html delete mode 100644 project/app/templates/login_legado.html delete mode 100644 project/app/templates/projeto.html delete mode 100644 project/app/templates/projeto_legado.html delete mode 100644 project/app/tests.py delete mode 100644 project/app/urls.py delete mode 100644 project/app/views.py delete mode 100644 project/backend/__init__.py delete mode 100644 project/backend/__pycache__/__init__.cpython-38.pyc delete mode 100644 project/backend/__pycache__/admin.cpython-38.pyc delete mode 100644 project/backend/__pycache__/apps.cpython-38.pyc delete mode 100644 project/backend/__pycache__/consultas_oracledb.cpython-38.pyc delete mode 100644 project/backend/__pycache__/models.cpython-38.pyc delete mode 100644 project/backend/__pycache__/teste_projects.cpython-38.pyc delete mode 100644 project/backend/__pycache__/urls.cpython-38.pyc delete mode 100644 project/backend/__pycache__/views.cpython-38.pyc delete mode 100644 project/backend/admin.py delete mode 100644 project/backend/apps.py delete mode 100644 project/backend/consultas_oracledb.py delete mode 100644 project/backend/migrations/__init__.py delete mode 100644 project/backend/migrations/__pycache__/__init__.cpython-38.pyc delete mode 100644 project/backend/models.py delete mode 100644 project/backend/templates/backend/base.html delete mode 100644 project/backend/templates/backend/projetos.html delete mode 100644 project/backend/tests.py delete mode 100644 project/backend/urls.py delete mode 100644 project/backend/views.py delete mode 100644 project/db.sqlite3 delete mode 100755 project/manage.py delete mode 100644 project/project/__init__.py delete mode 100644 project/project/__pycache__/__init__.cpython-310.pyc delete mode 100644 project/project/__pycache__/__init__.cpython-311.pyc delete mode 100644 project/project/__pycache__/__init__.cpython-38.pyc delete mode 100644 project/project/__pycache__/settings.cpython-310.pyc delete mode 100644 project/project/__pycache__/settings.cpython-311.pyc delete mode 100644 project/project/__pycache__/urls.cpython-310.pyc delete mode 100644 project/project/__pycache__/urls.cpython-311.pyc delete mode 100644 project/project/__pycache__/wsgi.cpython-310.pyc delete mode 100644 project/project/__pycache__/wsgi.cpython-311.pyc delete mode 100644 project/project/__pycache__/wsgi.cpython-38.pyc delete mode 100644 project/project/asgi.py delete mode 100644 project/project/populando_banco.py delete mode 100644 project/project/settings.py delete mode 100644 project/project/urls.py delete mode 100644 project/project/wsgi.py delete mode 100644 project/tabela delete mode 100644 requirements.txt delete mode 100644 src/codigo-inicial/FUNDEP.xlsx delete mode 100644 src/codigo-inicial/antigo_dev.py delete mode 100644 src/codigo-inicial/app.py delete mode 100644 src/codigo-inicial/index.py delete mode 100644 src/codigo-inicial/inicial.py delete mode 100644 src/scripts/modeloTemplates.py diff --git a/project/app/__init__.py b/project/app/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/project/app/__pycache__/__init__.cpython-310.pyc b/project/app/__pycache__/__init__.cpython-310.pyc deleted file mode 100644 index e84fc361ef85fb348174114d06da763f7c2c4c5a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167 zcmd1j<>g`kf}mTbsUZ3>h(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o6vDKO;XkRX?>f zIk6}+QQsv$ximL5uOz=%-#xP=qcln1z%)J}vmiAmGcVOGGcU0uHCex)C_gJTxkNv) kpg=!9J~J<~BtBlRpz;=nO>TZlX-=vg$c|zrAi=@_0L*VFcmMzZ diff --git a/project/app/__pycache__/__init__.cpython-311.pyc b/project/app/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index d0891a139a908db7190701a68cca3441767f04ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 177 zcmZ3^%ge<81n<^}rGn_kAOZ#$p^VRLK*n^26oz01O-8?!3`I;p{%4TnFBfO4n9$s)a00gqWrAXg`k0*&iIsUZ3>h(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o6v5KO;XkRlhW; zG_Ryo-zBv;yClCrKO;3aF)u$gN8i9SJ|MFoH77GK)h#nGu_QHFzn~~TD>b=9Ke3=d gKR!M)FS8^*Uaz3?7Kcr4eoARhsvXFN&p^xo02tmVE&u=k diff --git a/project/app/__pycache__/admin.cpython-310.pyc b/project/app/__pycache__/admin.cpython-310.pyc deleted file mode 100644 index 3afb4c850f8f7d28a3d562716efc026d499e1a13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 208 zcmYjKy$ZrG7)+{y2$jA@m&T==sDs!|L^l_S$%jp8en`{7NAi`jI{6Ate(mJJ-ElYE z*)&}c#5tC*MSl|5AS-0p^-jQjw~@-$EY diff --git a/project/app/__pycache__/admin.cpython-311.pyc b/project/app/__pycache__/admin.cpython-311.pyc deleted file mode 100644 index e5ec7b0e3d7148e4cddc8b03eead6e49d2c23ca4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 232 zcmZ3^%ge<81n<^}r8)uW#~=<2FhLogg@BCd3@HpLj5!Rsj8Tk?3@J>(44TX@K?*b( zZ?Pt()OlWaxQE^Ogep*Rt zMT|>+a%paAUP*C`foXg|WcT$)3~OXFK@mjIiYS^=NcgqT+fcea8=h+6Dn=_Ubptv?rvDy4`kQOSbVJ9_rkTYAG5^~45 WwXFY1?7bZ>lo7syCB@|rlKcRok281x diff --git a/project/app/__pycache__/apps.cpython-310.pyc b/project/app/__pycache__/apps.cpython-310.pyc deleted file mode 100644 index 63e76c30b31a6fdaccb636718f201756b9cae8c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 429 zcmYjOy-ve05VqqKrKMd^S0vUfF-tduT0reqA=t85ZtS$KoH)es04q$q39sapiC19a zoK~VI-RJxNvzbgr2E#suD46E=k?ZPVv|)y zNNuw_wOzQ*ES1#46W%oIbl?-lYFfv`ucczk5x`MZg(+5+yO4gmRbfvnT+tBM7dsL0os+LPt^G+7DY0X|19fe^6 w+pKx*rw@0tX8;L`ae{l>I*t7Kaj6j78~^(sr0^X+xj8Iy8;)f|tudOCKP5Z7D5n$&2g}tw|n8jy}SpgRSJJVy8Hu0 z^v9$O*IL;~Bvz@My_|yR?C$J0`^|hiyN``V70}*antY7=s|dcWRDgwsU;+#nals=x zAt1pSFzFtc%*lfc@QiC^I$=s5)Y6*>RgzUs!mu6qwllDbjC>yye^}s28`;jef?gwLevwv)aa}BSut5HqY&; zQdTRTDTG!kH9_Y&4MfZG;p$aK(K?3W1LJdabD0n_gPrN`IbV~=<{bXIapgmte*Qz{ Gmwf?o-Gs*g diff --git a/project/app/__pycache__/apps.cpython-38.pyc b/project/app/__pycache__/apps.cpython-38.pyc deleted file mode 100644 index bbc952964c4ce367c416fb1cece36bfa08fcead3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 423 zcmYjOy-ve05Vqq~YD>EyRwPEU#4KzGwNSxUArMOz%dM|%iesBP9${E)$2-%+?D59t)6)h+ww?rk1y%WWNzOjO; z^nqlZAB-XyZF*zpuB};=%Xzfy6Gdf&?2izDU?wRNMGK~qB2^53NjC|)UXRsUnx)Ov zEU&Br?enX0IS#eGDM71-N#~|nr|Ak|WCcPreIYO~=qL|_cn(tUJckMvGU!@JOc#qb zKaIXmvgu*17JesuWh>xe7EB%Z1pHHN9bZ8ujRnom&c$8nK$iw?N+WBSbGNZ;nAaRz uiR^Rt()J#=<|A}zN?Xe`OPYh-Krym4{@310@f1z>VmriTT$GQS7_dKf&S!4` diff --git a/project/app/__pycache__/capa.cpython-38.pyc b/project/app/__pycache__/capa.cpython-38.pyc deleted file mode 100644 index 1d709008c0e1941bfd6b02001f4a55b669d684d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5935 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 g&8PO|hSfk0Pf&8XW|O96JYPF$S&he}JaG)&Kwi diff --git a/project/app/__pycache__/estilo_fundep.cpython-38.pyc b/project/app/__pycache__/estilo_fundep.cpython-38.pyc deleted file mode 100644 index 6b7ce0a02c2100024d26cacf089913e06b4351e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2291 zcmahK+iu)M)MJltd&?$Gn*>@KNRhe-Wm6%9CbG z0FR0Ji{_PyMQoTW1hut>a}J!f&4wlMI!lBsZv{e7o~(yaB;8gN_L7(azO)&{l(fZB zM5Xlu~=SV3K+SWX@cv-(%z&pv}eXnW{X7seSHp#sJ^0$49# zGuLzNOdlD!0lFcjmd-MX(?Im49dxn+aD0C^jHvHRn}j?8#U$QiVbZ{|lCYTi0Y4ao zhfLPGK^!K1=4V|Vrb1TIAQQpG%AV~0q48Nz?A4=Y9}YJMok1c7%{7|s3zjzfG!7C* zqvpz&{#KaMC`{;jm?%4&DQA1ME1E%?Hfbipi21vNgwS+3J(AUw_5$utgjmXc2L{ck zz+2P#HGsP+z!%R9051H6t5#q~Xr~C=0nW*Ff)+Gz3nKcQHo`*B@pFWDoIZk$f#4yiP| zEMi>RJ(^G+MAGUo0o=D6hAj0N4~NiF0PP%7F2XKA?o%G5zM#*b!#32c&)HJ|f@c!|Fd%A-Q2-WwsCOhQouU=_nQBaM)_{_gIHJ2knmp|F1z#*A zw1)cK2gAAT$J?!ki);7cYj53ex7v%F_uJboen$~mU1)UB)-3Y1dZn4MC?sG?8JY$c zN&&Fdr3twJp$kR6I7;cz{kFaH==R1}cQ;<4#;`PA-C4Q2p^CGn3WDoX_6j2i)1xo0r8(QzTaVNUz#Zo6TwZTV)d=C@xps}7o5yhkCiS2Y|^hy z9wa>oP~jNqhG3X-WyVz+aOHaytfGyVW6FEf@6ssBxS@8iG7Lf-9I6mUETfGXX^Ef% zi6w0jKu7E|>AY6aRZ!NaRPY;${k&pQJq)4&^#yca6%=>uL={&<4Oq#OSn1>~2?lB6 zPf``=!Q!6(@bPME`@!Q)ztGRS@m?Znt5hCDfj2h+1c+8#Bi0Q>$P#b)y$r@u{GdBf zTu6|4x8F~HiSmCqzoGQOCyW=@&3I7dDywhZ9qJm$wqVeV5^_ujIXc!IR6-W2qq>d} zMl+~}9OD{t6b3EhdDsOEnnkll1)zCUH!k6D4bGJiZv)Rpm45@1oVrN2g`kf}mTbsg^+cF^Gc(44TX@fuanW zjJMcw^HWlDiv2X1ZgHk$CFZ5)>!l(44TX@K?*b( zZ?Wa(r=;c-`)M-W;!Md(%uCPLOGzqX21>4E_zY6>%gNa)CbT%Us5mA#KdmISBE}^@ zximL5ucSD}z%)J}vmiAmGcVOGGcU0uH94lBC_gJTxg;jBpdbcfv|d5wFAf_ZyEG@& eu80F@BqI^7$H(&R9Z4bXse%}^9U+}y? zwBY`#5boeh_t9{VmqITpky6R~(&J@b`N`uIQQ9y6SRoZ?s=NkGZK|n4Q|Aq68dFUT znkH{S)0%4P(6o66n$A?y;N2(Qpmzv=-k?;}BgsXW`dV~<6$p3mrB}+HCp=Q(9x02; zewCMa`FV-dfa|=%tH2EhHyzw^aNEHh2X`IZb8z3m3l3g%@REa<9el>YXB~Xb!RH-( z!NC_D{Dy-sIry@JuQ>RsgReRGx`S67{HBB7a`4*@e#gP@I`};Yzwh7=96WIFhYtS8 z!8aWIv4d9~Jaq6)2jAi~q*A?TKVpesk%%+7^P*IA5*0*DJ)=*>v%}wzL(sJ&c0fZB zkF&ka!R?|+X^aV!7HvwAfqAHLm(uTY7TO+#yz`3ggE$jop*8{$@}d`T8Xfs6T5EgE z_K>m}R+Qq-PY9U@T%kU}VXNz(OgzeA3H;L{eYI znPQnF=YlxRf-DbwCaE|Oex6C#X(megB26Xfr1|Jb=wcBRQXOjcQR_BYhnvHkZ3TGC(1E+J|1G?)6!4fJplc$0#vN#|OcXWLXCbVjW; z13fxTUU+H&Icl0eH->vS$zeXq<18QE6Y0}TCc`}uu~>?5c=I#*I7mbo#9~8dqwt4j z{eCuNNiwt~yqY{yns@b=euJi2>i#GHjF;0X|3>M5%EzFzO&<->+_uXmxb1$Rxy#;9N8!iG{;?5;s+=i3%PpZ^ z2`sd&m@v?yWkOsv-|_@$!Q1qrE!n@+%riS6-QAFl!8N`JKxA!0lOuDH`+GrpY^0^o zC`eOKMJLW9%B8RG9%-2_-!O%NSjmiK;eGC|XhWRQg2pNzDKIYSni$NazS(aiC(|t~ zVkC%jZig(G5p%`-dRnxogS~|27QXZ*ntyx2%a8DW+(w-F>ol_ue|e%RGC$PmI?YICzLJ)d_9mrL^w!C~TtlpQ6AkrfRJ6 zs%Y>U;-Di^MLDZ$OI;BkY68C&6EC5U&W zirC9vU;ZLjV!1NStl8+>KU`m9QKIz%_hAp04O4un@LHPm6o+SFZctWD{3#m#o(%BT zAKr%acZWdgx=;uu@?NCKdi``R?L2tAMc22tx9Hmatp{uCPw+D90z)rbEo=KW$MZDD zlPXUSv;1jd}OQ0+9Um+9P{d#8*CETgwISl$w$%r+}5RE S;4!q0y5;57OfR9s)2m%NYF$FEczoI7cZ&Ztd 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 Nf>KZjYQa=6{V#;mhEf0k diff --git a/project/app/__pycache__/preenche_fub.cpython-38.pyc b/project/app/__pycache__/preenche_fub.cpython-38.pyc deleted file mode 100644 index 593bdbb74111bf9e313ed0120d639360550952fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16538 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 J5A^*f{}-bSLX-di diff --git a/project/app/__pycache__/preenche_fundep.cpython-38.pyc b/project/app/__pycache__/preenche_fundep.cpython-38.pyc deleted file mode 100644 index 8b9cfb6bfb48d06e5aa7b5410c62494364689351..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4006 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 Xizd<+O=M;_d`_K)jW7(ahu8lD+v4SA diff --git a/project/app/__pycache__/urls.cpython-310.pyc b/project/app/__pycache__/urls.cpython-310.pyc deleted file mode 100644 index 67f4815da3b11a079bcdc9836b612593d16026a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 475 zcmYk2y-ve06ou_3Y5prD9)N|VOU;7BfDi+M4I#00sodCVTqSno9}s;97T$ta^2*d# zKnz^BLBf`g&L?kzcPSZIEH~R#Bhgtyu=u>35&W(A1x#B z2z(4a!H8oP^JqI|37fu0Kq*klvXOG2j1?o5Ksl=dZQ^CY>Sr{c?cpUf$37mYZTI*H z$&28xW|udVQDe0tKKrvFDrwI>@=2#QLhiCbt1Y(>N=LU#;YK-2{PbuZ=cO;%mdcG< zINccypGP_k5`*~D@vc$QYO!8WXIozcT^%~nNr;B&=se`>#u=;n)v>xSp(eC%xt8V= z>64HP@_kQQ)pNpKL$#pfPBpIQ(keq9gl*lLTwJc6#K1ct`Mr?T@`fD#&{#r;frMTc c!<)~pd&OMGZ^C>`C|#inS9li9aM;<;FXTvqK>z>% diff --git a/project/app/__pycache__/urls.cpython-311.pyc b/project/app/__pycache__/urls.cpython-311.pyc deleted file mode 100644 index 90817f00749c164f4cf40d719709ac549bedba8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 859 zcmZut&x_Mg5PoT1()34MbroILWsg#!sZh4XRYY(VPa-UUm6{@Gvil)YTB#|6CYg@+BI-)b70{IaowfGArY*I~RlG?6}9^wLD;XTfw%4}Y zS}Y~sfzo4Mmj)ooFVG+l6|W!EVlD;ns-ngv(ly++r}dfbGrls$_sS#)@%o}>dTzk1 z51P>rI&qQ5!{m-k=Bm8mCn@7=VSH{@=Dce5{lIe$)3f3doB(46l)3&lbO8!<`SjVY ze&AE)>-*kOKtJhwp4oS(8~FNzox|5wkJ^??Us$dYP*YFFFazD_^>lt+t@rs-dF*(k zZ__927Bu7=^nXH_i-I7`(A{v^XJ|cK_8F>&%l->(hRZ&ekyIG&om>yqt&?|=x;0g| zBX#@qD8$t%u12^z!wS?lM|A8?c0=5l;zooUDSLagGk$dXHpJQ#YZ2B`_Ri>F{C=_# m;`$WVBV13}jnVVy#=S`=#LX#gMz}dI71naY5`WlDnCmYUO5;KR diff --git a/project/app/__pycache__/urls.cpython-38.pyc b/project/app/__pycache__/urls.cpython-38.pyc deleted file mode 100644 index 78f94d4b54c5a4c6db2b906cc738ef3990f2fd9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 543 zcmYk2y-ve06ou{PziFVrQ*^135F0`a2r(f9f+0&~VyjI_>|i?}I`IO$1B^Tol2@j_ z0xVpoLBdu}&SxLV_uiW<8zNW-pI7{0fY6tN|0@AFflt4HFvM_$YMf(?*noM}p!RYP zJOb~754v-|^6D@TG2)m7Jba7Z5er%L>H){xTgEKuX$X|Cw5Ji!kYzn>0i|r)(LBgU zYPzBsTuDtFV&u zQV<(-|5e;5x#R{SQSVj}+{o4t>!M&TCYepyl8U*UwyM$!Mut@A#0Rl^{aqo2QRUr~ zwq}tJozA)%Rp3$))g3A~T;=AkQjk0=T5V)K+q`8{cmdipTnYVw)Q-zJ`93ACH`3m< z!nEX+>w6;`vfwopl2>H^aCTWXyeb7hD+M*YAYDI&A+%|Tt9#l!+xV!KtgZO5o1)$Y P8DZFikvGO$oBi_(OE#5x diff --git a/project/app/__pycache__/views.cpython-310.pyc b/project/app/__pycache__/views.cpython-310.pyc deleted file mode 100644 index a1c16d54dfe90f43c09034d52c8c1c2ad66d228f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2125 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 R;g&@7Fg=hdUn6v*{|B=p#bW>f diff --git a/project/app/__pycache__/views.cpython-38.pyc b/project/app/__pycache__/views.cpython-38.pyc deleted file mode 100644 index ddbe8ce00fb74bfb14825fd300cebfdb29f5d201..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7335 zcmb_h&2QXDb|=~FZg#7?)%vh3$zQVkrM5ki?fKf>@p>(Pdt%F8%bxKt>u{(pN}|jr z+r?_x(_kmS%9k9RIM_>o!2nVgNH&*X5BUQEIEVZJK@t>l%V};oHH~RZ544tU>pHP7IX+EoQx=u@+63N8hM zt-4)Ta5)%i4co(j2UsN-X^q;W3a$owT4VN@f@{Iv*0??1ny@EYllG*-4F>yK`|bS- zt_KHN2kZlYH8vC+v=6HHA^VVePuWx8JsccvP21C;8DXQ(HTwwL!^ZGFdR=3C+4ysf zjeElzIr|u!V3WWfXZzTGybE559bgAv=RxN-F;1P8MprLg)@EL}1+HM>_jW`3ca^GvU10cWhy{A87X-Pz@j|5z8 zVyI3a+`AFKd8Lt)Lv8MPVRIF10yp%7RaX|hXM(#vm({kn;&P|yw)}84Lhq42F?W_b zOOEhjHN(L^8dxZ!y#Ug^KBmNd?(hgWOj@|%N+*b#Bvk)La1PI9JnEX^|R)-vSg1zDy7#$U{LL@9#BE zj9*`!Ta8-YTxY2hiq6~>FMced_S~x1a>K|A=FWWT-1XaD;D_EdKLoqxT$@L0SdKZj z-JV;AI^)^)cXAT?Tlctd`a?P*axkbLuI!;n6i{e-MK9}oKcHQ+HGrUVr)E0?Kxmsf z(-UpW=;;YM2qV#%F@fDib7r|^V-b5Bb2k^dwVBzIzi3>%n7ufuPHIqu!97`A_Cw|d zfy|3eJMbEYUGc+qM`V)8V#^g+;#jF7E%s6WLABD&K3zNkWNe|(jEZ6El^mZ2+$6-# zAB}wxPh3agX|~QZ8%t&97zBn$)(xndc3`(eN}pX7tze;HO3QIVx8*sGEIUpsVx55C zisL-#xIxxZ71<6}q&ozrRpcZ!KZ1gum=tR1s=iCnWcuh)iarf#6KxG9?yC!Fj;B3@!jRGq?yipTQR3Lboo=#1MH_dSU3=*IIbq)I{NN zng34LdN7vVgGq6%*t61+Svj$MeIr)@C$Ic%g5W zx3pd z#Co4iU*~WJ%?^x!ta+SA+-Z4n?5=n*@D|}|#XBQdrw4K8)fQM!t-acs@}Bvy zDxGt{&rhi_ro1V43g?ana$o)3tKUXb%*~oYsx>1&Z2HV=%{Fp;79FM4w~71|s`p

dP#P(GppMSQeK3 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 Sv`nj9H?1R99sB&xH2!}>W%p75 diff --git a/project/app/admin.py b/project/app/admin.py deleted file mode 100644 index 8c38f3f3..00000000 --- a/project/app/admin.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.contrib import admin - -# Register your models here. diff --git a/project/app/apps.py b/project/app/apps.py deleted file mode 100644 index ed327d22..00000000 --- a/project/app/apps.py +++ /dev/null @@ -1,6 +0,0 @@ -from django.apps import AppConfig - - -class AppConfig(AppConfig): - default_auto_field = 'django.db.models.BigAutoField' - name = 'app' diff --git a/project/app/capa.py b/project/app/capa.py deleted file mode 100644 index f14af5f3..00000000 --- a/project/app/capa.py +++ /dev/null @@ -1,329 +0,0 @@ -import openpyxl -from openpyxl.styles import Font, PatternFill, Alignment,NamedStyle -from openpyxl.drawing.image import Image -from PIL import Image as PILImage -import os - - - - -def pegar_caminho(nome_arquivo): - - # Obter o caminho absoluto do arquivo Python em execução - caminho_script = os.path.abspath(__file__) - - # Obter o diretório da pasta onde o script está localizado - pasta_script = os.path.dirname(caminho_script) - - # Combinar o caminho da pasta com o nome do arquivo Excel - caminho = os.path.join(pasta_script, nome_arquivo) - - return caminho - -def preenche_planilha(planilha, dicionario): - - caminho = pegar_caminho(planilha) - Plan = planilha - # carrega a planilha de acordo com o caminho - workbook = openpyxl.load_workbook(caminho) - - # planilha_preenchida = pegar_caminho('preenchido-' + planilha) - for nomePlanilha, entradaDados in dicionario.items(): - planilhaAtual = workbook[nomePlanilha] - - for intervaloCelula, entradaCelula in entradaDados: - if ":" in intervaloCelula: - inicioCelula, fimCelula = intervaloCelula.split(":") - planilhaAtual = workbook[nomePlanilha] - planilhaAtual[inicioCelula] = entradaCelula - # planilhaAtual[inicioCelula].fill = color <--- teste com cores - else: - planilhaAtual[intervaloCelula] = entradaCelula - # planilhaAtual[intervaloCelula].fill = color <--- teste com cores - - - workbook.save(planilha) - - return planilha - - -def inserir_round_retangulo(planilha,data1,data2,dicionariofin): - - - - - # id_mapeamento - # codigo - # nome - # saldo - # data_assinatura - # data_vigencia - # data_encerramento - # tipo_contrato - # instituicao_executora - # processo - # subprocesso - # cod_proposta - # proposta - # objetivos - # valor_aprovado - # nome_tp_controle_saldo - # grupo_gestores - # gestor_resp - # coordenador - # procedimento_compra - # tab_frete - # tab_diarias - # custo_op - # nome_financiador - # departamento - # situacao - # banco - # agencia_bancaria - # conta_bancaria - # centro_custo - # conta_caixa - # categoria_projeto - # cod_convenio_conta - # cod_status - # ind_sub_projeto - # tipo_custo_op - # projeto_mae - # id_coordenador - # id_financiador - # id_instituicao - # id_departamento - # nome_instituicao - # id_instituicao_executora - # id_tipo - - planilha_local_dados = { - "Capa Finatec":[ - ("E6",'NOME_FINANCIADOR'), - ("E9",'NOME'), - ("E14",'COORDENADOR'), - ("E17",'PROCESSO'), - ("E19",'CODIGO'), - ("K17",'BANCO'), - ("K19",'CONTA_BANCARIA'), - ("K21",'AGENCIA_BANCARIA'), - ("E35",'Suellen Santos Diniz de Carvalho') - ] - } - - - - - - - # Create an empty dictionary to store the values from the second dictionary - result_dict = {} - - # Loop pra criar no formato dicionarario por exemplo - # Capa Finatec : [(E3:COORDENADOR)] - for key, value in planilha_local_dados["Capa Finatec"]: - if value in dicionariofin: - result_dict[key] = dicionariofin[value] - print(result_dict) - list_of_tuples = [(key, value) for key, value in result_dict.items()] - - novo_dict = {"Capa Finatec":list_of_tuples} - - preenche_planilha(planilha, novo_dict) - - caminho = pegar_caminho(planilha) - workbook = openpyxl.load_workbook(caminho) - worksheet = workbook['Capa Finatec'] - - - - # List of image names - image_names = [ - 'agencia.png',#0 - 'agencia_branco.png',#1 - 'agente.png',#2 - 'agente_branco.png',#3 - 'analista.png',#4 - 'analista_branco.png',#5 - 'assinaturas_responsaveis.png',#6 - 'assistente.png',#7 - 'assistente_branco.png',#8 - 'banco.png',#9 - 'banco_branco.png',#10 - 'conta_corrente.png',#11 - 'conta_corrente_branco.png',#12 - 'coordenador.png',#13 - 'coordenador_branco.png',#14 - 'dadosdoacordo.png',#15 - 'gerente.png',#16 - 'gerente_branco.png',#17 - 'periodo.png',#18 - 'periodo_branco.png',#19 - 'prestaçãodecontasparcial.png',#20 - 'processo.png',#21 - 'processo_branco.png',#22 - 'projeto.png',#23 - 'projeto_branco.png',#24, - 'centrodecusto.png',#25, - 'centrodecusto_branco.png' - ] - - # Path to the images - path = '/home/ubuntu/Desktop/entrega/05_PipelineFinatec/project/app/capa_60/' - - # List to hold Image objects - images = [] - - # Loop through the list of image names and create Image objects - for i, name in enumerate(image_names): - image_path = path + name - pil_image = PILImage.open(image_path) - pil_image.save(image_path) - img = Image(image_path) - images.append(img) - - - - - #estilo imagem - worksheet.add_image(images[20], "B2")#prestação - worksheet.merge_cells('B2:L2') - worksheet['B2'] = 'PRESTAÇÃO DE CONTAS PARCIAL' - worksheet['B2'].font = Font(name="Tahoma", size=17, color="204c80",bold=True) - worksheet['B2'].alignment = Alignment(horizontal="center",vertical="center") - - worksheet.add_image(images[15], "B4")#dados do acordo - worksheet.merge_cells('B4:L4') - worksheet['B4'] = 'DADOS DO ACORDO' - worksheet['B4'].font = Font(name="Tahoma", size=10, color="204c80",bold=True) - worksheet['B4'].alignment = Alignment(horizontal="center",vertical="center") - - worksheet.add_image(images[2], "B6")#agente - worksheet.merge_cells('B6:D7') - worksheet['B6'] = 'AGENTE FINANCIADOR' - worksheet['B6'].font = Font(name="Tahoma", size=10, color="204c80",bold=True) - worksheet['B6'].alignment = Alignment(horizontal="justify",vertical="center",wrap_text=True) - worksheet.add_image(images[3], "E6") - worksheet.merge_cells('E6:M7') - worksheet['E6'].font = Font(name="Tahoma", size=9, color="204c80",bold=False) - worksheet['E6'].alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - - worksheet.add_image(images[23], "B9")#projeto - worksheet.merge_cells('B9:D13') - worksheet['B9'] = 'PROJETO' - worksheet['B9'].font = Font(name="Tahoma", size=10, color="204c80",bold=True) - worksheet['B9'].alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - worksheet.add_image(images[24], "E9") - worksheet.merge_cells('E9:M13') - worksheet['E9'].font = Font(name="Tahoma", size=10, color="204c80",bold=False) - worksheet['E9'].alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - - worksheet.add_image(images[13], "B14")#coordenador - worksheet.merge_cells('B14:D15') - worksheet['B14'] = 'COORDENADOR' - worksheet['B14'].font = Font(name="Tahoma", size=10, color="204c80",bold=True) - worksheet['B14'].alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - worksheet.add_image(images[14], "E14") - worksheet.merge_cells('E14:M15') - worksheet['E14'].font = Font(name="Tahoma", size=10, color="204c80",bold=False) - worksheet['E14'].alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - - - worksheet.add_image(images[21], "B17")#processo - worksheet.merge_cells('B17:D18') - worksheet['B17'] = 'PROCESSO' - worksheet['B17'].font = Font(name="Tahoma", size=10, color="204c80",bold=True) - worksheet['B17'].alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - worksheet.add_image(images[22], "E17") - worksheet.merge_cells('E17:G18') - worksheet['E17'].font = Font(name="Tahoma", size=10, color="204c80",bold=False) - worksheet['E17'].alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - - worksheet.add_image(images[9], "H17")#Banco - worksheet.merge_cells('H17:J18') - worksheet['H17'] = 'BANCO' - worksheet['H17'].font = Font(name="Tahoma", size=10, color="204c80",bold=True) - worksheet['H17'].alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - worksheet.add_image(images[10], "K17") - worksheet.merge_cells('K17:M18') - worksheet['K17'].font = Font(name="Tahoma", size=10, color="204c80",bold=False) - worksheet['K17'].alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - - worksheet.add_image(images[11], "H19")#CoOtaCorreOte - worksheet.merge_cells('H19:J20') - worksheet['H19'] = 'CONTA CORRENTE' - worksheet['H19'].font = Font(name="Tahoma", size=10, color="204c80",bold=True) - worksheet['H19'].alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - worksheet.add_image(images[12], "K19") - worksheet.merge_cells('K19:M20') - worksheet['K19'].font = Font(name="Tahoma", size=10, color="204c80",bold=False) - worksheet['K19'].alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - - worksheet.add_image(images[0], "H21")#Agencia - worksheet.merge_cells('H21:J22') - worksheet['H21'] = 'AGÊNCIA' - worksheet['H21'].font = Font(name="Tahoma", size=10, color="204c80",bold=True) - worksheet['H21'].alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - worksheet.add_image(images[1], "K21") - worksheet.merge_cells('K21:M22') - worksheet['K21'].font = Font(name="Tahoma", size=10, color="204c80",bold=False) - worksheet['K21'].alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - - worksheet.add_image(images[25], "B19")#Centro de custo - worksheet.merge_cells('B19:D20') - worksheet['B19'] = 'CENTRO DE CUSTO' - worksheet['B19'].font = Font(name="Tahoma", size=10, color="204c80",bold=True) - worksheet['B19'].alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - worksheet.add_image(images[26], "E19")#Centro de custo - worksheet.merge_cells('E19:G20') - worksheet['E19'].font = Font(name="Tahoma", size=10, color="204c80",bold=False) - worksheet['E19'].alignment = Alignment(horizontal="center",vertical="center") - - - worksheet.add_image(images[18], "B21")#Periodo - worksheet.merge_cells('B21:D22') - worksheet['B21'] = 'PERIODO' - worksheet['B21'].font = Font(name="Tahoma", size=9, color="204c80",bold=True) - worksheet['B21'].alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - worksheet.add_image(images[19], "E21")#Periodo - worksheet.merge_cells('E21:G22') - worksheet['E21'] = f"{(data1)} a {(data2)}" - worksheet['E21'].font = Font(name="Tahoma", size=10, color="204c80",bold=False) - worksheet['E21'].alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - - worksheet.add_image(images[7], "B30")#Assistente - worksheet.merge_cells('B30:D32') - worksheet['B30'] = 'ASSISTENTE' - worksheet['B30'].font = Font(name="Tahoma", size=10, color="204c80",bold=True) - worksheet['B30'].alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - worksheet.add_image(images[8], "E30")#Assistente - worksheet['E30'].font = Font(name="Tahoma", size=10, color="204c80",bold=False) - worksheet['E30'].alignment = Alignment(horizontal="left",vertical="center") - - worksheet.add_image(images[4], "B26")#Analista - worksheet.merge_cells('B26:D28') - worksheet['B26'] = 'ANALISTA' - worksheet['B26'].font = Font(name="Tahoma", size=10, color="204c80",bold=True) - worksheet['B26'].alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - worksheet.add_image(images[5], "E26")#Analista - worksheet.merge_cells('E26:M28') - worksheet['E26'].font = Font(name="Tahoma", size=10, color="204c80",bold=False) - worksheet['E26'].alignment = Alignment(horizontal="center",vertical="center") - - worksheet.add_image(images[16], "B34")#gerengte - worksheet.merge_cells('B34:D36') - worksheet['B34'] = 'COORDENADORA DE GESTÃO DE PROJETOS' - worksheet['B34'].font = Font(name="Tahoma", size=10, color="204c80",bold=True) - worksheet['B34'].alignment = Alignment(horizontal="left",vertical="center",wrap_text=True,shrink_to_fit=True ) - worksheet.add_image(images[17], "E34")#gerente - worksheet['E34'].font = Font(name="Tahoma", size=10, color="204c80",bold=False) - worksheet['E34'].alignment = Alignment(horizontal="left",vertical="center") - - worksheet.add_image(images[6], "B23")#ASSINATURAS - worksheet.merge_cells('B23:M24') - worksheet['B23'] = 'ASSINATURAS - RESPONSAVEIS PELA PRESTAÇÃO DE CONTAS' - worksheet['B23'].font = Font(name="Tahoma", size=10, color="204c80",bold=True) - worksheet['B23'].alignment = Alignment(horizontal="center",vertical="center") - - # Save the workbook - workbook.save(planilha) diff --git a/project/app/capa_60/agencia.png b/project/app/capa_60/agencia.png deleted file mode 100644 index 5594d9f1b89a9024d60939c7af35ab17171803bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1007 zcmV9`H$o&7*g-gJ!dsI=e~RH)t7^O-sfvmV9e8;wL!HNSUI?Io?F z8pBc2k2r}lxNvnoB=bLHDOO_*?!ZG-NRxOIA5hHHdJ`0Jh4v!V_nA$UM~NUlVRkz) zzF?n`StP_3%J(Q|i0_Fg;Ot_I}G=3{-&VIzD~*hBBF}MO$03 zt)4u^{+6xKbC`LccIfPB97YGn0GZ6yCr0ag=b0ujKHij%Xu9-K;u!IHV;Bsrnal#x z6=?YmagLa1>96yAquRS0v8JKDXJ!!+skv5Co@>o_VkzbEdU{VDV`hfK-1zf#;w-TW z@gOlp+?S(fW_U!=Tx%#hbe=#Qq&%5LnHfIaac21?@o}QsL^@LcL7FE)nW54|&vY0Y z6KO4e=@~Pbp;0ueLuaVgCaT-iNgRzalNlOa{hcN)Nu+U{A24Pz!=PDH?@X&FLDe)S z`i+^)Q0NB7>ro`qY24lvW^rbQNu$5fo2h0JPT`h3Q_uVhh(?DiNs|dbP;RYfN$q^Q zOy-)?hw*qoH$AOM&p#%)-yw(tGmv##06qQ z*Kn{&Rl2E{A(F{lE4n>)Tt^(I{IG49AkI_1)s&46?L9M#khz58-IOJP6B{b#llt9KugH&+PB@7LW0QnT7kF%zu>eV0Hy#6S#}&VbcA$NcAac zAH|7YkK7+I|E4=`pZ*oAD7P@O9h<3cC5=&4q(6}A1DZ0KHmO20jx0|x@+}VI2*s~; d`Mlk@zX05JfcCqI+|U33002ovPDHLkV1mLR<}3gJ diff --git a/project/app/capa_60/agencia_branco.png b/project/app/capa_60/agencia_branco.png deleted file mode 100644 index 1966afb6485bcdf91901eaa52cb0e18f39efdadd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1140 zcmV-)1dIELP)X28z?p8`jK55U#q9M$4P zr%s>XItQ{`J`7q3JPX+l@Yg~17x*dQC*TzD1Mp{eF3?;d`hm5;C@=!qCh)_+Imixz ze+k^#I8`3n6E2|Wj3nQhSd8v~@I7b_!d}qUu3nBY1#N_|2lO52JZM*}5FlmeMVzDt za26PK4wbU->%e1>O@MzH++69OH%oltubm;xRFcRB{M3$1C< z!tUKgwBG{y9KspUc7pC#pDUL`4p%Lx}!80CO|Ww zp%}zg6Pv2aYi6y0FdfU`I4}g^6oePjv6U32;)9%@cqE)bkYLZ^q9sx2oG5uSe?#xY+5#^f>P35wh|m3 z{3&8nGgu&--jT=Z8pxWSSYwQ~e$FtaSI7~U+|7F68_34u9bktgB*s)zzJ6~b@Ga1M z6hZ?u8pka&n_i&-2p6Eai`aXtSew+$g;Aj zsG|GLfet}9UV0*}J3$N3d^{anRyGw?WaDjVA;`A2f$%DXUrV*J^<9{XkxPFoAe;of zo6dWRHBV@D?1Iy=SVV)Z6fxD2$0@{S`fvesYg_Aa{$l?2xa29kS?c+;n%OL&@+xWo zO{9`yOFC|^9Ez^{O%TpOINDlG4QX2d3uyB{Dko804LSg!4tl6H9+htDT!6_MxMQHr zz+1qVpq=p1B)CR;vm-v|wxBlMk{)*CI|=E2$X)|o3$^XwKBRr8p^Func?k4IO5-2L zE2wvIpIc)tnZREaUuLtw7odYsI|A-Rn$i}Ji~S7})X)1ca@Ftv00007g$>k&7SXzJDM$se3I*v#)P*Q6sw=Ia zbRpfSsEE3-(o%~HK~WSzN{Tfxm4K*8Oy}KqT-!fPfS2Uk1e;kZ%QsfHm3#O1JQ}jHQX!|GobMH~}07j>P6p#2j&e2N&91 zWdZSs2UqIxM&NniMkoh>AHaVHi~_#_BWL$vjQ=^Sfy;qG2-ib)3zXyFe*&HZcPOSw zwvZTGAep{i3*l`Lf$$~B(;!!M_A?ku4;cV?4CHXsj(h+!8#U%zoiWD|#Q_<(0vg-F zzXN^(*bVO87P<9iEMKJA(rsK7x(CXaz^@0M0QdU*TfX_%Q?(Ym)CCWKtk9SP$yI=c zu>j)YtXkJfctJJwvc`QIElD0t?U?fY7Sc#t6olMvq0@x0xQrD2>o>DCS)JgZ{7x#^mf*ct~R{0!2s zL32W*3nXU@#~^&JW6AJN-v$yuw$DyBj80Qc(VIaEXbjhbpFwd%r)YaHF}h3=WAPq@ zuhVkQAjlXLk84tX&fcG~Oh{(e7>4jC%xnVWVUPyMYE3dXG=6Fm6t0^cbg_I|+Wk1B0=X zf`-u(lJT7aR(NnZ@VgG05RD$wn1MJ?H-L+E)TU>nSE%XrtpxDke<5!72NR;vdoF=8 zcqqq!0b4&bdQ39CD}eD_9dUy`!I&c&y+Z4u7$Vj_$u0;}AQzs)H)SkK#6cJXc@dE7 zKqjDgsJ1uEFuF+Ea4oljOo41ofnyLp)MFE((PgSViTfcO2e}{xcIbY@&E|?mcM%`k z^wn|cu-Kgf`m`)ZAsp3X6Qa>2s`{vdAfxd8c`2ZK!(@vVPCcpPIrdG9(NWS~SJ|O8 zEB9+Z8DFK+J(@5)`$WSyTauP$ZU8wA;WZtfTOU=4aeowJswI%jrfTEAlgdv3WCMhW zSejB*kItQStLpoHkOQ-)X<$~Nv|%hpU4Q^`AIK!g7a*&eIjv8wsZ*YcVhkU{%uTKT zh~#i6Z@Q+nW!#bu=7?*09fUWDT6(n^U)0p(aX$221gr(F zf${ diff --git a/project/app/capa_60/agente_branco.png b/project/app/capa_60/agente_branco.png deleted file mode 100644 index 2714e44c451d811d214e7bc6bdac543e48c2c464..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1240 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 z diff --git a/project/app/capa_60/analista_branco.png b/project/app/capa_60/analista_branco.png deleted file mode 100644 index a3f2c21bd5ad0a28effdf654332bce1798b7de70..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1885 zcmV-j2cr0iP) z?woV(ne(n!qt0ZknmLmZWh-;B4!8@r5vo5x`DNfSD2}wI1*#nN&|b`(7bZ!PUNJH4?|`D! z78e6!z*gW!;P=3npm-?vmvhQ$CtG zdG4hJXBxz}jvbBBk0K^f9D^8P?Xd2UZAPz&U9&VQ;Now?y6DuG+ z1L@Z@Bqo|YmdSV4X^-Y~FKaL)NzzREb)47cLeLN9_9oD1r#4~_q&*(2B}tOzraAH= z{Q%Mdh>KbUqWwLUExCAOL%uePAxV;E(F7DR2GN7~d~WZMJGzkeL;Ps)14)vkx#;hR z+yn6fJa=)s^X(87#Q5-|DUu{fvuR2!VhzMeh!3<%F4ET^p33_uBfZ8|k|Zs4{U=R2 z5W6A$7@&F1brVz%Looq#hF|w8Ns@FrMNr2N3DPcLeSRIucdfpI7wg`x)q;7*AoNt%y- zP3I%PcnPcro~YX@w@M^Q(tMSq@9r0f!cPRgxrW(Q7gp&p>%enX5nlJFQca zBx$~;prC|K2^?GK)ku=0b4yc$F_FK`WJr>vGolGHF38_LS|Ul3&WI9H4_Lm?3y~yA z=ZaoH{iw-N;5E6`Ook*$ny(y3beBU#2|Nd^T*wtklB9FWO5j)tptJUDoK*&E$UdJdK>j=;;|Xh35fN%-=oDPNz#a#_m;$^kR~8* zD}g=0KcV-bJjx(Lk|d3)i66EAM}gfX6vu&wp}ZdAJRr5+q9#d_G>V%c_CfJ?>VP8N zTc4M4ax7nW7J7w}Bx$i|N-d7P7UFq`&$T<3K^%s3&+uSLlBC%*aYOI35K|D%(HKqE zBJQZO8L>8JGYm8&NzyE$$e-nqjzaoYZZ8=G6tM!*K}h%KPPa@XNzyEucp+_vbiB@D z3?(a?KjK!1fEXYCp(IJtbWQv)aXF*}ap!RR(7+#dAUy)4oa2P;`MNvTNty|^=Lx>p z>NC)gBx%Wsvh{wF+aM+(zCTDp%z4M7UChz@3`7rNNBsjQ4Bss44Nmdfb(yM&Q?e#p|cIR4~mI=>_v4Z*U$L*DP<<2_2QC5r0qlYDufTp_l0h~@k|dp7u7c_JS0*8UU!2Q6_p*T_xiw;l? zXFE=Bo?94E039fLt+oq+jlg?=^}sq{<;(qAk|dois-wVuDE|cP0(L`jc+fw3aMAc5 X@Av4Up`BS|00000NkvXXu0mjfe;#}q diff --git a/project/app/capa_60/assinaturas_responsaveis.png b/project/app/capa_60/assinaturas_responsaveis.png deleted file mode 100644 index 7216a55cbbf371f20beb8c2e5e8dabcfd77bc60a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1148 zcmV-?1cUpDP)EJ7%Xf`T?d(548As8!%5iZ(&*q9CDF zDM3-G^ar7+h@eecnq{J5X3Wf;^FA%!^WOR6%p!Fh@9_P=JNKUVoO?O5`|fStfzsE(E;9iWCPrhj;b z&>B^9zp5ct0M7ys0V^RNg3edKe&7$_@cI9LBuSE_SzQHO30w>L7U--8jzRqiq!*z& z)GUkCgx=s~>DgkG3>055!4`J15OAnx2>?Ns^@b7ZpTz()ebGgAhMLteRLevAEM*`8~*EFuJkKbq&0d zBuTpXO%A}Z2I6zCDk3+mt#{H`A z5X1 zSPk(Pj6Yo#TJ4o2Nz#DpSADlZ`~xuz!~>9fr3tv2dX}#wNs=_kVlj-LZk}f&-hsTY zOc;74Ns_ccwAnVl3$Z&veLbYT(|(*nk|aqQbS2xSZ=l|gAPoUW%CBA+d?iVev{1AM zHXH_4CCF=lgY&o{Ns=UK4vim&loE6jFjDSX@s%V=(n1mCbrc{$eG*tZZBmjXNg8ye zsM}o*kRTlZ*0hKE&fB&mNs^@VtIf7UP@hb|uTbAm9&R)EN|GdLp=h)1Fr@v!_>&N0 z5X;KEeZG<;Nm?KxK^%tI4vegad;;RZGTE8ey-AWJN#`ueQD$)~L=VPpD--!c$X_<0 zH#$~*B}tMrxT1pS0u|()kiVV?!i?So5fJy6#a4YKNs=_6+AQ1KS~Bj|cA_lUhq9ik|aszqz%1sIm7|TJIXkfKT$zk3V9#I&&@(;!mn))k|aqQ1pUz4h4{P) zzHvp#x^1gNzv{cXEchPcx^l0w^+A#(Nf)n3lk)5k#HSF)A%-XBr~E{5B&ceLYoLA~ z*a+!isCGbs_ZTjiNP+a~3u5O0=d;4h$e z--Xz@BuSF=|Mj*&{;0{Wc?ZPG=Kj>Kg&F#H+sZFMYy!4Jy$K>iXBV&+H~_uBVbQ-p zg0Z>#KO{+#Bmfo%unbrVTn+VR;2ubqLHz@y=b+ltteu=`8?!vP7Nwn`AAmOlTYzm) zuYf2ItY9Kd<@m@=6-W}15{_^)BgaU?|A6twvt2u O0000 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 diff --git a/project/app/capa_60/banco_branco.png b/project/app/capa_60/banco_branco.png deleted file mode 100644 index 1966afb6485bcdf91901eaa52cb0e18f39efdadd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1140 zcmV-)1dIELP)X28z?p8`jK55U#q9M$4P zr%s>XItQ{`J`7q3JPX+l@Yg~17x*dQC*TzD1Mp{eF3?;d`hm5;C@=!qCh)_+Imixz ze+k^#I8`3n6E2|Wj3nQhSd8v~@I7b_!d}qUu3nBY1#N_|2lO52JZM*}5FlmeMVzDt za26PK4wbU->%e1>O@MzH++69OH%oltubm;xRFcRB{M3$1C< z!tUKgwBG{y9KspUc7pC#pDUL`4p%Lx}!80CO|Ww zp%}zg6Pv2aYi6y0FdfU`I4}g^6oePjv6U32;)9%@cqE)bkYLZ^q9sx2oG5uSe?#xY+5#^f>P35wh|m3 z{3&8nGgu&--jT=Z8pxWSSYwQ~e$FtaSI7~U+|7F68_34u9bktgB*s)zzJ6~b@Ga1M z6hZ?u8pka&n_i&-2p6Eai`aXtSew+$g;Aj zsG|GLfet}9UV0*}J3$N3d^{anRyGw?WaDjVA;`A2f$%DXUrV*J^<9{XkxPFoAe;of zo6dWRHBV@D?1Iy=SVV)Z6fxD2$0@{S`fvesYg_Aa{$l?2xa29kS?c+;n%OL&@+xWo zO{9`yOFC|^9Ez^{O%TpOINDlG4QX2d3uyB{Dko804LSg!4tl6H9+htDT!6_MxMQHr zz+1qVpq=p1B)CR;vm-v|wxBlMk{)*CI|=E2$X)|o3$^XwKBRr8p^Func?k4IO5-2L zE2wvIpIc)tnZREaUuLtw7odYsI|A-Rn$i}Ji~S7})X)1ca@Ftv0000c{DW7=uUt-;V;<0@p!yE3gqb2OJ0g61Xp- zds$nHA`QK+0oe;8ATy9Y4Kmj6Utug))kFdRHQ%B;W$H*2B<# z$c8|kf#d^lZS`@b``p4di~&U`dPMLKM`$ld_C36d?~J}$JjupL!t`+f*>5IzSP zE!i6?Lc=%@#6?ZzbBz<1fxN3d>{IHKR5X=4x7MrU+a+7o*)T4Ua#x%_uNs?Do2U39 z9^?j)SqO);>`G3CagpQ^5*Wo%P`VfNY{-G>p0tU8xxZe(}JUz$D0UcQT`4 z)QQWY-m)#=zXF=;K>h~V+?}dp7&cOd%={0?w4-Hmq+*4w(H@n7g+ z`+QwmCV-cLM}X(Ry{0;nMb@s%XPm=PjgId@YeU^nZ!9-tEri!W=0Ls$xm)X9b^h@` zFJYQa;Nh*ni;#^2zk}Zo%mAl=Ip7Sm5*W7VIMB2kFmx4gHE=tGDR4Iezk=+9WG}e1 zS0r3yR$P5INqZ6+lfXkUtJ~*`kpBP)oX-oMjOB?J$Qs~>A)5zIfjpv zEqR2Z?73f#JDO_&)zugyP2WWjoO7yNYp&WuI)Jb65yh9?I{n)1Qk=fioG2=Cf%~X7 zVF^a?8EH56U_bskcasT%Gcpg0o9h~^Mxr`IdX?R8vvi`?uuPH9&|hv`cD|YXIXP2q zC*MsTow<1g!P$~mP`*h%LAi^3SC4IqQ!n}qseTl+o}hRGpOQ9EeAid6FzwSJ2>uru z&s|jAqT|;x?^&$HCW9JJ{US0FQ0Z&El;GY@M~j?a3&Zwismcpek@K@OYp}m4=M;|igwhp zk2E)t#&EdL7zD#YlS6ZILcJnWO#Ig?P?`{Kwd*RLB1}&vn%>;pw|6{s@`hh;QiX5m zHjMBl7!-2RBlhblk5PU=p3}FBuM_VSlsn0jHLiv6v@c}%a+Ve(eW{gmI3FYeYk z^<0_)qu7e|c&Ywf9O|nx<;Vk(gA>dS&9|fWnKSt!%Eu|T;yu#C6#wX)q<3oj9^tmu z)!U-V1GJtYFPi!B2f^8p=htiOc{k-Gd1H@lx|7FxD{M>LUy?7u20TJFAK#O9;1?Xh zQ6?uCE0~cB+o}G>`=l)tzjvdNsh<5mLXqARSo0#vRgBzAbsMfA zjZ&4QC4Gw>_=MuOx_sIY#=ms&fmD%k>0tl>002ovPDHLk FV1jLI{jvZ6 diff --git a/project/app/capa_60/conta_corrente.png b/project/app/capa_60/conta_corrente.png deleted file mode 100644 index 0a0513b355b0f631c0f3a873efd7842e68c93eaa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 995 zcmV<9104K`P)8mRgYsXCK_)cF@{7D4I0I*Q6d=BAt>TPS6R3*3%`IuTuAT>D2S+tuEY^V zS3(vNH-;qM2pCrp5&|)(s8i{lTNav`Msxmf7*4-$Rd>NN&s(R?IaQdK zC{R$;sedPS;AyO*-blH;iPb3QKTYNurqxBAI^}Vk!hWXqvFz6-FN)@G5wp)w%spw8 z1ESnQy_fP4tfu~+@+X{3?c7zpp3MJ|<=BMVskdS~EE2-Wg zg7}f%%fy;RynxI#Lo6d+p!%lKSM@ouF2y>7nFG$*D)-VRM#m{1z;1j((Mvh0+|TE@ znamZ5rVWIm^Ou`0!~C^L)5U>T2bdS|(Gcj}k=Dy=>u{$gT%3XUw{ugqMt zv@UvLc{9GL4kUMN-Lt!`xjCJFzJEX_vsAQtn|iR(Veh3jP*CkBzD?ylm-5UIXe;&f z2UN$1)tK5!b)I-GC1uyl41vpo@_UFbu@mtsy>rB93TD^L44F7eyjx;BoqZJDMwoM_ zkusU3AOB*VmO#RM462uOoCO+)ndqyX_ zXy)n?#muoy@Ab6Ecz24=HpTXX>1U{V!~x>|Stm?NzuZd3I|KWWa?5R28=s|@!6lio zmKdiF;*|x2Ia{EU_Y#MwDyH9O^1griKa$DJCDs#fQk|jtjc9jWF0^m`@_}XZFg`}G zi+T^`TFuI(FL4Ba;2hm4Mhm)&dMTOzDx;x!C(VsmgNLYhrgtKorFxsrTND@jy6dyR zDx|^0xE^D80#8xjLAe4o^~L7P%RDEaS%?BFs4L2o*pGeqn&M28GUr7K;BS|c@u9`g R|1X28z?p8`jK55U#q9M$4P zr%s>XItQ{`J`7q3JPX+l@Yg~17x*dQC*TzD1Mp{eF3?;d`hm5;C@=!qCh)_+Imixz ze+k^#I8`3n6E2|Wj3nQhSd8v~@I7b_!d}qUu3nBY1#N_|2lO52JZM*}5FlmeMVzDt za26PK4wbU->%e1>O@MzH++69OH%oltubm;xRFcRB{M3$1C< z!tUKgwBG{y9KspUc7pC#pDUL`4p%Lx}!80CO|Ww zp%}zg6Pv2aYi6y0FdfU`I4}g^6oePjv6U32;)9%@cqE)bkYLZ^q9sx2oG5uSe?#xY+5#^f>P35wh|m3 z{3&8nGgu&--jT=Z8pxWSSYwQ~e$FtaSI7~U+|7F68_34u9bktgB*s)zzJ6~b@Ga1M z6hZ?u8pka&n_i&-2p6Eai`aXtSew+$g;Aj zsG|GLfet}9UV0*}J3$N3d^{anRyGw?WaDjVA;`A2f$%DXUrV*J^<9{XkxPFoAe;of zo6dWRHBV@D?1Iy=SVV)Z6fxD2$0@{S`fvesYg_Aa{$l?2xa29kS?c+;n%OL&@+xWo zO{9`yOFC|^9Ez^{O%TpOINDlG4QX2d3uyB{Dko804LSg!4tl6H9+htDT!6_MxMQHr zz+1qVpq=p1B)CR;vm-v|wxBlMk{)*CI|=E2$X)|o3$^XwKBRr8p^Func?k4IO5-2L zE2wvIpIc)tnZREaUuLtw7odYsI|A-Rn$i}Ji~S7})X)1ca@Ftv0000NBA`bB2f?jU`b_0(A!@y>U+mesb*?39saSr@1z_(C41KktgW|K|2fCx^SJ;619 zuy}A$Ki>(w25}U8Kg3z^p8+$#G%y8(wfafMe-Z}_=xY$-gW&H5E~y~L!2Ot9i`rTh z>C*RgAg@693*-WX!yxy!oZjn}Kf~xyB!3mtuatoO5XZs)3XA(-{r4&0xn`MEwANd=7vv|9b07~C?A^JK zVf+)~mPS6=2J$7;=0SGrSXYyq0HhznB?w=D^ySWCQO~$R#N~qft_<=fgaC^}YWGD) z57GnSbCB~Ox2tVgE;o!DBNLpIA)Eo31i3@C=gHMt8-oyGQ70tJ!lq%|By}-vf-nbi zZ0R^M0AT@Yuj;i$LZe00S7n~l+4OMHcm%>ENN*uj8b%AKmx3h-XCZu;rRF{e(@;62 zj+T;*7L#RMc|lY3J%Buu(z5Kx)oK{6q`peit0m!qZs2L)0=RRT*Dd;XM#tbJiP2q! zFaceo9^w%A(;5wJz0hbEsyF{B#QQw36`0n)WlV@hyKt(x%fMEj{(9kJZZwRxkZElS z{B0imI$*ZJXc(U)h z(HZmgbj}*aT965`518@5d5F7K+Dl*@n#zdwBR<(+2**G!gKS(nZWwDt*3Tdw!Z#2;&~Z=R2z#v`5l0Ncf9+$6}%4j#9Ka3jN!7OEQ# zTdM4V(m1dacpltwRzB$=qaGOtLEcFU4xebGEU$8-VKg8kAaARNPQt=Y9bY#0xSrF% zo`855{1C)4_~XD=z$9=5s`F3^P_;U;BPl`ZQRo3S0)xOX#C_Ug_yaHo?)~K7{4}st z#FM7fd5En%45blZFU0NO2h?#P`9%|AN8%wJOW2dH!*AfGz@Gpnz@5r{S3Z*NZ?sFD U+FFN@)c^nh07*qoM6N<$g4pK-K>z>% diff --git a/project/app/capa_60/coordenador_branco.png b/project/app/capa_60/coordenador_branco.png deleted file mode 100644 index ac2b643cc7f8f8ae8d021a2b8b4e2d0094d7252b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1130 zcmV-w1eN=VP)OebrAwjbqzaY z(V@B&5k*87i^2%1Rl#K8hjIw=$G~ym1aJ~KJAW@DNs|7fmIBuS>wxQld#Lh=G2k`e4M(C9rUSJ2X2huCER5~J6eHVausj6xe`&#kbi%XIu z!QbV_mqn!8B#wib#GbRP!dAQYpH*^nej^QXxxiq9a9WGHV3KCC9@FzJvaN%Nwva^&}* zye&gs2l>Z3XgfucB+Z9Z&oX)vSev0-4~#DGLrIdP#ii+*oPxY0Lmmdk`+|}rNpsPx zp)x`BMM^mdj4a>-Ns^?+rzv7A1yY85l4@Oh=w&04BuR78ZVG~RbkJNXD)gGG|0|C6Y; zR8JTh%Ydh#JOKF!@HnJ%RWT#YG{;xFiV=@MoQC38h&>Q%F8%XMlBCN=EQjuM5I;an zLOkD!O)EysP??AXWJm?XN?l{oQ0Tx;RI8c?tLUl(gGU}=&XdH z5#VOvKHx6kPblAkybsdPy>7_#%EozGAu&)T9RRT!*aGEt$eW;C19=E2fO9|wXGNDJ wY4OS>P>;(fPeA?(I0}3O>8I-WtSuD&0X1^@s6JT{gI000B*Nkl~1M zf_6fSva%xgfe1y=gg*$PK~vCs&pF=~=Q+-ulnlKyI^+Abx%c^T;JKUO!*`zNIRzJq z4ir`Xz8uO8(A^BIfqFHh5vYrcpOYj>l4eCfs-Qjr=_v3Oa1e@P&G2U(c(xjR;9udj z4ZN`ssyCqXGStg}qmaG>P5=|Y*_r<>k|aseCEWz91V(|!fro%eU_bCS6n{=H5-vD{91(jQA8jzRUsz~qD^Ns=^YL>egGehg&~V)Z}~x7q`78qSR7Nu6u4 zOi7X?>FTt>Hx@xmK()UeSOwK2l;gSGy=H5aBuSF4T3f&^w?dqQ^Xq}~g}j${Y2FXv z9$rb3B+YSAG{xL%5@H7spF(_lt(PT9k|YgJTga_GfjFF?UJD$~Y1qSSk|ar*4^oqF z(+^NTm>}H?{GRVOb8CYn%?Hs`IPMwSarf;T-&>q}{TnaoMpEQ_dmPd&3Ah0V#yFzBuSbsn&L#g9y&h*@oL`Uu+V#YB}tMrzf=vw6Q0<5KHCKC+_w`DWBx!DH-^2z` z{Rq{e9D<{OSkt87*qbMJ4Ze~jNt#;*18=;N^Xw?9Lx?-z$WB<>YbVlNrQ@|`k|asGp5z5J5C;hpjiI-^YJ8Ecoc00000NkvXXu0mjf40rE< diff --git a/project/app/capa_60/gerente.png b/project/app/capa_60/gerente.png deleted file mode 100644 index cbbdafd1c1eee834f946c02fe1ba327eac1b6848..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1635 zcmV-p2AuhcP) zU5Hgx6vuyO&z&(FO&b}_kr<;IYtl#r1G6%Rh+Z-UjR?$&J|0ARh%y2#Dk_A)z_ORb zGAi>y3PYiqzD@g(%EWXu#k5ip)G=r7+V{dqR{cdfn8 z*?aAPqG`>*ExE!xnF34&t^+1O*aRkoa5R|e;-97TFQEVj!PG!_5X^S4KSH<-YCbQl zD^)-Ufuwy(kbYod0C5i!15AW)KA08=8-WYJd=KpQzW_J_{F(k)$^fAr7zcC$jSw~i zlYtsA`yu=a%o^Ce6`DF-6EP5kWg3qJUVNUeIbgSe2-sa<-vGG-q^3**PzD?_6YMK_ z9mwyHd)R3O&eY7g>7!*#s$8Z)xD4lx*MWH%j_!o|lZpCKzsWy~u)@j!LHsYs|2^r3 zr5du$kXZmM1hW@-0)q9vyi``QHRC%R33j#rAMi0`Z|pYSjGr$kg9b6~-@PEO8RT8> zF*kvX_xYJKnx}l27gt9U$PTb4ohvRFj7eBRWl$2i294K`i7J`TR(4tr?I#U{~cEC`!4A*C#K5{R@s> zlq|eKt)fynV(U20udL@MriAu2ke?D?S#++bl$q$Yj{OAWBLD+Z17?QXAQ^PJ_d)4* z=_*P}{I)W)5tsxr2FOkadkW+xS4ZcIN+pOl;Eo6Bg4|pK)zg6v;7eCnwyoldk|6TF z!9K9RKvhcycX;Ysf2Ji+7p+u|=sXo$fJy#9mD%Y_b>X5^lF0b&fbc2UHD-2lHqc(u<|F)EeBfA!-s2-*y= z-JMAQ{S>HFmLQ7bI0eiOpzC(9ogfok1>LoyRDyWd&c$FmKpr%Z`3B4(2=DT>RE$a` zhz?=h3FZWJwEBFz7VKt!&|1Z)RDkGci(L=$b(9%^%mVobPG3&SXrqdfp7@-89oR#V zdn{R4i;JVT*r)YCmQqII;$^=cn!F zyk%7DsFaF0lEgZY10X}sqOsUIP6Fw0_qqUaTs=iOAEMh1;((zueEMwOHxgvmEZ^X9 zpI@zlREj4S;vA=|+(Mu3ZIK)|eAEjv5kpS}siY;ceA%fWIj}49`F+w;yy95_5`rvB zl<6xUr4JMYm!Ion#D9?g%GYPZmYh^(7ds1SS5a{NhFVFbC!+Y>aXOkKzD|6vWNPgs z-~GsJkSy4(AkB$78hl>yEbV?nRs-1gy$}~B^3TVJ#aFg9dogA~R)UO8)G@m19*jh> zJX@2NuoiMlaF-Oc4;dtm?Y ztL5e0yk?)j;-$1);;mhL_w*>R^B|ZD=1Sla;5%GYsWxC=y8e~_03(5GAiN%!2DAga zKsG?t+Ysz`)uajt(;Q_f(v3=hi$-A+dE>ygKvfHb6M-f$!;0%)8Q}a1{0#OBsQL_o ho%y23gQj=O{{kYEvgz}AS(pF-002ovPDHLkV1j7h_<{fc diff --git a/project/app/capa_60/gerente_branco.png b/project/app/capa_60/gerente_branco.png deleted file mode 100644 index f9fa8e2ebc0783a036fed5790a5e9bdb89da5e05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1830 zcmV+>2if?EP)zmn=r}_BSH?ymV2;d0tx~i&b#uBOd+l`M)puZj#-2hw-^_wAG2=yx=T|C}-B}vjb z^iQad0|Ds?U>~ptcm%3L!?37;YU+J{Jk`t+i>QDERW9R;ft!Jk1J?j=fP4t5ryxBE z90g7R2Z8=fFHVvq{nu2$YG4VFfa`#@P+tS-IjHwTx(~Pys^^+Rq6gGa#n|5xjl&Ub z72=GMz0T*$Ab%gC5AiRET@bfJylE!?LrIb}*Wxnhe+lAO5QiZG;%+#3btmR5Il@pC z5t*i9vEs}Xi%3m5B$hz_0`$HH^&&{$1RjLyz({;4p)}vo`7BA2=1!D<<@0DIA}$9u zK)n^xYk?mFcS3b!?CM3SSR6ZZ#iE^$n;@QnI0pGU5KE`V#G;Z=NRp&^BdR88=;i^j z2>M@vc)nCIHaGJXXT8@)#QunQ^yP^~RKtV&pMp9d{{oJ$>co@_F`j&e{m0Vyu#0A5c(;XU-rdBHk zC6OM)cF28*Tg%!=CL>9b&R^a8{^YwMjziwv^jtEos{HldItX+av~ z25TT*g1EnoduQ3fXfu!gr%O`tk*Oz?BuNWXn+r^Ag2)ixD)VQmS`424SYMKgJIZ+R zIlWFvk~B}W$wmJ&BL#@jRB&jvn7TE^*RP%zZ?vtd=V(FiV z+ne`P#L6+7G9*dTg3=}tu>|5-$UiCbZ7*h9m556rjza$SNPr|sQpccbQ657*b?xw} z(qXmYE{G!#7oDc0AxVi6hq*-WpI`%=mHbK1x__LJ?Ns=@RZDR2ha8&}91BXWz zB}tOT(dG^>K*6Qke*J!UP#wLEN$kkTu73naaB=rhj#(L17Z!t zVd#IX3D~u04zEs3AAb;Z%@HPVX>x~n z&(!(Bhx}8BzrwRiI+=$gNm3D2DM}=WKS17D=F@0U1+fBR67n5o-bYU*Nm55!jEK*d zYQ+s@JlaMv*ekiM1a6*s0!fmzunihEHD%S z!SN4>x0baYZ1GW4Ns<wcgs>zY~a*QNN`acyw4OL8?o>&LHZ$Nq<)Vm>n6<+b!aED?v ze)iwr$xtRXKz^u{M)sD+Q#ZLSB1zJG6zd>=7vgcqb#rf@{6J@Y>|((T6M;z0F;y<( z8=<}x(k5UfFahiU{sim;PR{K7k|gPWpa-mi`Yn)dhI%=qL%`#}-SG3B@Zmh%g{bOr zPdv*CL-dBpMQdUMEPf}j3F<2$T`{|JOOm8>uRa24AMhyf8=BUJPC?*w_xiK@Hx+-# U-_;h66#xJL07*qoM6N<$f~?F}-v9sr diff --git a/project/app/capa_60/periodo.png b/project/app/capa_60/periodo.png deleted file mode 100644 index cd1af8626edecad4116314092f4eb5d6bdfe0272..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1123 zcmV-p1f2VcP)Es9_f6cGglK_A6Gt@@}4eGx$vK?KDI zeG>FR1VvF=3swA6A4Em!pSBRJVud!g$-R4z4?CM|QX8W5rjpDTCSm5x?A?VQXLe`K zoWiU`hoWlLFTzG_z&iRPScyO}`?WF)n4p}%PuP#onApK-U$wf-(9(2HAf6~{ThUMT zTd)lms)e@;KVTnzO(nB)UCJqxH5JOYWZ(3*QJyCnYxH+{C&Fej97BG#L z;&Q5E#4D-Zh_O*?cXOJKAE@h}FPZmy%`9*lF?MfC4)6Zd-qCtD{FHdFWyoX(z~n37 zv&13d%(n5K`ZIg{swB!R#LR$*vMz^LQ;pGkyfGBS7gTR%5oYFxNw4@E)m~y5Vm;L% zV$1YSnarSwGC92~iE+9&p!YDhx6 z^w&{-H)Go_lNmIP)_%lDsg9V~pZ5K-5Hs^dqqR}WRVA?k2TtW3WfmnV;Gy>ilu4Mq zWXv8hGvAcWpF|N94JG9PoS%$Yh?)7K(b^jNf0pX^!;x7AWHJLH z3arLxi9Pf;)$2OV8I??C&=gf#skxDIkNR9nbu^t%X`NTeWCq3L7T;Q`E^&u+(B)gY zFQ!g;uQ@YdCL^{VB}R#J8^hyuNY0USr^0kHnL*G*c>TG8>HzU-%Q$)#@f%fY%w91w zC?<~#JVYF=r{}t%ag%qa@a@gh2V^oQi^=oym(}54)l;e7J}Lm!>%Iym`{+DFe>dfA6r*$4Kxuou-b2J6R0oNtiAx6fB$)+8j1XIiy+k+Z z=Zs`KZdGQsv~*IkoE7vQVdyTbrvEeLTk4c_zhI1sBMcWz4B&w>|8Ir^L-bZMvhD?PO-1<|IeOqmiWUc)bWZbxneBErt~A%;~dJAOsD@BWsYTBoFpL{ray+? pDRSBqNJ~Mh!g^5PG ztzfz@EOFcj$RN1GPyW(C(Q#hSfr6(`?+h6P ze+=xC;E#fR8_XZMc_yCQW2aD*z7s>2yeF4oa4$ja4d4{aJr0}x3gM1%-PTC&j3&4X zAlIRNAZM?~SV>XV7-EAyv*WwL{TMvI+#AP=+7%Q3HiDdsAgA7vn*~WH)lrnvk?K|kK`w%P2Qn0Q1WV`6NS*@`XpJvFQBlfB z=J9uen+JJ!`FPk0=0V;n7!;+%WFG$okT%G!yzxD7S3z#iZ2^i>a?%)I)`R;2WHL1j zgIofadU*|NlnRlBInRPzgM}v0egNDO$lm1-wTe;&((D4+5_SFzAVB0QkF)B*cIGyTx z8tj0L`S58nnTlSiAQLe;t-Sz(1>XX;L~GZidqpWZ(V5@20SuN<2(mpIRrE>~Np-yy zd}4uVU|Z+4j-pf!iTWM^W-QpBz>kHe+nXw_Qk1eGLErwqpm*dka0$q0w5!KgDu@g~ z@;4-}0`nsvGmyL-jhcI-RERA1=3$UISlSy6ZW81?NF!#Yskc`uK$c}`z?}w}%4u76 zgDgSvR6JI1uT+4{%O4B{QnJ5ba7Vz+&R$pXD{GTf?AbHwCXkch7NPx69LsKo9v#jWcfq|AH=8L^N>6r3da>?tsw&-kAnL$ z>h(nKh0OonME2@hoa^=~yTQK>8~_G^Z^3>>=vMqEa06&T%R)mF)|5WeGSCl;2qcnz=q!8iqcmE?1mWG pOoP1$?j+Q{0P}sEQqb;l{sRlrrl-BxZ{h#|002ovPDHLkV1io%4A1}o diff --git "a/project/app/capa_60/presta\303\247\303\243odecontasparcial.png" "b/project/app/capa_60/presta\303\247\303\243odecontasparcial.png" deleted file mode 100644 index 35f3b3583a80807d06ad3cf7ebb731fc5f1aed84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1162 zcmV;51an5NCI0@-I!4f$9E0=|a0)mJT)J*QMUo^*n%y#BHLwO)59OA+2|Et?J!pLb zMW@QL1Qh?*pp8_&KLGg{L_j_SQ(GZM=JJhO*jZ)S__(iL44g1+;fph0NRlK;T8R2{>(rA_2E^XF)~dsA zv!L@>y zKY$pA812ip-B;@ohkNTFoaXI5B}tN`YZ9q?{k0PEcyHu^SO)n-^%w|nrdN_ANsC{T zY4f`f=OI=BoyQ?2ARe*XD@l^1;SfdrS_8QY-R(f^hkVMwD@l^1;nK|Y=C2?=O;A1v z>1g!;VE@o2Ns^?YQFndQ5#as=X)W+;uP8~9Bn^e4-nH#4lxq`|cLFDSMM;t*X(%+= z_6(#O5~LB};y_W7BuQHAqI&C2QvIQ=oCHRv7bQuOq(!f3>fQ(x3DOy0eSOg2D@l^1 zVNqw>_DU!_2{;X`@`(>`6Hvz|i zsb?T}VB&6fZj&TQ(r~!4bK7#r6A(LrSOIYg@>sp7HJ`UANs=U8yC&0iUxs`MVnb8d z4>1mLTh;Nk>nll;q{XV4Vu+;>CmBdzzlC!*_tx~bacd3~ zKpPkX-hlD|q%kNi46Nx7!7=b%k|ar*YxS;d%{~-=jKZxup*02^1YUvSpQ^b#<6ag0 zUEO#A;&;dwAl`ylJ;ygMNs=U8rC1K#*C77_c@pByzS^|r>D4&A#C~z6dLy-1Dak4k1Ful|J zA0rCUs=_Zotc1K7T3dmQz#YH{lqICUfduY$EJ>22ITes@sy^n^(E1MY5ojHS;OV diff --git a/project/app/capa_60/processo.png b/project/app/capa_60/processo.png deleted file mode 100644 index 3f027ea627a54f3fc8422128583384ce9dec8d39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1058 zcmV+-1l{|IP)c{DW7=uUt-;V;<0@p!yE3gqb2OJ0g61Xp- zds$nHA`QK+0oe;8ATy9Y4Kmj6Utug))kFdRHQ%B;W$H*2B<# z$c8|kf#d^lZS`@b``p4di~&U`dPMLKM`$ld_C36d?~J}$JjupL!t`+f*>5IzSP zE!i6?Lc=%@#6?ZzbBz<1fxN3d>{IHKR5X=4x7MrU+a+7o*)T4Ua#x%_uNs?Do2U39 z9^?j)SqO);>`G3CagpQ^5*Wo%P`VfNY{-G>p0tU8xxZe(}JUz$D0UcQT`4 z)QQWY-m)#=zXF=;K>h~V+?}dp7&cOd%={0?w4-Hmq+*4w(H@n7g+ z`+QwmCV-cLM}X(Ry{0;nMb@s%XPm=PjgId@YeU^nZ!9-tEri!W=0Ls$xm)X9b^h@` zFJYQa;Nh*ni;#^2zk}Zo%mAl=Ip7Sm5*W7VIMB2kFmx4gHE=tGDR4Iezk=+9WG}e1 zS0r3yR$P5INqZ6+lfXkUtJ~*`kpBP)oX-oMjOB?J$Qs~>A)5zIfj%)KZIK$dP>%0B1NCjdQ@}8=7NP@O`!x(>q45F{;2QWVz&YSFa28yid|I_zau2bJ z1AO{`3_#cmwL`$8zzlE(xC~qcE&=yk*f2WCdf)+I9mEmv4?>&-{}FHu+%$*>1f0yX zjyM%OkZp(X6G#T(V~`g*eHDiB-;faq$07U;G6}M$VrvTOuEpTMMUXc@-UW9G7z6jq z-F{d)V{{8CU)2bHdmRkD4jcr=fup6ZDbkBec@Kb`01=QQ75jkxL>R^*M10cd+;|U! z48j*6_2$eaITT_aO=6$fRn8YS!&vNyuV{Hh1NVnIuBqq?his=hyw>7i7(Is6_5DTF z^nM-J&~QHpG6C|b8U{@4MsHK3IPzZlGyCUoMbmNsp7g*Y!0%n&lwouVr%zcg0}p#(tq#;^7=4A7 z6y#IDpa)+kRX&0V-soFo2EeD910E`7ySE|3=m;9b>&qb3y-xtE)o6k@`i(-9i)*z=tnEmS}q8DvkgXLlC|PxdGYM%0ec5W06xmxFnB* zT!QdpI@$+?eye?Hy!NDNKs*WlWndI;9fuXSDj(9$WND(a7hxD}aU}i4vgeF6fLDMM z5WfY#8{ExO+jmio;_{~EKfi$-PWLhmV=*F2LH22W>uIJWC8N&42@UIT+; z;CGN3sD1^U1ul~MOip#~A`GLI%t1XuwoHq`HUQ57+kjc%JD44X#)afBuC=%1Jb8Kb zXJGmhWJEkUI`GV=U>Ax77`Dsb@0+Oj@QAT2R;YB0rzW~Z{JAuUrwic76l+9 QwEzGB07*qoM6N<$f;kM+egFUf diff --git a/project/app/capa_60/projeto.png b/project/app/capa_60/projeto.png deleted file mode 100644 index 99753c534aefb0388fbf7a86c4e677c5139b658e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2387 zcmV-Z39R;sP)000RZNkl zeT-d26~KRY-nOs{mIb;l2F63&0rEaXTfyuD z-UfPsF~Bb1R6hM{S;hj>fC6BEnGkn@nG19QeGvBo{|56C@G?aIshlnaK=M?`Iw6to zY;rsf%J+hO5kx?afvf{r335BgmCfs`l0_~7xe3bO0(lAKpucCYf;<3nO{%W(UafA_ z$s$%;z`hSc$HTyVKnL&!m?wbOAv!q7`AJ_QK>UAB7Q1DU0geTtYB|t%6+K@eyV)u1?hVhWbGh#gX{u14f37J zeQwIVO`aYAnFsP$uomP|kd9QnHdVX}fy9fYDL(+V7wjI8&t&U1rc>!BWVtuhFM~`; z$qTB07b3}IG`Y7j9%Pl%0sB}=p0}$GRFEo1H=etgrXQ zl=F_DjFPq6|f5Sa%%cCt3M9H&E(v zN?5+%%XN0F43jXMUhECp=l$_e${1dJcYxgs_P3P=b)j0Rh2UMk5B8*6@E&sAIhfOL zf}8}oIy?AOl;ILy3tkNN0N7u6`CvK~2ADHIiXdP0avc{cBP3YGyS$6O*&h$2jKLbN z2D{s9v2NQ^>O`VP_I2DY{ee7fP{L^-)@g29t|%iVF>1v{Zi9p@tjH^s64Uu4$R6j< zL9L-uU&J_FE3XH6ts<)wMj%uCtVYL%N=^iWcRSeAAfHIdleM1m!(dN=Tvk~XSCo1q zk^3gjz6J6PeUw&+*?m-I^}^ zy5Cu=yK9u33A?&3a+@LS&%lM90OC)B*#Xf>XAMVvND1Y~w|d zmX*9oV&z0ffkVLbHeeP+d;7;QRFpgkON4(1<``fOE>I)7eyB8%$XmvL0W%H6lfmq- z6e>zXNOWyC#FGq|PT)jUp`tX3B1or!xD)7Wc5jrHBQbi%p?mvh=(Wwne-t%S@|24o}1tLHH6 zOC~AOpoC1Nl`&u9Fw#Yy_9Q(hcv5XUj%9oCb?G;gUuEup(E>s8o}-gz|`A2E5ZBk93Za zG+bKj8n!=3m8mi+p0wMQhrAMg*&nwJdfG5Ak|^U+pRe!f)J1hR-SVV$KvsJ1`6Yi` zFD0zLn9K*;2j#UO<11x4Zfrf$>GGr<>?*(H_gOE?%VP%rKL?lB`5lm+RJmHmmLX#W zKMJx18tZeh}>cz&`KZ$Uy@QQrhH} z?*lmob_d8ERrSyds$e zS8tM*kAQs^qzLjN$aUHJO(Q)PDBTA3kA9iw4^X;e;QBhb8J&ckGGqFe6>kCgwg1}l zZ&11`b>4`rV4aj9c@mN!PNg1bTLH`mjss6Y@i%bMwgJwKd_R)DsDd^Qsr;e=LK4b! zU>U^sgP8*HUN9?wSKPPA)%ShWQ2k`c0+1hpJqR`i*$DQhP`VT3lBRS~ISbMbvedmn zlMQZ5zkLtn36LdKb?Z77%)$Cd%DN>_inIgsApQcF8-ek-NTG*Z!gBtJ%Tl=yI9>lf zDTB}nbOW;>o(*Oy#C>3nLA(Xb8l3g>38BKh9mImxPR?#Hd1@kCC7%sk4@?K<0yA9# zY15T&f0Qh7FYvB620Pu#M`1feo3r)A;F37n{%zEU{{x=K3Nd`;-jDzQ002ovPDHLk FV1md%SZx3R diff --git a/project/app/capa_60/projeto_branco.png b/project/app/capa_60/projeto_branco.png deleted file mode 100644 index b80bd7758363f10388155019029f52d860c45c1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2621 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 Z5E~D*PcR6V1%3;~@DA?wwYH~{{|Cj@-LU`w diff --git a/project/app/estilo_fub.py b/project/app/estilo_fub.py deleted file mode 100644 index e57c92a3..00000000 --- a/project/app/estilo_fub.py +++ /dev/null @@ -1,3798 +0,0 @@ -import openpyxl -from openpyxl.styles import Font, PatternFill, Alignment,NamedStyle,Border, Side -import os -#pegar o caminho do arquivo -def pegar_caminho(nome_arquivo): - - # Obter o caminho absoluto do arquivo Python em execução - caminho_script = os.path.abspath(__file__) - - # Obter o diretório da pasta onde o script está localizado - pasta_script = os.path.dirname(caminho_script) - - # Combinar o caminho da pasta com o nome do arquivo Excel - caminho = os.path.join(pasta_script, nome_arquivo) - - return caminho - -def create_variable(name1, name2): - # Create a dictionary to store values with keys based on inputs - variables = {} - variable_name = f"{name1}_{name2}" # Create a variable name based on - variables[variable_name] = [] - - # Assign the value to the dynamically created variable name - return variables - -def estiloGeral(tabela,tamanho,nomeVariavel,nomeTabela): - nomeSheet=nomeVariavel - caminho = pegar_caminho(tabela) - workbook = openpyxl.load_workbook(caminho) - worksheet = workbook[nomeTabela] - size = tamanho + 10 - cinza = "d9d9d9" - cinza_escuro = "bfbfbf" - azul = "336394" - azul_claro = '1c8cbc' - - borda = Border(right=Side(border_style="medium")) - worksheet.sheet_view.showGridLines = False - # - for row in worksheet.iter_rows(min_row=1, max_row=size+11,min_col=10,max_col=10): - for cell in row: - cell.border = borda - - - worksheet.column_dimensions['a'].width = 25 - worksheet.column_dimensions['b'].width = 25 - worksheet.column_dimensions['c'].width = 35 - worksheet.column_dimensions['d'].width = 35#descrição - worksheet.column_dimensions['e'].width = 65 #n do recibo ou qeuivalente - worksheet.column_dimensions['f'].width = 25 #data de emissão - worksheet.column_dimensions['g'].width = 25 #data de emissão - worksheet.column_dimensions['h'].width = 25 #data de emissão - worksheet.column_dimensions['i'].width = 25 #data de emissão - worksheet.column_dimensions['j'].width = 25 #data de emissão - - - #cabecario relação de pagamentos - outro servicoes de terceiros - worksheet.merge_cells('A1:J2') - if nomeSheet == "diarias": - worksheet['A1'] = f'R E L A Ç Ã O D E P A G A M E N T O S - DIÁRIAS' - elif nomeSheet == "pessoaFisica": - worksheet['A1'] = f'R E L A Ç Ã O D E P A G A M E N T O S - OUTROS SERVIÇOS DE TERCEIROS - PF' - elif nomeSheet == "pessoaJuridica": - worksheet['A1'] = f'R E L A Ç Ã O D E P A G A M E N T O S - OUTROS SERVIÇOS DE TERCEIROS - PESSOA JURÍDICA' - elif nomeSheet == "passagenDespLocomo": - worksheet['A1'] = f'R E L A Ç Ã O D E P A G A M E N T O S - PASSAGENS E DESPESAS COM LOCOMOÇÃO' - elif nomeSheet == "outrosServiçosTerceiros": - worksheet['A1'] = f'R E L A Ç Ã O D E P A G A M E N T O S - O U T R O S S E R V I Ç O S D E T E R C E I R O S - C E L E T I S T A S' - elif nomeSheet == "auxilioEstudante": - worksheet['A1'] = f'R E L A Ç Ã O D E P A G A M E N T O S - AUXÍLIO FINANCEIRO A ESTUDANTE' - elif nomeSheet == "bolsaExtensao": - worksheet['A1'] = f'R E L A Ç Ã O D E P A G A M E N T O S - BOLSA DE EXTENSÃO' - elif nomeSheet == "estagiario": - worksheet['A1'] = f'R E L A Ç Ã O D E P A G A M E N T O S - ESTAGIÁRIO' - elif nomeSheet == "custosIndiretos": - worksheet['A1'] = f'R E L A Ç Ã O D E P A G A M E N T O S - CUSTOS INDIRETOS - FUB' - elif nomeSheet == "materialDeConsumo": - worksheet['A1'] = f'R E L A Ç Ã O D E P A G A M E N T O S - MATERIAL DE CONSUMO' - elif nomeSheet == "equipamentoMaterialPermanente": - worksheet['A1'] = f'R E L A Ç Ã O D E P A G A M E N T O S - EQUIPAMENTO E MATERIAL PERMANENTE' - - - worksheet['A1'].font = Font(name="Arial", size=12, color="FFFFFF",bold=True) - worksheet['A1'].alignment = Alignment(horizontal="center",vertical="center") - worksheet['A1'].fill = PatternFill(start_color=azul_claro, end_color=azul_claro,fill_type = "solid") - - worksheet.merge_cells('A3:F3') - worksheet['A3'] = "='Receita x Despesa'!A3:J3" - worksheet['A3'].font = Font(name="Arial", size=12, color="000000") - worksheet['A3'].alignment = Alignment(horizontal="left",vertical="center") - - worksheet.merge_cells('A4:F4') - worksheet['A4'] = "='Receita x Despesa'!A4:J4" - worksheet['A4'].font = Font(name="Arial", size=12, color="000000") - worksheet['A4'].alignment = Alignment(horizontal="left",vertical="center") - - worksheet.merge_cells('A5:F5') - worksheet['A5'] = "='Receita x Despesa'!A5:J5" - worksheet['A5'].font = Font(name="Arial", size=12, color="000000") - worksheet['A5'].alignment = Alignment(horizontal="left",vertical="center") - - worksheet.merge_cells('A6:F6') - worksheet['A6'] = "='Receita x Despesa'!A6:J6" - worksheet['A6'].font = Font(name="Arial", size=12, color="000000") - worksheet['A6'].alignment = Alignment(horizontal="left",vertical="center") - - worksheet.merge_cells('A7:F7') - worksheet['A7'] = "='Receita x Despesa'!A7:J7" - worksheet['A7'].font = Font(name="Arial", size=12, color="000000") - worksheet['A7'].alignment = Alignment(horizontal="left",vertical="center") - - #variavel - - input2=f'rowStyle{nomeVariavel}' - - - #colunas azul cabecario - locals()[input2] = NamedStyle(name=f'{input2}') - locals()[input2].font = Font(name="Arial", size=12, color="FFFFFF",bold=True) - locals()[input2].fill = openpyxl.styles.PatternFill(start_color=azul_claro, end_color=azul_claro, fill_type='solid') - locals()[input2].alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - locals()[input2].border = Border(top=Side(border_style="medium") ,bottom=Side(border_style="thin") ) - locals()[input2].height = 20 - linha_number = 9 - for row in worksheet.iter_rows(min_row=linha_number, max_row=linha_number, min_col=1, max_col=10): - for cell in row: - cell.style = locals()[input2] - if cell.column == 10: - cell.border = Border(top=Side(border_style="medium") ,bottom=Side(border_style="thin"), right=Side(border_style="medium") ) - - valores = ["ITEM","NOME","CNPJ/CPF",'ESPECIFICAÇÃO DA DESPESA','DESCRIÇÃO',"Nº DO RECIBO OU EQUIVALENTE","DATA DE EMISSÃO",'CHEQUE / ORDEM BANCÁRIA','DATA DE PGTO','Valor'] - col = 1 - for a,b in enumerate(valores): - worksheet.cell(row=linha_number, column=col, value=b) - col = col + 1 - - - #Aumentar a altura das celulas - for row in worksheet.iter_rows(min_row=10, max_row=size, min_col=1, max_col=10): - worksheet.row_dimensions[row[0].row].height = 60 - input3 = f'customNumber{nomeVariavel}' - - # MASCARA R$ - - locals()[input3] = NamedStyle(name=f'{input3}') - locals()[input3].number_format = 'R$ #,##0.00' - locals()[input3].font = Font(name="Arial", size=12, color="000000") - locals()[input3].alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - - #estilocinzasimcinzanao - value_to_stop = size - start_row = 10 -# - for row in range(start_row,size+1): - cell = worksheet[f'J{row}'] - cell.style = locals()[input3] - - for rows in worksheet.iter_rows(min_row=10, max_row=size, min_col=1, max_col=10): - for cell in rows: - if cell.row % 2: - cell.fill = PatternFill(start_color=cinza, end_color=cinza, - fill_type = "solid") - if cell.column == 10: - cell.font = Font(name="Arial", size=12, color="000000") - cell.alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - cell.border = Border(top=Side(border_style="hair") ,left = Side(border_style="hair") ,right =Side(border_style="medium") ,bottom=Side(border_style="hair") ) - else: - cell.font = Font(name="Arial", size=12, color="000000") - cell.alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - cell.border = Border(top=Side(border_style="hair") ,left = Side(border_style="hair") ,right =Side(border_style="hair") ,bottom=Side(border_style="hair") ) - - - #subtotal - stringAfinarCelula =size+2 - worksheet.row_dimensions[size+2].height = 6 - celulas_mergidas_subtotal = f"A{size+2}:I{size+2}" - worksheet.merge_cells(celulas_mergidas_subtotal) - left_celula_cell = f"A{size+2}" - top_left_cell = worksheet[left_celula_cell] - top_left_cell.value = "Sub Total1" - top_left_cell.fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") - top_left_cell.font = Font(name="Arial", size=12, color="000000",bold=True) - top_left_cell.alignment = Alignment(horizontal="center",vertical="center") - top_left_cell.border = Border(top=Side(border_style="thin") ,left = Side(border_style="medium") ,right =Side(border_style="thin") ,bottom=Side(border_style="medium") ) - - worksheet.row_dimensions[size+2].height = 56.25 - - # FORMULATOTAL - formula = f"=SUM(J10:J{size})" - celula = f'J{size+2}' - worksheet[celula] = formula - worksheet[celula].fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") - worksheet[celula].font = Font(name="Arial", size=12, color="000000",bold=True) - worksheet[celula].border = Border(top=Side(border_style="thin") ,left = Side(border_style="thin") ,right =Side(border_style="medium") ,bottom=Side(border_style="medium") ) - worksheet[celula].number_format = 'R$ #,##0.00' - #restituições creditadas - restituicoes = size + 3 - celula_restituicoes=f'A{restituicoes}' - worksheet[celula_restituicoes].value = "RESTITUIÇÕES CREDITADAS" - worksheet[celula_restituicoes].font = Font(name="Arial", size=12, color="000000",bold=True) - worksheet.row_dimensions[restituicoes].height = 30 - - - input4 = f'row_style_diaria_append{nomeVariavel}' - #estilo colunas restitucoes creditadas - locals()[input4] = NamedStyle(name=f'{input4}') - locals()[input4].font = Font(name="Arial", size=12, color="FFFFFF",bold=True) - locals()[input4].fill = openpyxl.styles.PatternFill(start_color=azul_claro, end_color=azul_claro, fill_type='solid') - locals()[input4].alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - locals()[input4].height = 30 - locals()[input4].border = Border(top=Side(border_style="medium") ,bottom=Side(border_style="medium") ) - - - row_number = size + 4 - - for column in range(1, 11): - cell = worksheet.cell(row=row_number, column=column) - cell.style = locals()[input4] - if cell.column == 10: - cell.border = Border(top=Side(border_style="medium") ,right =Side(border_style="medium") ,bottom=Side(border_style="medium") ) - - - - values = ["Item","Restituidor","CNPJ/CPF",'Descrição',"Cheque equivalente","Data do Cheque",'Nº do Depósito','Data da Devolução','Valor'] - coluna = 1 - for a,b in enumerate(values): - worksheet.cell(row=row_number, column=coluna, value=b) - if coluna == 4: - coluna = coluna + 1 - coluna = coluna + 1 - - - merge_formula = f'D{row_number}:E{row_number}' - worksheet.merge_cells(merge_formula) - - - #subtotal2 - sub_total2_row = size + 5 - subtotal_merge_cells= f'A{sub_total2_row}:I{sub_total2_row}' - worksheet.merge_cells(subtotal_merge_cells) - top_left_subtotal2_cell_formula = f'A{sub_total2_row}' - top_left_subtotal2_cell = worksheet[top_left_subtotal2_cell_formula] - top_left_subtotal2_cell.value = "Sub Total 2" - top_left_subtotal2_cell.fill = PatternFill(start_color=cinza_escuro, end_color=cinza_escuro,fill_type = "solid") - top_left_subtotal2_cell.font = Font(name="Arial", size=12, color="000000",bold=True) - top_left_subtotal2_cell.alignment = Alignment(horizontal="center",vertical="center") - top_left_subtotal2_cell.border = Border(top=Side(border_style="hair") ,left = Side(border_style="medium") ,right =Side(border_style="hair") ,bottom=Side(border_style="medium") ) - - sub_formula_row_celula = f'J{sub_total2_row}' - worksheet[sub_formula_row_celula].fill = PatternFill(start_color=cinza_escuro, end_color=cinza_escuro,fill_type = "solid") - worksheet[sub_formula_row_celula].font = Font(name="Arial", size=12, color="000000",bold=True) - worksheet[sub_formula_row_celula].number_format = 'R$ #,##0.00' - worksheet[sub_formula_row_celula].border = Border(top=Side(border_style="thin") ,left = Side(border_style="thin") ,right =Side(border_style="medium") ,bottom=Side(border_style="medium") ) - - #total1-2 - total12_row = size + 6 - total12_merge_cells = f'A{total12_row}:I{total12_row}' - worksheet.merge_cells(total12_merge_cells) - top_left_total12_cell_formula = f'A{total12_row}' - top_left_total12_cell = worksheet[top_left_total12_cell_formula] - top_left_total12_cell.value = "Total(1-2)" - top_left_total12_cell.fill = PatternFill(start_color=azul_claro, end_color=azul_claro,fill_type = "solid") - top_left_total12_cell.font = Font(name="Arial", size=12, color="000000",bold=True) - top_left_total12_cell.alignment = Alignment(horizontal="center",vertical="center") - top_left_total12_cell.border = Border(top=Side(border_style="medium") ,left = Side(border_style="medium") ,bottom=Side(border_style="medium") ) - - - #total_formula - total_formula_row = size + 6 - total_formulaa = f'=J{size}' - total_formula_row_celula = f'J{total_formula_row}' - worksheet[total_formula_row_celula].fill = PatternFill(start_color=azul_claro, end_color=azul_claro,fill_type = "solid") - worksheet[total_formula_row_celula].font = Font(name="Arial", size=12, color="000000",bold=True) - worksheet[total_formula_row_celula].number_format = 'R$ #,##0.00' - worksheet[total_formula_row_celula].border = Border(top=Side(border_style="medium") ,bottom=Side(border_style="medium"),right=Side(border_style="medium") ) - - worksheet.row_dimensions[total_formula_row].height = 30 - worksheet[total_formula_row_celula] = total_formulaa - - - #brasilia - brasilia_row = size + 7 - brasilia_formula = f"='Receita x Despesa'!A42:J42" - brasilia_merge_cells = f'A{brasilia_row}:I{brasilia_row}' - worksheet.merge_cells(brasilia_merge_cells) - top_left_brasilia_cell_formula = f'A{brasilia_row}' - top_left_brasilia_cell = worksheet[top_left_brasilia_cell_formula] - top_left_brasilia_cell.value = brasilia_formula - top_left_brasilia_cell.alignment = Alignment(horizontal="center",vertical="center") - - #DiretorFinanceiro - diretor_row = size + 8 - diretor_cargo_row = size + 9 - diretor_cpf_row = size + 10 - diretor_nome_formula = f"='Receita x Despesa'!A45" - diretor_cargo_formula = f"='Receita x Despesa'!A46" - diretor_cpf_formula = f"='Receita x Despesa'!A47" - diretor_merge_cells = f'A{diretor_row}:D{diretor_row}' - diretor_cargo_merge_cells = f'A{diretor_cargo_row}:D{diretor_cargo_row}' - diretor_cpf_merge_cells = f'A{diretor_cpf_row}:D{diretor_cpf_row}' - worksheet.merge_cells(diretor_merge_cells) - worksheet.merge_cells(diretor_cargo_merge_cells) - worksheet.merge_cells(diretor_cpf_merge_cells) - top_left_diretor_cell_formula = f'A{diretor_row}' - top_left_diretor_cell_cargo_formula = f'A{diretor_cargo_row}' - top_left_diretor_cell_cpf_formula = f'A{diretor_cpf_row}' - top_left_diretor_cell = worksheet[top_left_diretor_cell_formula] - top_left_diretor_cell_cargo_formula = worksheet[top_left_diretor_cell_cargo_formula] - top_left_diretor_cell_cpf_formula = worksheet[top_left_diretor_cell_cpf_formula] - top_left_diretor_cell.value = diretor_nome_formula - top_left_diretor_cell_cargo_formula.value = diretor_cargo_formula - top_left_diretor_cell_cpf_formula.value = diretor_cpf_formula - top_left_diretor_cell.alignment = Alignment(horizontal="center",vertical="center") - top_left_diretor_cell.font = Font(bold=True) - top_left_diretor_cell_cargo_formula.alignment = Alignment(horizontal="center",vertical="center") - top_left_diretor_cell_cpf_formula.alignment = Alignment(horizontal="center",vertical="center") - #Coordenadora - coordenadora_row = size + 8 - coordenadora_cargo_row = size + 9 - coordenadora_cpf_row = size + 10 - coordenadora_nome_formula = f"='Receita x Despesa'!H45" - coordenadora_cargo_formula = f"='Receita x Despesa'!H46" - coordenadora_cpf_formula = f"='Receita x Despesa'!H47" - coordenadora_merge_cells = f'F{coordenadora_row}:J{coordenadora_row}' - coordenadora_cargo_merge_cells = f'F{coordenadora_cargo_row}:J{coordenadora_cargo_row}' - coordenadora_cpf_merge_cells = f'F{coordenadora_cpf_row}:J{coordenadora_cpf_row}' - worksheet.merge_cells(coordenadora_merge_cells) - worksheet.merge_cells(coordenadora_cargo_merge_cells) - worksheet.merge_cells(coordenadora_cpf_merge_cells) - top_left_coordenadora_cell_formula = f'F{coordenadora_row}' - top_left_coordenadora_cell_cargo_formula = f'F{coordenadora_cargo_row}' - top_left_coordenadora_cell_cpf_formula = f'F{coordenadora_cpf_row}' - top_left_coordenadora_cell = worksheet[top_left_coordenadora_cell_formula] - top_left_coordenadora_cell_cargo_formula = worksheet[top_left_coordenadora_cell_cargo_formula] - top_left_coordenadora_cell_cpf_formula = worksheet[top_left_coordenadora_cell_cpf_formula] - top_left_coordenadora_cell.value = coordenadora_nome_formula - top_left_coordenadora_cell_cargo_formula.value = coordenadora_cargo_formula - top_left_coordenadora_cell_cpf_formula.value = coordenadora_cpf_formula - top_left_coordenadora_cell.alignment = Alignment(horizontal="center",vertical="center") - top_left_coordenadora_cell.font= Font(bold = True) - top_left_coordenadora_cell_cargo_formula.alignment = Alignment(horizontal="center",vertical="center") - top_left_coordenadora_cell_cpf_formula.alignment = Alignment(horizontal="center",vertical="center") - - - # borda = Border(right=Side(border_style="medium")) - # worksheet.sheet_view.showGridLines = False - # # - # for row in worksheet.iter_rows(min_row=1, max_row=coordenadora_cpf_row+1,min_col=10,max_col=10): - # for cell in row: - # cell.border = borda - - - - for row in worksheet.iter_rows(min_row=coordenadora_cpf_row+1, max_row=coordenadora_cpf_row+1,min_col=1,max_col=10): - for cell in row: - if cell.column == 10: - cell.border = Border(top=Side(border_style="none") ,left = Side(border_style="none") ,right =Side(border_style="medium") ,bottom=Side(border_style="medium") ) - else: - cell.border = Border(top=Side(border_style="none") ,left = Side(border_style="none") ,right =Side(border_style="none") ,bottom=Side(border_style="medium") ) - - workbook.save(tabela) - workbook.close() - -def estilo_conciliacoes_bancaria(tabela,tamanho,tamanho2): - - - caminho = pegar_caminho(tabela) - workbook = openpyxl.load_workbook(caminho) - worksheet = workbook['Conciliação Bancária'] - - - size = tamanho + 16 - #worksheet.row_dimensions[27].height = 50 - cinza = "d9d9d9" - cinza_escuro = "bfbfbf" - azul = "336394" - azul_claro = '1c8cbc' - - borda = Border(right=Side(border_style="medium")) - worksheet.sheet_view.showGridLines = False - # - - - - worksheet.column_dimensions['a'].width = 25 - worksheet.column_dimensions['b'].width = 25 - worksheet.column_dimensions['c'].width = 35 - worksheet.column_dimensions['d'].width = 35 - worksheet.column_dimensions['e'].width = 20 - worksheet.column_dimensions['f'].width = 20 - - - #cabecario relação de pagamentos - outro servicoes de terceiros - worksheet.merge_cells('A1:F2') - worksheet['A1'] = f'C O N C I L I A Ç Ã O B A N C Á R I A' - worksheet['A1'].font = Font(name="Arial", size=12, color="FFFFFF",bold=True) - worksheet['A1'].alignment = Alignment(horizontal="center",vertical="center") - worksheet['A1'].fill = PatternFill(start_color=azul_claro, end_color=azul_claro,fill_type = "solid") - - worksheet.merge_cells('A3:F3') - worksheet['A3'] = "='Receita x Despesa'!A3:J3" - worksheet['A3'].font = Font(name="Arial", size=12, color="000000") - worksheet['A3'].alignment = Alignment(horizontal="left",vertical="center") - - worksheet.merge_cells('A4:F4') - worksheet['A4'] = "='Receita x Despesa'!A4:J4" - worksheet['A4'].font = Font(name="Arial", size=12, color="000000") - worksheet['A4'].alignment = Alignment(horizontal="left",vertical="center") - - worksheet.merge_cells('A5:F5') - worksheet['A5'] = "='Receita x Despesa'!A5:J5" - worksheet['A5'].font = Font(name="Arial", size=12, color="000000") - worksheet['A5'].alignment = Alignment(horizontal="left",vertical="center") - - worksheet.merge_cells('A6:F6') - worksheet['A6'] = "='Receita x Despesa'!A6:J6" - worksheet['A6'].font = Font(name="Arial", size=12, color="000000") - worksheet['A6'].alignment = Alignment(horizontal="left",vertical="center") - - worksheet.merge_cells('A7:F7') - worksheet['A7'] = "='Receita x Despesa'!A7:J7" - worksheet['A7'].font = Font(name="Arial", size=12, color="000000") - worksheet['A7'].alignment = Alignment(horizontal="left",vertical="center") - - worksheet.merge_cells('A9:F9') - worksheet['A9'] = '1.Saldo conforme extratos bancários na data final do período' - worksheet['A9'].font = Font(name="Arial", size=12, color="FFFFFF",bold=True) - worksheet['A9'].alignment = Alignment(horizontal="left",vertical="center") - worksheet['A9'].fill = PatternFill(start_color=azul_claro, end_color=azul_claro,fill_type = "solid") - - worksheet.merge_cells('A10:E10') - worksheet['A10'] = 'Saldo de Conta Corrente(R$)' - worksheet['A10'].font = Font(name="Arial", size=12, color="000000",bold=True) - worksheet['A10'].alignment = Alignment(horizontal="right",vertical="center") - - worksheet.merge_cells('A11:E11') - worksheet['A11'] = 'Saldo de Aplicações Financeiras(R$)' - worksheet['A11'].font = Font(name="Arial", size=12, color="000000",bold=True) - worksheet['A11'].alignment = Alignment(horizontal="right",vertical="center") - - worksheet.merge_cells('A13:F13') - worksheet['A13'] = '2. Restituições não creditadas pelo banco até a data final do período' - worksheet['A13'].font = Font(name="Arial", size=12, color="FFFFFF",bold=True) - worksheet['A13'].alignment = Alignment(horizontal="left",vertical="center") - worksheet['A13'].fill = PatternFill(start_color=azul_claro, end_color=azul_claro,fill_type = "solid") - - for i in range(15,size): - sttring = f"D{i}:F{i}" - worksheet.merge_cells(sttring) - - for i in range(size+3,size+3+tamanho2): - sttring = f"D{i}:F{i}" - worksheet.merge_cells(sttring) - - custom_number_format_conciliacoes = [] - # MASCARA R$ - if custom_number_format_conciliacoes!= False: - custom_number_format_conciliacoes = NamedStyle(name='custom_number_format_conciliacoes') - custom_number_format_conciliacoes.number_format = 'R$ #,##0.00' - custom_number_format_conciliacoes.font = Font(name="Arial", size=12, color="000000") - custom_number_format_conciliacoes.alignment = Alignment(horizontal="general",vertical="bottom",wrap_text=True) - - #stylecinza - start_row = 15 - for row in range(start_row,size+1): - cell = worksheet[f'B{row}'] - cell.style = custom_number_format_conciliacoes - - for rows in worksheet.iter_rows(min_row=15, max_row=size, min_col=1, max_col=6): - for cell in rows: - if cell.row % 2: - cell.fill = PatternFill(start_color=cinza, end_color=cinza, - fill_type = "solid") - cell.font = Font(name="Arial", size=12, color="000000") - cell.alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - - - row_number = 15 - values = ["Data","Valor(R$)","Documento",'Descrição'] - coluna = 1 - for a,b in enumerate(values): - worksheet.cell(row=row_number, column=coluna, value=b) - - coluna = coluna + 1 - - # FORMULATOTAL - formula = f"=SUM(B16:B{size-1})" - celula = f'B{size}' - worksheet[celula] = formula - worksheet[celula].fill = PatternFill(start_color=cinza_escuro, end_color=cinza_escuro,fill_type = "solid") - worksheet[celula].font = Font(name="Arial", size=12, color="000000",bold=True) - #Total - celula_total = F'A{size}' - worksheet[celula_total] = f'TOTAL' - worksheet[celula_total].fill = PatternFill(start_color=cinza_escuro, end_color=cinza_escuro,fill_type = "solid") - worksheet[celula_total].font = Font(name="Arial", size=12, color="000000",bold=True) - #'3. Restituições não creditadas pelo banco até a data final do período' - string_reituicoes_creditadas = f'A{size+2}:F{size+2}' - row_creditadas = f'A{size+2}' - worksheet.merge_cells(string_reituicoes_creditadas) - - worksheet[row_creditadas] = '3. Restituições creditadas pelo banco até a data final do período' - worksheet[row_creditadas].font = Font(name="Arial", size=12, color="FFFFFF",bold=True) - worksheet[row_creditadas].alignment = Alignment(horizontal="left",vertical="center") - worksheet[row_creditadas].fill = PatternFill(start_color=azul_claro, end_color=azul_claro,fill_type = "solid") - - #data valor documento descrição - row_number = size+3 - values = ["Data","Valor(R$)","Documento",'Descrição'] - coluna = 1 - for a,b in enumerate(values): - worksheet.cell(row=row_number, column=coluna, value=b) - coluna = coluna + 1 - - for rows in worksheet.iter_rows(min_row=15, max_row=15, min_col=1, max_col=6): - for cell in rows: - cell.font = Font(name="Arial", size=12, color="000000",bold=True) - for rows in worksheet.iter_rows(min_row=row_number, max_row=row_number, min_col=1, max_col=6): - for cell in rows: - cell.font = Font(name="Arial", size=12, color="000000",bold=True) - - - - for row in range(size+4,size+4+tamanho2): - cell = worksheet[f'B{row}'] - cell.style = custom_number_format_conciliacoes - - for rows in worksheet.iter_rows(min_row=size+3, max_row=size+3+tamanho, min_col=1, max_col=6): - for cell in rows: - if cell.row % 2: - cell.fill = PatternFill(start_color=cinza, end_color=cinza, - fill_type = "solid") - cell.font = Font(name="Arial", size=12, color="000000") - cell.alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - if cell.column == 6: - cell.border = Border(top=Side(border_style="hair") ,left = Side(border_style="hair") ,right =Side(border_style="medium") ,bottom=Side(border_style="hair") ) - - - # FORMULATOTALrestituição - formula = f"=SUM(B{size+4}:B{size+tamanho2+3})" - celula = f'B{size+tamanho2+4}' - worksheet[celula] = formula - worksheet[celula].fill = PatternFill(start_color=cinza_escuro, end_color=cinza_escuro,fill_type = "solid") - worksheet[celula].font = Font(name="Arial", size=12, color="000000",bold=True) - #Total - celula_total = F'A{size+tamanho2+4}' - worksheet[celula_total] = f'TOTAL' - worksheet[celula_total].fill = PatternFill(start_color=cinza_escuro, end_color=cinza_escuro,fill_type = "solid") - worksheet[celula_total].font = Font(name="Arial", size=12, color="000000",bold=True) - #Saldo disponível p/ período seguinte (1 +2 - 3) - string_saldo_disponivel = f'A{size+3+tamanho2+3}:D{size+3+tamanho2+3}' - celula_string_saldo = f'A{size+tamanho2+6}' - worksheet[celula_string_saldo].fill = PatternFill(start_color=cinza_escuro, end_color=cinza_escuro,fill_type = "solid") - worksheet.merge_cells(string_saldo_disponivel) - worksheet[celula_string_saldo]= f'Saldo disponível p/ período seguinte (1 + 2 - 3)' - #total saldo diposnivel - string_merge_saldo_disponivel = f'E{size+3+tamanho2+3}:F{size+3+tamanho2+3}' - celula_string_total = f'E{size+tamanho2+6}' - worksheet.merge_cells(string_merge_saldo_disponivel) - saldodiposnivelformat_conciliacoes = NamedStyle(name='saldodiposnivelformat_conciliacoes') - saldodiposnivelformat_conciliacoes.number_format = 'R$ #,##0.00' - saldodiposnivelformat_conciliacoes.font = Font(name="Arial", size=12, color="000000") - saldodiposnivelformat_conciliacoes.alignment = Alignment(horizontal="general",vertical="bottom",wrap_text=True) - saldodiposnivelformat_conciliacoes.fill = PatternFill(start_color=cinza_escuro, end_color=cinza_escuro,fill_type = "solid") - celular = worksheet[celula_string_total] - celular.style = saldodiposnivelformat_conciliacoes - celular.value = f'=F10+F11+B{size} -B{size+tamanho2+4}' - - #brasilia - brasilia_row = size + tamanho2+ 8 - brasilia_formula = f"='Receita x Despesa'!A42:F42" - brasilia_merge_cells = f'A{brasilia_row}:F{brasilia_row}' - worksheet.merge_cells(brasilia_merge_cells) - top_left_brasilia_cell_formula = f'A{brasilia_row}' - top_left_brasilia_cell = worksheet[top_left_brasilia_cell_formula] - top_left_brasilia_cell.value = brasilia_formula - top_left_brasilia_cell.alignment = Alignment(horizontal="center",vertical="center") - - # #DiretorFinanceiro - diretor_row = size + 10 + tamanho2 - diretor_cargo_row = size + 11 + tamanho2 - diretor_cpf_row = size + 12 + tamanho2 - diretor_nome_formula = f"='Receita x Despesa'!A45" - diretor_cargo_formula = f"='Receita x Despesa'!A46" - diretor_cpf_formula = f"='Receita x Despesa'!A47" - diretor_merge_cells = f'A{diretor_row}:B{diretor_row}' - diretor_cargo_merge_cells = f'A{diretor_cargo_row}:B{diretor_cargo_row}' - diretor_cpf_merge_cells = f'A{diretor_cpf_row}:B{diretor_cpf_row}' - worksheet.merge_cells(diretor_merge_cells) - worksheet.merge_cells(diretor_cargo_merge_cells) - worksheet.merge_cells(diretor_cpf_merge_cells) - top_left_diretor_cell_formula = f'A{diretor_row}' - top_left_diretor_cell_cargo_formula = f'A{diretor_cargo_row}' - top_left_diretor_cell_cpf_formula = f'A{diretor_cpf_row}' - top_left_diretor_cell = worksheet[top_left_diretor_cell_formula] - top_left_diretor_cell_cargo_formula = worksheet[top_left_diretor_cell_cargo_formula] - top_left_diretor_cell_cpf_formula = worksheet[top_left_diretor_cell_cpf_formula] - top_left_diretor_cell.value = diretor_nome_formula - top_left_diretor_cell_cargo_formula.value = diretor_cargo_formula - top_left_diretor_cell_cpf_formula.value = diretor_cpf_formula - top_left_diretor_cell.alignment = Alignment(horizontal="center",vertical="center") - top_left_diretor_cell.font = Font(bold=True) - top_left_diretor_cell_cargo_formula.alignment = Alignment(horizontal="center",vertical="center") - top_left_diretor_cell_cpf_formula.alignment = Alignment(horizontal="center",vertical="center") - #Coordenadora - coordenadora_row = size + tamanho2 + 10 - coordenadora_cargo_row = size + 11 + tamanho2 - coordenadora_cpf_row = size + 12+ tamanho2 - coordenadora_nome_formula = f"='Receita x Despesa'!H45" - coordenadora_cargo_formula = f"='Receita x Despesa'!H46" - coordenadora_cpf_formula = f"='Receita x Despesa'!H47" - coordenadora_merge_cells = f'D{coordenadora_row}:F{coordenadora_row}' - coordenadora_cargo_merge_cells = f'D{coordenadora_cargo_row}:F{coordenadora_cargo_row}' - coordenadora_cpf_merge_cells = f'D{coordenadora_cpf_row}:F{coordenadora_cpf_row}' - worksheet.merge_cells(coordenadora_merge_cells) - worksheet.merge_cells(coordenadora_cargo_merge_cells) - worksheet.merge_cells(coordenadora_cpf_merge_cells) - top_left_coordenadora_cell_formula = f'D{coordenadora_row}' - top_left_coordenadora_cell_cargo_formula = f'D{coordenadora_cargo_row}' - top_left_coordenadora_cell_cpf_formula = f'D{coordenadora_cpf_row}' - top_left_coordenadora_cell = worksheet[top_left_coordenadora_cell_formula] - top_left_coordenadora_cell_cargo_formula = worksheet[top_left_coordenadora_cell_cargo_formula] - top_left_coordenadora_cell_cpf_formula = worksheet[top_left_coordenadora_cell_cpf_formula] - top_left_coordenadora_cell.value = coordenadora_nome_formula - top_left_coordenadora_cell_cargo_formula.value = coordenadora_cargo_formula - top_left_coordenadora_cell_cpf_formula.value = coordenadora_cpf_formula - top_left_coordenadora_cell.alignment = Alignment(horizontal="center",vertical="center") - top_left_coordenadora_cell.border = borda - top_left_coordenadora_cell.font= Font(bold = True) - top_left_coordenadora_cell_cargo_formula.alignment = Alignment(horizontal="center",vertical="center") - top_left_coordenadora_cell_cargo_formula.border = borda - top_left_coordenadora_cell_cpf_formula.alignment = Alignment(horizontal="center",vertical="center") - top_left_coordenadora_cell_cpf_formula.border = borda - - for row in worksheet.iter_rows(min_row=1, max_row=size+11,min_col=6,max_col=6): - for cell in row: - cell.border = borda - - for row in worksheet.iter_rows(min_row=coordenadora_cpf_row+1, max_row=coordenadora_cpf_row+1,min_col=1,max_col=6): - for cell in row: - if cell.column == 6: - cell.border = Border(top=Side(border_style="none") ,left = Side(border_style="none") ,right =Side(border_style="medium") ,bottom=Side(border_style="medium") ) - else: - cell.border = Border(top=Side(border_style="none") ,left = Side(border_style="none") ,right =Side(border_style="none") ,bottom=Side(border_style="medium") ) - - workbook.save(tabela) - workbook.close() - -def estilo_rendimento_de_aplicacao(tabela,tamanho): - caminho = pegar_caminho(tabela) - workbook = openpyxl.load_workbook(caminho) - worksheet = workbook['Rendimento de Aplicação'] - - - size = tamanho + 16 - worksheet.row_dimensions[10].height = 2 - worksheet.row_dimensions[9].height = 20 - - cinza = "d9d9d9" - cinza_escuro = "bfbfbf" - azul = "336394" - azul_claro = '1c8cbc' - borda = Border(right=Side(border_style="medium")) - worksheet.sheet_view.showGridLines = False - # - for row in worksheet.iter_rows(min_row=1, max_row=size+9,min_col=8,max_col=8): - for cell in row: - cell.border = borda - - - - worksheet.column_dimensions['a'].width = 20 - worksheet.column_dimensions['b'].width = 20 - worksheet.column_dimensions['c'].width = 20 - worksheet.column_dimensions['d'].width = 20 - worksheet.column_dimensions['e'].width = 20 - worksheet.column_dimensions['f'].width = 20 - worksheet.column_dimensions['g'].width = 20 - worksheet.column_dimensions['h'].width = 20 - - - #cabecario relação de pagamentos - outro servicoes de terceiros - worksheet.merge_cells('A1:H2') - worksheet['A1'] = f'D E M O N S T R A T I V O D E R E N D I M E N T O D E A P L I C A Ç Ã O F I N A N C E I R A' - worksheet['A1'].font = Font(name="Arial", size=12, color="FFFFFF",bold=True) - worksheet['A1'].alignment = Alignment(horizontal="center",vertical="center") - worksheet['A1'].fill = PatternFill(start_color=azul_claro, end_color=azul_claro,fill_type = "solid") - - worksheet.merge_cells('A3:H3') - worksheet['A3'] = "='Receita x Despesa'!A3:J3" - worksheet['A3'].font = Font(name="Arial", size=12, color="000000") - worksheet['A3'].alignment = Alignment(horizontal="left",vertical="center") - - worksheet.merge_cells('A4:H4') - worksheet['A4'] = "='Receita x Despesa'!A4:J4" - worksheet['A4'].font = Font(name="Arial", size=12, color="000000") - worksheet['A4'].alignment = Alignment(horizontal="left",vertical="center") - - worksheet.merge_cells('A5:H5') - worksheet['A5'] = "='Receita x Despesa'!A5:J5" - worksheet['A5'].font = Font(name="Arial", size=12, color="000000") - worksheet['A5'].alignment = Alignment(horizontal="left",vertical="center") - - worksheet.merge_cells('A6:H6') - worksheet['A6'] = "='Receita x Despesa'!A6:J6" - worksheet['A6'].font = Font(name="Arial", size=12, color="000000") - worksheet['A6'].alignment = Alignment(horizontal="left",vertical="center") - - worksheet.merge_cells('A7:H7') - worksheet['A7'] = "='Receita x Despesa'!A7:J7" - worksheet['A7'].font = Font(name="Arial", size=12, color="000000") - worksheet['A7'].alignment = Alignment(horizontal="left",vertical="center") - - worksheet.merge_cells('A9:H9') - worksheet['A9'] = 'RF Ref DI Plus Ágil - CNP JRF REF DI PLUS ÁGIL' - worksheet['A9'].font = Font(name="Arial", size=12, color="FFFFFF",bold=True) - worksheet['A9'].alignment = Alignment(horizontal="center",vertical="center") - worksheet['A9'].fill = PatternFill(start_color=azul_claro, end_color=azul_claro,fill_type = "solid") - - - - - #stylecinza - start_row = 11 - for rows in worksheet.iter_rows(min_row=start_row, max_row=13, min_col=1, max_col=8): - for cell in rows: - if cell.row % 2: - cell.fill = PatternFill(start_color=cinza_escuro, end_color=cinza_escuro, - fill_type = "solid") - cell.font = Font(name="Arial", size=12, color="000000",bold=True) - cell.alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - - - row_number = 11 - values = ["Período","Saldo Anterior","Valor Aplicado no período",'Valor Resgatado no Período','Rendimento Bruto','Imposto de Renda / IOF','Rendimento Líquido','Saldo'] - coluna = 1 - for a,b in enumerate(values): - worksheet.cell(row=row_number, column=coluna, value=b) - - coluna = coluna + 1 - - for i in range(1,9): - worksheet.merge_cells(start_row=11,end_row=13,start_column=i,end_column=i) - #BARRAS DE DADOS - start_row = 14 - for rows in worksheet.iter_rows(min_row=start_row, max_row=size, min_col=1, max_col=8): - for cell in rows: - if cell.row % 2: - cell.fill = PatternFill(start_color=cinza_escuro, end_color=cinza_escuro, - fill_type = "solid") - cell.font = Font(name="Arial", size=12, color="000000") - cell.alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - #MASCARA VERMELHO - for rows in worksheet.iter_rows(min_row=start_row, max_row=size-1, min_col=6, max_col=6): - for cell in rows: - cell.font = Font(name="Arial", size=12, color="f90000") - #MASCARANEGRITO - for rows in worksheet.iter_rows(min_row=start_row, max_row=size-1, min_col=1, max_col=1): - for cell in rows: - cell.font = Font(name="Arial", size=12, color="000000",bold=True) - #MASCARA AZUL - for rows in worksheet.iter_rows(min_row=start_row, max_row=size-1, min_col=7, max_col=7): - for cell in rows: - cell.font = Font(name="Arial", size=12, color="141fca",bold=True) - - - #barra de totais - # FORMULATOTAL - #C - formula = f"=SUM(C14:C{size-1})" - celula = f'C{size}' - worksheet[celula] = formula - worksheet[celula].fill = PatternFill(start_color=cinza_escuro, end_color=cinza_escuro,fill_type = "solid") - worksheet[celula].font = Font(name="Arial", size=12, color="000000",bold=True) - #D - formula = f"=SUM(D14:D{size-1})" - celula = f'D{size}' - worksheet[celula] = formula - worksheet[celula].fill = PatternFill(start_color=cinza_escuro, end_color=cinza_escuro,fill_type = "solid") - worksheet[celula].font = Font(name="Arial", size=12, color="000000",bold=True) - #E - formula = f"=SUM(E14:E{size-1})" - celula = f'E{size}' - worksheet[celula] = formula - worksheet[celula].fill = PatternFill(start_color=cinza_escuro, end_color=cinza_escuro,fill_type = "solid") - worksheet[celula].font = Font(name="Arial", size=12, color="000000",bold=True) - #F - formula = f"=SUM(F14:F{size-1})" - celula = f'F{size}' - worksheet[celula] = formula - worksheet[celula].fill = PatternFill(start_color=cinza_escuro, end_color=cinza_escuro,fill_type = "solid") - worksheet[celula].font = Font(name="Arial", size=12, color="000000",bold=True) - #G - formula = f"=SUM(G14:G{size-1})" - celula = f'G{size}' - worksheet[celula] = formula - worksheet[celula].fill = PatternFill(start_color=cinza_escuro, end_color=cinza_escuro,fill_type = "solid") - worksheet[celula].font = Font(name="Arial", size=12, color="000000",bold=True) - #H - formula = f"=SUM(H14:H{size-1})" - celula = f'H{size}' - worksheet[celula] = formula - worksheet[celula].fill = PatternFill(start_color=cinza_escuro, end_color=cinza_escuro,fill_type = "solid") - worksheet[celula].font = Font(name="Arial", size=12, color="000000",bold=True) - - #Total - celula_total = F'A{size}' - worksheet[celula_total] = f'TOTAL' - worksheet[celula_total].fill = PatternFill(start_color=cinza_escuro, end_color=cinza_escuro,fill_type = "solid") - worksheet[celula_total].font = Font(name="Arial", size=12, color="000000",bold=True) - - #brasilia - brasilia_row = size + 2 - brasilia_formula = f"='Receita x Despesa'!A42:F42" - brasilia_merge_cells = f'A{brasilia_row}:F{brasilia_row}' - worksheet.merge_cells(brasilia_merge_cells) - top_left_brasilia_cell_formula = f'A{brasilia_row}' - top_left_brasilia_cell = worksheet[top_left_brasilia_cell_formula] - top_left_brasilia_cell.value = brasilia_formula - top_left_brasilia_cell.alignment = Alignment(horizontal="center",vertical="center") - - # #DiretorFinanceiro - diretor_row = size + 6 - diretor_cargo_row = size + 7 - diretor_cpf_row = size + 8 - diretor_nome_formula = f"='Receita x Despesa'!A45" - diretor_cargo_formula = f"='Receita x Despesa'!A46" - diretor_cpf_formula = f"='Receita x Despesa'!A47" - diretor_merge_cells = f'A{diretor_row}:C{diretor_row}' - diretor_cargo_merge_cells = f'A{diretor_cargo_row}:C{diretor_cargo_row}' - diretor_cpf_merge_cells = f'A{diretor_cpf_row}:C{diretor_cpf_row}' - worksheet.merge_cells(diretor_merge_cells) - worksheet.merge_cells(diretor_cargo_merge_cells) - worksheet.merge_cells(diretor_cpf_merge_cells) - top_left_diretor_cell_formula = f'A{diretor_row}' - top_left_diretor_cell_cargo_formula = f'A{diretor_cargo_row}' - top_left_diretor_cell_cpf_formula = f'A{diretor_cpf_row}' - top_left_diretor_cell = worksheet[top_left_diretor_cell_formula] - top_left_diretor_cell_cargo_formula = worksheet[top_left_diretor_cell_cargo_formula] - top_left_diretor_cell_cpf_formula = worksheet[top_left_diretor_cell_cpf_formula] - top_left_diretor_cell.value = diretor_nome_formula - top_left_diretor_cell_cargo_formula.value = diretor_cargo_formula - top_left_diretor_cell_cpf_formula.value = diretor_cpf_formula - top_left_diretor_cell.alignment = Alignment(horizontal="center",vertical="center") - top_left_diretor_cell.font = Font(bold=True) - top_left_diretor_cell_cargo_formula.alignment = Alignment(horizontal="center",vertical="center") - top_left_diretor_cell_cpf_formula.alignment = Alignment(horizontal="center",vertical="center") - #Coordenadora - coordenadora_row = size + 6 - coordenadora_cargo_row = size + 7 - coordenadora_cpf_row = size + 8 - coordenadora_nome_formula = f"='Receita x Despesa'!H45" - coordenadora_cargo_formula = f"='Receita x Despesa'!H46" - coordenadora_cpf_formula = f"='Receita x Despesa'!H47" - coordenadora_merge_cells = f'E{coordenadora_row}:G{coordenadora_row}' - coordenadora_cargo_merge_cells = f'E{coordenadora_cargo_row}:G{coordenadora_cargo_row}' - coordenadora_cpf_merge_cells = f'E{coordenadora_cpf_row}:G{coordenadora_cpf_row}' - worksheet.merge_cells(coordenadora_merge_cells) - worksheet.merge_cells(coordenadora_cargo_merge_cells) - worksheet.merge_cells(coordenadora_cpf_merge_cells) - top_left_coordenadora_cell_formula = f'E{coordenadora_row}' - top_left_coordenadora_cell_cargo_formula = f'E{coordenadora_cargo_row}' - top_left_coordenadora_cell_cpf_formula = f'E{coordenadora_cpf_row}' - top_left_coordenadora_cell = worksheet[top_left_coordenadora_cell_formula] - top_left_coordenadora_cell_cargo_formula = worksheet[top_left_coordenadora_cell_cargo_formula] - top_left_coordenadora_cell_cpf_formula = worksheet[top_left_coordenadora_cell_cpf_formula] - top_left_coordenadora_cell.value = coordenadora_nome_formula - top_left_coordenadora_cell_cargo_formula.value = coordenadora_cargo_formula - top_left_coordenadora_cell_cpf_formula.value = coordenadora_cpf_formula - top_left_coordenadora_cell.alignment = Alignment(horizontal="center",vertical="center") - top_left_coordenadora_cell.font= Font(bold = True) - top_left_coordenadora_cell_cargo_formula.alignment = Alignment(horizontal="center",vertical="center") - top_left_coordenadora_cell_cpf_formula.alignment = Alignment(horizontal="center",vertical="center") - - - for row in worksheet.iter_rows(min_row=coordenadora_cpf_row+1, max_row=coordenadora_cpf_row+1,min_col=1,max_col=8): - for cell in row: - if cell.column == 4: - cell.border = Border(top=Side(border_style="none") ,left = Side(border_style="none") ,right =Side(border_style="medium") ,bottom=Side(border_style="medium") ) - else: - cell.border = Border(top=Side(border_style="none") ,left = Side(border_style="none") ,right =Side(border_style="none") ,bottom=Side(border_style="medium") ) - - - workbook.save(tabela) - workbook.close() - -def estiloRelacaoBens(tabela,tamanho,nomeVariavel,nomeTabela): - nomeVariavel = f'material' - caminho = pegar_caminho(tabela) - workbook = openpyxl.load_workbook(caminho) - worksheet = workbook[nomeTabela] - size = tamanho + 1 - cinza = "d9d9d9" - cinza_escuro = "bfbfbf" - azul = "336394" - azul_claro = '1c8cbc' - - borda = Border(right=Side(border_style="medium")) - worksheet.sheet_view.showGridLines = False - # - for row in worksheet.iter_rows(min_row=1, max_row=size+11,min_col=10,max_col=10): - for cell in row: - cell.border = borda - - - worksheet.column_dimensions['a'].width = 25 - worksheet.column_dimensions['b'].width = 25 - worksheet.column_dimensions['c'].width = 35 - worksheet.column_dimensions['d'].width = 35#descrição - worksheet.column_dimensions['e'].width = 40 #n do recibo ou qeuivalente - worksheet.column_dimensions['f'].width = 25 #data de emissão - worksheet.column_dimensions['g'].width = 25 #data de emissão - worksheet.column_dimensions['h'].width = 25 #data de emissão - worksheet.column_dimensions['i'].width = 25 #data de emissão - worksheet.column_dimensions['j'].width = 25 #data de emissão - - - #cabecario relação de pagamentos - outro servicoes de terceiros - worksheet.merge_cells('A1:J2') - worksheet['A1'] = f'RELAÇÃO DE BENS' - worksheet['A1'].font = Font(name="Arial", size=12, color="FFFFFF",bold=True) - worksheet['A1'].alignment = Alignment(horizontal="center",vertical="center") - worksheet['A1'].fill = PatternFill(start_color=azul_claro, end_color=azul_claro,fill_type = "solid") - - worksheet.merge_cells('A3:J4') - worksheet['A3'] = f'(ADQUIRIDOS, PRODUZIDOS OU CONSTRUÍDOS COM RECURSOS)' - worksheet['A3'].font = Font(name="Arial", size=12, color="FFFFFF",bold=True) - worksheet['A3'].alignment = Alignment(horizontal="center",vertical="center") - worksheet['A3'].fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") - - worksheet.merge_cells('A5:F5') - worksheet['A5'] = "='Receita x Despesa'!A3:J3" - worksheet['A5'].font = Font(name="Arial", size=12, color="000000") - worksheet['A5'].alignment = Alignment(horizontal="left",vertical="center") - - worksheet.merge_cells('A6:F6') - worksheet['A6'] = "='Receita x Despesa'!A4:J4" - worksheet['A6'].font = Font(name="Arial", size=12, color="000000") - worksheet['A6'].alignment = Alignment(horizontal="left",vertical="center") - - worksheet.merge_cells('A7:F7') - worksheet['A7'] = "='Receita x Despesa'!A5:J5" - worksheet['A7'].font = Font(name="Arial", size=12, color="000000") - worksheet['A7'].alignment = Alignment(horizontal="left",vertical="center") - - worksheet.merge_cells('A8:F8') - worksheet['A8'] = "='Receita x Despesa'!A6:J6" - worksheet['A8'].font = Font(name="Arial", size=12, color="000000") - worksheet['A8'].alignment = Alignment(horizontal="left",vertical="center") - - worksheet.merge_cells('A9:F9') - worksheet['A9'] = "='Receita x Despesa'!A7:J7" - worksheet['A9'].font = Font(name="Arial", size=12, color="000000") - worksheet['A9'].alignment = Alignment(horizontal="left",vertical="center") - - #variavel - - input2=f'rowStyle{nomeVariavel}' - - borda = Border( - left=Side(border_style='thin', color='FFFFFF'), - right=Side(border_style='thin', color='FFFFFF'), - top=Side(border_style='thin', color='FFFFFF'), - bottom=Side(border_style='thin', color='FFFFFF') -) - borda2 = Border( - left=Side(border_style='hair', color='000000'), - right=Side(border_style='hair', color='000000'), - top=Side(border_style='hair', color='000000'), - bottom=Side(border_style='hair', color='000000') -) - - #colunas azul cabecario - locals()[input2] = NamedStyle(name=f'{input2}') - locals()[input2].font = Font(name="Arial", size=12, color="FFFFFF",bold=True) - locals()[input2].fill = openpyxl.styles.PatternFill(start_color=azul_claro, end_color=azul_claro, fill_type='solid') - locals()[input2].alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - locals()[input2].border = Border(top=Side(border_style="medium") ,bottom=Side(border_style="thin") ) - locals()[input2].height = 20 - linha_number = 11 - for row in worksheet.iter_rows(min_row=linha_number, max_row=linha_number, min_col=1, max_col=10): - for cell in row: - cell.style = locals()[input2] - if cell.column == 10: - cell.border = Border(left=Side(border_style="thin", color='FFFFFF') ,bottom=Side(border_style="thin", color='FFFFFF'), right=Side(border_style="medium") ) - - - cell.border = borda - -##CABECARIO - - worksheet["A11"].fill = openpyxl.styles.PatternFill(start_color=azul_claro, end_color=azul_claro, fill_type='solid') - worksheet.merge_cells("A11:A12") - worksheet["A11"] ="Nº DO ITEM" - - - worksheet["B11"].fill = openpyxl.styles.PatternFill(start_color=azul_claro, end_color=azul_claro, fill_type='solid') - worksheet.merge_cells("B11:B12") - worksheet["B11"] = "DESCRIÇÃO DO BEM" - - worksheet["C11"].fill = openpyxl.styles.PatternFill(start_color=azul_claro, end_color=azul_claro, fill_type='solid') - worksheet.merge_cells("C11:C12") - worksheet["C11"] = "NÚMERO PATRIMONIAL DO BEM" - - worksheet["D11"].fill = openpyxl.styles.PatternFill(start_color=azul_claro, end_color=azul_claro, fill_type='solid') - worksheet.merge_cells("D11:E11") - worksheet["D11"] = "DOCUMENTAÇÃO FISCAL" - - worksheet["D12"].fill = openpyxl.styles.PatternFill(start_color=cinza, end_color=cinza, fill_type='solid') - worksheet["D12"] = "DATA" - worksheet["D12"].border = borda2 - - worksheet["E12"].fill = openpyxl.styles.PatternFill(start_color=cinza, end_color=cinza, fill_type='solid') - worksheet["E12"] = "Nº " - worksheet["E12"].border = borda2 - - worksheet["F11"].fill = openpyxl.styles.PatternFill(start_color=azul_claro, end_color=azul_claro, fill_type='solid') - worksheet.merge_cells("F11:F12") - worksheet["F11"] = "LOCALIZAÇÃO" - - worksheet["G11"].fill = openpyxl.styles.PatternFill(start_color=azul_claro, end_color=azul_claro, fill_type='solid') - worksheet.merge_cells("G11:G12") - worksheet["G11"] = "QTD." - - worksheet["H11"].fill = openpyxl.styles.PatternFill(start_color=azul_claro, end_color=azul_claro, fill_type='solid') - worksheet.merge_cells("H11:I11") - worksheet["H11"] = "VALOR (R$)" - - worksheet["H12"].fill = openpyxl.styles.PatternFill(start_color=cinza, end_color=cinza, fill_type='solid') - worksheet["H12"] = "Unitário" - worksheet["H12"].border = borda2 - worksheet["I12"].fill = openpyxl.styles.PatternFill(start_color=cinza, end_color=cinza, fill_type='solid') - worksheet["I12"] = "Total" - worksheet["I12"].border = borda2 - - #Aumentar a altura das celulas - for row in worksheet.iter_rows(min_row=10, max_row=size, min_col=1, max_col=10): - worksheet.row_dimensions[row[0].row].height = 35 - input3 = f'customNumber{nomeVariavel}' - - # MASCARA R$ - - locals()[input3] = NamedStyle(name=f'{input3}') - locals()[input3].number_format = 'R$ #,##0.00' - locals()[input3].font = Font(name="Arial", size=12, color="000000") - locals()[input3].alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - - #estilocinzasimcinzanao - value_to_stop = size - start_row = 10 -# - for row in range(start_row,size+1): - cell = worksheet[f'J{row}'] - cell.style = locals()[input3] - - for rows in worksheet.iter_rows(min_row=13, max_row=size, min_col=1, max_col=10): - for cell in rows: - if cell.row % 2: - cell.fill = PatternFill(start_color=cinza, end_color=cinza, - fill_type = "solid") - if cell.column == 10: - cell.font = Font(name="Arial", size=12, color="000000") - cell.alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - cell.border = Border(top=Side(border_style="hair") ,left = Side(border_style="hair") ,right =Side(border_style="medium") ,bottom=Side(border_style="hair") ) - else: - cell.font = Font(name="Arial", size=12, color="000000") - cell.alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - cell.border = Border(top=Side(border_style="hair") ,left = Side(border_style="hair") ,right =Side(border_style="hair") ,bottom=Side(border_style="hair") ) - - - #subtotal - stringAfinarCelula =size+2 - worksheet.row_dimensions[size+2].height = 6 - celulas_mergidas_subtotal = f"A{size+2}:I{size+2}" - worksheet.merge_cells(celulas_mergidas_subtotal) - left_celula_cell = f"A{size+2}" - top_left_cell = worksheet[left_celula_cell] - top_left_cell.value = "TOTAL" - top_left_cell.fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") - top_left_cell.font = Font(name="Arial", size=12, color="000000",bold=True) - top_left_cell.alignment = Alignment(horizontal="center",vertical="center") - top_left_cell.border = Border(top=Side(border_style="thin") ,left = Side(border_style="medium") ,right =Side(border_style="thin") ,bottom=Side(border_style="medium") ) - - worksheet.row_dimensions[size+2].height = 56.25 - - # FORMULATOTAL - formula = f"=SUM(J10:J{size})" - celula = f'J{size+2}' - worksheet[celula] = formula - worksheet[celula].fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") - worksheet[celula].font = Font(name="Arial", size=12, color="000000",bold=True) - worksheet[celula].border = Border(top=Side(border_style="thin") ,left = Side(border_style="thin") ,right =Side(border_style="medium") ,bottom=Side(border_style="medium") ) - worksheet[celula].number_format = 'R$ #,##0.00' - - - #brasilia - brasilia_row = size + 7 - brasilia_formula = f"='Receita x Despesa'!A42:J42" - brasilia_merge_cells = f'A{brasilia_row}:I{brasilia_row}' - worksheet.merge_cells(brasilia_merge_cells) - top_left_brasilia_cell_formula = f'A{brasilia_row}' - top_left_brasilia_cell = worksheet[top_left_brasilia_cell_formula] - top_left_brasilia_cell.value = brasilia_formula - top_left_brasilia_cell.alignment = Alignment(horizontal="center",vertical="center") - - #DiretorFinanceiro - diretor_row = size + 8 - diretor_cargo_row = size + 9 - diretor_cpf_row = size + 10 - diretor_nome_formula = f"='Receita x Despesa'!A45" - diretor_cargo_formula = f"='Receita x Despesa'!A46" - diretor_cpf_formula = f"='Receita x Despesa'!A47" - diretor_merge_cells = f'A{diretor_row}:D{diretor_row}' - diretor_cargo_merge_cells = f'A{diretor_cargo_row}:D{diretor_cargo_row}' - diretor_cpf_merge_cells = f'A{diretor_cpf_row}:D{diretor_cpf_row}' - worksheet.merge_cells(diretor_merge_cells) - worksheet.merge_cells(diretor_cargo_merge_cells) - worksheet.merge_cells(diretor_cpf_merge_cells) - top_left_diretor_cell_formula = f'A{diretor_row}' - top_left_diretor_cell_cargo_formula = f'A{diretor_cargo_row}' - top_left_diretor_cell_cpf_formula = f'A{diretor_cpf_row}' - top_left_diretor_cell = worksheet[top_left_diretor_cell_formula] - top_left_diretor_cell_cargo_formula = worksheet[top_left_diretor_cell_cargo_formula] - top_left_diretor_cell_cpf_formula = worksheet[top_left_diretor_cell_cpf_formula] - top_left_diretor_cell.value = diretor_nome_formula - top_left_diretor_cell_cargo_formula.value = diretor_cargo_formula - top_left_diretor_cell_cpf_formula.value = diretor_cpf_formula - top_left_diretor_cell.alignment = Alignment(horizontal="center",vertical="center") - top_left_diretor_cell.font = Font(bold=True) - top_left_diretor_cell_cargo_formula.alignment = Alignment(horizontal="center",vertical="center") - top_left_diretor_cell_cpf_formula.alignment = Alignment(horizontal="center",vertical="center") - #Coordenadora - coordenadora_row = size + 8 - coordenadora_cargo_row = size + 9 - coordenadora_cpf_row = size + 10 - coordenadora_nome_formula = f"='Receita x Despesa'!H45" - coordenadora_cargo_formula = f"='Receita x Despesa'!H46" - coordenadora_cpf_formula = f"='Receita x Despesa'!H47" - coordenadora_merge_cells = f'F{coordenadora_row}:J{coordenadora_row}' - coordenadora_cargo_merge_cells = f'F{coordenadora_cargo_row}:J{coordenadora_cargo_row}' - coordenadora_cpf_merge_cells = f'F{coordenadora_cpf_row}:J{coordenadora_cpf_row}' - worksheet.merge_cells(coordenadora_merge_cells) - worksheet.merge_cells(coordenadora_cargo_merge_cells) - worksheet.merge_cells(coordenadora_cpf_merge_cells) - top_left_coordenadora_cell_formula = f'F{coordenadora_row}' - top_left_coordenadora_cell_cargo_formula = f'F{coordenadora_cargo_row}' - top_left_coordenadora_cell_cpf_formula = f'F{coordenadora_cpf_row}' - top_left_coordenadora_cell = worksheet[top_left_coordenadora_cell_formula] - top_left_coordenadora_cell_cargo_formula = worksheet[top_left_coordenadora_cell_cargo_formula] - top_left_coordenadora_cell_cpf_formula = worksheet[top_left_coordenadora_cell_cpf_formula] - top_left_coordenadora_cell.value = coordenadora_nome_formula - top_left_coordenadora_cell_cargo_formula.value = coordenadora_cargo_formula - top_left_coordenadora_cell_cpf_formula.value = coordenadora_cpf_formula - top_left_coordenadora_cell.alignment = Alignment(horizontal="center",vertical="center") - top_left_coordenadora_cell.font= Font(bold = True) - top_left_coordenadora_cell_cargo_formula.alignment = Alignment(horizontal="center",vertical="center") - top_left_coordenadora_cell_cpf_formula.alignment = Alignment(horizontal="center",vertical="center") - - - # borda = Border(right=Side(border_style="medium")) - # worksheet.sheet_view.showGridLines = False - # # - # for row in worksheet.iter_rows(min_row=1, max_row=coordenadora_cpf_row+1,min_col=10,max_col=10): - # for cell in row: - # cell.border = borda - - - - for row in worksheet.iter_rows(min_row=coordenadora_cpf_row+1, max_row=coordenadora_cpf_row+1,min_col=1,max_col=10): - for cell in row: - if cell.column == 10: - cell.border = Border(top=Side(border_style="none") ,left = Side(border_style="none") ,right =Side(border_style="medium") ,bottom=Side(border_style="medium") ) - else: - cell.border = Border(top=Side(border_style="none") ,left = Side(border_style="none") ,right =Side(border_style="none") ,bottom=Side(border_style="medium") ) - - worksheet["J11"].fill = openpyxl.styles.PatternFill(start_color=azul_claro, end_color=azul_claro, fill_type='solid') - worksheet.merge_cells("J11:J12") - worksheet["J11"] = "RESPONSÁVEL PELA GUARDA DO BEM" - worksheet["J11"].border = Border(left=Side(border_style="thin", color='FFFFFF') ,bottom=Side(border_style="thin", color='FFFFFF'), right=Side(border_style="medium") ) - worksheet["J11"].font = Font(name="Arial", size=12, color="FFFFFF",bold=True) - worksheet["J10"].border = Border(right =Side(border_style="medium")) - worksheet.row_dimensions[10].height = 2 - - - workbook.save(tabela) - workbook.close() - -def estilo_demonstrativoDeReceita(tabela,tamanho): - caminho = pegar_caminho(tabela) - workbook = openpyxl.load_workbook(caminho) - worksheet = workbook['Demonstrativo de Receita'] - size = tamanho + 10 - cinza = "d9d9d9" - cinza_escuro = "bfbfbf" - azul = "336394" - azul_claro = '1c8cbc' - - borda = Border(right=Side(border_style="medium")) - worksheet.sheet_view.showGridLines = False - # - for row in worksheet.iter_rows(min_row=1, max_row=size+11,min_col=4,max_col=4): - for cell in row: - cell.border = borda - - - worksheet.column_dimensions['a'].width = 35 - worksheet.column_dimensions['b'].width = 35 - worksheet.column_dimensions['c'].width = 35 - worksheet.column_dimensions['d'].width = 35#descrição - - - #cabecario relação de pagamentos - outro servicoes de terceiros - worksheet.merge_cells('A1:D2') - worksheet['A1'] = f'D E M O N S T R A T I V O D E R E C E I T A' - worksheet['A1'].font = Font(name="Arial", size=12, color="FFFFFF",bold=True) - worksheet['A1'].alignment = Alignment(horizontal="center",vertical="center") - worksheet['A1'].fill = PatternFill(start_color=azul_claro, end_color=azul_claro,fill_type = "solid") - - worksheet.merge_cells('A3:D3') - worksheet['A3'] = "='Receita x Despesa'!A3:J3" - worksheet['A3'].font = Font(name="Arial", size=12, color="000000") - worksheet['A3'].alignment = Alignment(horizontal="left",vertical="center") - - worksheet.merge_cells('A4:D4') - worksheet['A4'] = "='Receita x Despesa'!A4:J4" - worksheet['A4'].font = Font(name="Arial", size=12, color="000000") - worksheet['A4'].alignment = Alignment(horizontal="left",vertical="center") - - worksheet.merge_cells('A5:D5') - worksheet['A5'] = "='Receita x Despesa'!A5:J5" - worksheet['A5'].font = Font(name="Arial", size=12, color="000000") - worksheet['A5'].alignment = Alignment(horizontal="left",vertical="center") - - worksheet.merge_cells('A6:D6') - worksheet['A6'] = "='Receita x Despesa'!A6:J6" - worksheet['A6'].font = Font(name="Arial", size=12, color="000000") - worksheet['A6'].alignment = Alignment(horizontal="left",vertical="center") - - worksheet.merge_cells('A7:D7') - worksheet['A7'] = "='Receita x Despesa'!A7:J7" - worksheet['A7'].font = Font(name="Arial", size=12, color="000000") - worksheet['A7'].alignment = Alignment(horizontal="left",vertical="center") - - #colunas azul cabecario - row_style_demonstrativo = NamedStyle(name='row_style_demonstrativo') - row_style_demonstrativo.font = Font(name="Arial", size=12, color="FFFFFF",bold=True) - row_style_demonstrativo.fill = openpyxl.styles.PatternFill(start_color=azul_claro, end_color=azul_claro, fill_type='solid') - row_style_demonstrativo.alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - row_style_demonstrativo.border = Border(top=Side(border_style="medium") ,bottom=Side(border_style="thin") ) - row_style_demonstrativo.height = 20 - linha_number = 9 - for row in worksheet.iter_rows(min_row=linha_number, max_row=linha_number, min_col=1, max_col=4): - for cell in row: - cell.style = row_style_demonstrativo - if cell.column == 4: - cell.border = Border(top=Side(border_style="medium") ,bottom=Side(border_style="thin"), right=Side(border_style="medium") ) - - valores = ["Data de Entrada","Cod.BB_Histórico","Documento",'Valor'] - col = 1 - for a,b in enumerate(valores): - worksheet.cell(row=linha_number, column=col, value=b) - col = col + 1 - - - #Aumentar a altura das celulas - for row in worksheet.iter_rows(min_row=10, max_row=size, min_col=1, max_col=4): - worksheet.row_dimensions[row[0].row].height = 35 - - custom_number_format_demonstrativo = [] - # MASCARA R$ - if custom_number_format_demonstrativo!= False: - custom_number_format_demonstrativo = NamedStyle(name='custom_number_format_demonstrativo') - custom_number_format_demonstrativo.number_format = 'R$ #,##0.00' - custom_number_format_demonstrativo.font = Font(name="Arial", size=12, color="000000") - custom_number_format_demonstrativo.alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - - #estilocinzasimcinzanao - value_to_stop = size - start_row = 10 -# - for row in range(start_row,size+1): - cell = worksheet[f'D{row}'] - cell.style = custom_number_format_demonstrativo - - for rows in worksheet.iter_rows(min_row=10, max_row=size, min_col=1, max_col=4): - for cell in rows: - if cell.row % 2: - cell.fill = PatternFill(start_color=cinza, end_color=cinza, - fill_type = "solid") - if cell.column == 4: - cell.font = Font(name="Arial", size=12, color="000000") - cell.alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - cell.border = Border(top=Side(border_style="hair") ,left = Side(border_style="hair") ,right =Side(border_style="medium") ,bottom=Side(border_style="hair") ) - else: - cell.font = Font(name="Arial", size=12, color="000000") - cell.alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - cell.border = Border(top=Side(border_style="hair") ,left = Side(border_style="hair") ,right =Side(border_style="hair") ,bottom=Side(border_style="hair") ) - - - #subtotal - stringAfinarCelula =size+2 - worksheet.row_dimensions[size+2].height = 6 - celulas_mergidas_subtotal = f"A{size+2}:C{size+2}" - worksheet.merge_cells(celulas_mergidas_subtotal) - left_celula_cell = f"A{size+2}" - top_left_cell = worksheet[left_celula_cell] - top_left_cell.value = "Sub Total1" - top_left_cell.fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") - top_left_cell.font = Font(name="Arial", size=12, color="000000",bold=True) - top_left_cell.alignment = Alignment(horizontal="center",vertical="center") - top_left_cell.border = Border(top=Side(border_style="thin") ,left = Side(border_style="medium") ,right =Side(border_style="thin") ,bottom=Side(border_style="medium") ) - - worksheet.row_dimensions[size+2].height = 56.25 - - # FORMULATOTAL - formula = f"=SUM(D10:D{size})" - celula = f'D{size+2}' - worksheet[celula] = formula - worksheet[celula].fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") - worksheet[celula].font = Font(name="Arial", size=12, color="000000",bold=True) - worksheet[celula].border = Border(top=Side(border_style="thin") ,left = Side(border_style="thin") ,right =Side(border_style="medium") ,bottom=Side(border_style="medium") ) - worksheet[celula].number_format = 'R$ #,##0.00' - #restituições creditadas - restituicoes = size + 3 - celula_restituicoes=f'A{restituicoes}' - worksheet[celula_restituicoes].value = "Estorno de Mensalidades" - worksheet[celula_restituicoes].font = Font(name="Arial", size=12, color="000000",bold=True) - worksheet.row_dimensions[restituicoes].height = 30 - - #estilo colunas restitucoes creditadas - row_style_demonstrativo_append = NamedStyle(name='row_style_demonstrativo_append') - row_style_demonstrativo_append.font = Font(name="Arial", size=12, color="FFFFFF",bold=True) - row_style_demonstrativo_append.fill = openpyxl.styles.PatternFill(start_color=azul_claro, end_color=azul_claro, fill_type='solid') - row_style_demonstrativo_append.alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - row_style_demonstrativo_append.height = 30 - row_style_demonstrativo_append.border = Border(top=Side(border_style="medium") ,bottom=Side(border_style="medium") ) - - - row_number = size + 4 - - for column in range(1, 5): - cell = worksheet.cell(row=row_number, column=column) - cell.style = row_style_demonstrativo_append - if cell.column == 4: - cell.border = Border(top=Side(border_style="medium") ,right =Side(border_style="medium") ,bottom=Side(border_style="medium") ) - - - - values = ["Data de Entrada","Cod.BB_Histórico","Documento",'Valor'] - coluna = 1 - for a,b in enumerate(values): - worksheet.cell(row=row_number, column=coluna, value=b) - if coluna == 4: - coluna = coluna + 1 - coluna = coluna + 1 - - - - - - #subtotal2 - sub_total2_row = size + 5 - subtotal_merge_cells= f'A{sub_total2_row}:C{sub_total2_row}' - worksheet.merge_cells(subtotal_merge_cells) - top_left_subtotal2_cell_formula = f'A{sub_total2_row}' - top_left_subtotal2_cell = worksheet[top_left_subtotal2_cell_formula] - top_left_subtotal2_cell.value = "Sub Total 2" - top_left_subtotal2_cell.fill = PatternFill(start_color=cinza_escuro, end_color=cinza_escuro,fill_type = "solid") - top_left_subtotal2_cell.font = Font(name="Arial", size=12, color="000000",bold=True) - top_left_subtotal2_cell.alignment = Alignment(horizontal="center",vertical="center") - top_left_subtotal2_cell.border = Border(top=Side(border_style="hair") ,left = Side(border_style="medium") ,right =Side(border_style="hair") ,bottom=Side(border_style="medium") ) - - sub_formula_row_celula = f'D{sub_total2_row}' - worksheet[sub_formula_row_celula].fill = PatternFill(start_color=cinza_escuro, end_color=cinza_escuro,fill_type = "solid") - worksheet[sub_formula_row_celula].font = Font(name="Arial", size=12, color="000000",bold=True) - worksheet[sub_formula_row_celula].number_format = 'R$ #,##0.00' - worksheet[sub_formula_row_celula].border = Border(top=Side(border_style="thin") ,left = Side(border_style="thin") ,right =Side(border_style="medium") ,bottom=Side(border_style="medium") ) - - #total1-2 - total12_row = size + 6 - total12_merge_cells = f'A{total12_row}:C{total12_row}' - worksheet.merge_cells(total12_merge_cells) - top_left_total12_cell_formula = f'A{total12_row}' - top_left_total12_cell = worksheet[top_left_total12_cell_formula] - top_left_total12_cell.value = "Total(1-2)" - top_left_total12_cell.fill = PatternFill(start_color=azul_claro, end_color=azul_claro,fill_type = "solid") - top_left_total12_cell.font = Font(name="Arial", size=12, color="000000",bold=True) - top_left_total12_cell.alignment = Alignment(horizontal="center",vertical="center") - top_left_total12_cell.border = Border(top=Side(border_style="medium") ,left = Side(border_style="medium") ,bottom=Side(border_style="medium") ) - - - #total_formula - total_formula_row = size + 6 - total_formulaa = f'=D{size}' - total_formula_row_celula = f'D{total_formula_row}' - worksheet[total_formula_row_celula].fill = PatternFill(start_color=azul_claro, end_color=azul_claro,fill_type = "solid") - worksheet[total_formula_row_celula].font = Font(name="Arial", size=12, color="000000",bold=True) - worksheet[total_formula_row_celula].number_format = 'R$ #,##0.00' - worksheet[total_formula_row_celula].border = Border(top=Side(border_style="medium") ,bottom=Side(border_style="medium"),right=Side(border_style="medium") ) - worksheet.row_dimensions[total_formula_row].height = 30 - worksheet[total_formula_row_celula] = total_formulaa - - - #brasilia - brasilia_row = size + 7 - brasilia_formula = f"='Receita x Despesa'!A42:D42" - brasilia_merge_cells = f'A{brasilia_row}:D{brasilia_row}' - worksheet.merge_cells(brasilia_merge_cells) - top_left_brasilia_cell_formula = f'A{brasilia_row}' - top_left_brasilia_cell = worksheet[top_left_brasilia_cell_formula] - top_left_brasilia_cell.value = brasilia_formula - top_left_brasilia_cell.alignment = Alignment(horizontal="center",vertical="center") - - #DiretorFinanceiro - diretor_row = size + 8 - diretor_cargo_row = size + 9 - diretor_cpf_row = size + 10 - diretor_nome_formula = f"='Receita x Despesa'!A45" - diretor_cargo_formula = f"='Receita x Despesa'!A46" - diretor_cpf_formula = f"='Receita x Despesa'!A47" - diretor_merge_cells = f'A{diretor_row}:B{diretor_row}' - diretor_cargo_merge_cells = f'A{diretor_cargo_row}:B{diretor_cargo_row}' - diretor_cpf_merge_cells = f'A{diretor_cpf_row}:B{diretor_cpf_row}' - worksheet.merge_cells(diretor_merge_cells) - worksheet.merge_cells(diretor_cargo_merge_cells) - worksheet.merge_cells(diretor_cpf_merge_cells) - top_left_diretor_cell_formula = f'A{diretor_row}' - top_left_diretor_cell_cargo_formula = f'A{diretor_cargo_row}' - top_left_diretor_cell_cpf_formula = f'A{diretor_cpf_row}' - top_left_diretor_cell = worksheet[top_left_diretor_cell_formula] - top_left_diretor_cell_cargo_formula = worksheet[top_left_diretor_cell_cargo_formula] - top_left_diretor_cell_cpf_formula = worksheet[top_left_diretor_cell_cpf_formula] - top_left_diretor_cell.value = diretor_nome_formula - top_left_diretor_cell_cargo_formula.value = diretor_cargo_formula - top_left_diretor_cell_cpf_formula.value = diretor_cpf_formula - top_left_diretor_cell.alignment = Alignment(horizontal="center",vertical="center") - top_left_diretor_cell.font = Font(bold=True) - top_left_diretor_cell_cargo_formula.alignment = Alignment(horizontal="center",vertical="center") - top_left_diretor_cell_cpf_formula.alignment = Alignment(horizontal="center",vertical="center") - #Coordenadora - coordenadora_row = size + 8 - coordenadora_cargo_row = size + 9 - coordenadora_cpf_row = size + 10 - coordenadora_nome_formula = f"='Receita x Despesa'!H45" - coordenadora_cargo_formula = f"='Receita x Despesa'!H46" - coordenadora_cpf_formula = f"='Receita x Despesa'!H47" - coordenadora_merge_cells = f'C{coordenadora_row}:D{coordenadora_row}' - coordenadora_cargo_merge_cells = f'C{coordenadora_cargo_row}:D{coordenadora_cargo_row}' - coordenadora_cpf_merge_cells = f'C{coordenadora_cpf_row}:D{coordenadora_cpf_row}' - worksheet.merge_cells(coordenadora_merge_cells) - worksheet.merge_cells(coordenadora_cargo_merge_cells) - worksheet.merge_cells(coordenadora_cpf_merge_cells) - top_left_coordenadora_cell_formula = f'C{coordenadora_row}' - top_left_coordenadora_cell_cargo_formula = f'C{coordenadora_cargo_row}' - top_left_coordenadora_cell_cpf_formula = f'C{coordenadora_cpf_row}' - top_left_coordenadora_cell = worksheet[top_left_coordenadora_cell_formula] - top_left_coordenadora_cell_cargo_formula = worksheet[top_left_coordenadora_cell_cargo_formula] - top_left_coordenadora_cell_cpf_formula = worksheet[top_left_coordenadora_cell_cpf_formula] - top_left_coordenadora_cell.value = coordenadora_nome_formula - top_left_coordenadora_cell_cargo_formula.value = coordenadora_cargo_formula - top_left_coordenadora_cell_cpf_formula.value = coordenadora_cpf_formula - top_left_coordenadora_cell.alignment = Alignment(horizontal="center",vertical="center") - top_left_coordenadora_cell.font= Font(bold = True) - top_left_coordenadora_cell_cargo_formula.alignment = Alignment(horizontal="center",vertical="center") - top_left_coordenadora_cell_cpf_formula.alignment = Alignment(horizontal="center",vertical="center") - - - # borda = Border(right=Side(border_style="medium")) - # worksheet.sheet_view.showGridLines = False - # # - # for row in worksheet.iter_rows(min_row=1, max_row=coordenadora_cpf_row+1,min_col=10,max_col=4): - # for cell in row: - # cell.border = borda - - - - for row in worksheet.iter_rows(min_row=coordenadora_cpf_row+1, max_row=coordenadora_cpf_row+1,min_col=1,max_col=4): - for cell in row: - if cell.column == 8: - cell.border = Border(top=Side(border_style="none") ,left = Side(border_style="none") ,right =Side(border_style="medium") ,bottom=Side(border_style="medium") ) - else: - cell.border = Border(top=Side(border_style="none") ,left = Side(border_style="none") ,right =Side(border_style="none") ,bottom=Side(border_style="medium") ) - - workbook.save(tabela) - workbook.close() - -# def estilo_fub_fisica(tabela,tamanho): - -# # caminho = pegar_caminho(tabela) -# workbook = openpyxl.load_workbook(tabela) -# worksheet = workbook['Pessoa Fisica'] - - -# size = tamanho + 10 -# #worksheet.row_dimensions[27].height = 50 - -# cinza = "979CA8" -# azul = "336394" - - - -# for row in worksheet.iter_rows(min_row=10, max_row=size, min_col=1, max_col=10): -# worksheet.row_dimensions[row[0].row].height = 35 - -# custom_number_format_fisica = [] -# # MASCARA R$ -# if custom_number_format_fisica!= False: -# custom_number_format_fisica = NamedStyle(name='custom_number_format_fisica') -# custom_number_format_fisica.number_format = 'R$ #,##0.00' -# custom_number_format_fisica.font = Font(name="Arial", size=12, color="000000") -# custom_number_format_fisica.alignment = Alignment(horizontal="general",vertical="bottom",wrap_text=True) - -# #stylecinza - - -# value_to_stop = size -# start_row = 10 - -# for row in range(start_row,size+1): -# cell = worksheet[f'J{row}'] -# cell.style = custom_number_format_fisica - -# for rows in worksheet.iter_rows(min_row=10, max_row=size, min_col=1, max_col=10): -# for cell in rows: -# if cell.row % 2: -# cell.fill = PatternFill(start_color=cinza, end_color=cinza, -# fill_type = "solid") -# cell.font = Font(name="Arial", size=12, color="000000") -# cell.alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) -# cell.border = Border(top=Side(border_style="hair") ,left = Side(border_style="hair") ,right =Side(border_style="hair") ,bottom=Side(border_style="hair") ) - - - - - -# #subtotal -# celulas_mergidas_subtotal = f"A{size}:I{size}" -# worksheet.merge_cells(celulas_mergidas_subtotal) -# left_celula_cell = f"A{size}" -# top_left_cell = worksheet[left_celula_cell] -# top_left_cell.value = "Sub Total" -# top_left_cell.fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") -# top_left_cell.font = Font(name="Arial", size=12, color="000000",bold=True) -# top_left_cell.alignment = Alignment(horizontal="center",vertical="center") - - - - -# # FORMULATOTAL -# formula = f"=SUM(J10:J{size-1})" -# celula = f'J{size}' -# worksheet[celula] = formula -# worksheet[celula].fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") -# worksheet[celula].font = Font(name="Arial", size=12, color="000000",bold=True) - - -# #restituições creditadas -# restituicoes = size + 1 -# celula_restituicoes=f'A{restituicoes}' -# worksheet[celula_restituicoes].value = "RESTITUIÇÕES CREDITADAS" -# worksheet[celula_restituicoes].font = Font(name="Arial", size=12, color="000000",bold=True) -# worksheet.row_dimensions[restituicoes].height = 30 - - -# #colunas azul -# row_style_fisica = NamedStyle(name='row_style_fisica') -# row_style_fisica.font = Font(name="Arial", size=12, color="FFFFFF",bold=True) -# row_style_fisica.fill = openpyxl.styles.PatternFill(start_color=azul, end_color=azul, fill_type='solid') -# row_style_fisica.alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) -# row_style_fisica.height = 30 - -# row_number = size + 2 - -# for column in range(1, 11): -# cell = worksheet.cell(row=row_number, column=column) -# cell.style = row_style_fisica - - -# values = ["Item","Restituidor","CNPJ/CPF",'Descrição',"Cheque equivalente","Data do Cheque",'Nº do Depósito','Data da Devolução','Valor'] -# coluna = 1 -# for a,b in enumerate(values): -# worksheet.cell(row=row_number, column=coluna, value=b) -# if coluna == 4: -# coluna = coluna + 1 -# coluna = coluna + 1 - - -# merge_formula = f'D{row_number}:E{row_number}' -# worksheet.merge_cells(merge_formula) - -# #subtotal2 -# sub_total2_row = size + 4 -# subtotal_merge_cells= f'A{sub_total2_row}:I{sub_total2_row}' -# worksheet.merge_cells(subtotal_merge_cells) -# top_left_subtotal2_cell_formula = f'A{sub_total2_row}' -# top_left_subtotal2_cell = worksheet[top_left_subtotal2_cell_formula] -# top_left_subtotal2_cell.value = "Sub Total 2" -# top_left_subtotal2_cell.fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") -# top_left_subtotal2_cell.font = Font(name="Arial", size=12, color="000000",bold=True) -# top_left_subtotal2_cell.alignment = Alignment(horizontal="center",vertical="center") -# sub_formula_row_celula = f'J{sub_total2_row}' -# worksheet[sub_formula_row_celula].fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") -# worksheet[sub_formula_row_celula].font = Font(name="Arial", size=12, color="000000",bold=True) - -# #subtotal12_Formula -# # sub_formula_row = size + 4 -# # sub_formula = f'=SOMA(J{sub_formula_row}:J{sub_formula_row})' -# # sub_formula_row_celula = f'J{sub_formula_row}' -# # worksheet[sub_formula_row_celula].fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") -# # worksheet[sub_formula_row_celula] = sub_formula - - -# #total1-2 -# total12_row = size + 5 -# total12_merge_cells = f'A{total12_row}:I{total12_row}' -# worksheet.merge_cells(total12_merge_cells) -# top_left_total12_cell_formula = f'A{total12_row}' -# top_left_total12_cell = worksheet[top_left_total12_cell_formula] -# top_left_total12_cell.value = "Total(1 -2)" -# top_left_total12_cell.fill = PatternFill(start_color=azul, end_color=azul,fill_type = "solid") -# top_left_total12_cell.font = Font(name="Arial", size=12, color="000000",bold=True) -# top_left_total12_cell.alignment = Alignment(horizontal="center",vertical="center") - -# #total_formula -# total_formula_row = size + 5 -# total_formulaa = f'=J{size}' -# total_formula_row_celula = f'J{total_formula_row}' -# worksheet[total_formula_row_celula].fill = PatternFill(start_color=azul, end_color=azul,fill_type = "solid") -# worksheet[total_formula_row_celula].font = Font(name="Arial", size=12, color="000000",bold=True) -# worksheet[total_formula_row_celula].number_format = 'R$ #,##0.00' -# worksheet.row_dimensions[total_formula_row].height = 30 -# worksheet[total_formula_row_celula] = total_formulaa - -# #brasilia -# brasilia_row = size + 7 -# brasilia_formula = f"='Receita x Despesa'!A42:J42" -# brasilia_merge_cells = f'A{brasilia_row}:I{brasilia_row}' -# worksheet.merge_cells(brasilia_merge_cells) -# top_left_brasilia_cell_formula = f'A{brasilia_row}' -# top_left_brasilia_cell = worksheet[top_left_brasilia_cell_formula] -# top_left_brasilia_cell.value = brasilia_formula -# top_left_brasilia_cell.alignment = Alignment(horizontal="center",vertical="center") - -# #DiretorFinanceiro -# diretor_row = size + 8 -# diretor_cargo_row = size + 9 -# diretor_cpf_row = size + 10 -# diretor_nome_formula = f"='Receita x Despesa'!A45" -# diretor_cargo_formula = f"='Receita x Despesa'!A46" -# diretor_cpf_formula = f"='Receita x Despesa'!A47" -# diretor_merge_cells = f'A{diretor_row}:D{diretor_row}' -# diretor_cargo_merge_cells = f'A{diretor_cargo_row}:D{diretor_cargo_row}' -# diretor_cpf_merge_cells = f'A{diretor_cpf_row}:D{diretor_cpf_row}' -# worksheet.merge_cells(diretor_merge_cells) -# worksheet.merge_cells(diretor_cargo_merge_cells) -# worksheet.merge_cells(diretor_cpf_merge_cells) -# top_left_diretor_cell_formula = f'A{diretor_row}' -# top_left_diretor_cell_cargo_formula = f'A{diretor_cargo_row}' -# top_left_diretor_cell_cpf_formula = f'A{diretor_cpf_row}' -# top_left_diretor_cell = worksheet[top_left_diretor_cell_formula] -# top_left_diretor_cell_cargo_formula = worksheet[top_left_diretor_cell_cargo_formula] -# top_left_diretor_cell_cpf_formula = worksheet[top_left_diretor_cell_cpf_formula] -# top_left_diretor_cell.value = diretor_nome_formula -# top_left_diretor_cell_cargo_formula.value = diretor_cargo_formula -# top_left_diretor_cell_cpf_formula.value = diretor_cpf_formula -# top_left_diretor_cell.alignment = Alignment(horizontal="center",vertical="center") -# top_left_diretor_cell.font = Font(bold=True) -# top_left_diretor_cell_cargo_formula.alignment = Alignment(horizontal="center",vertical="center") -# top_left_diretor_cell_cpf_formula.alignment = Alignment(horizontal="center",vertical="center") -# #Coordenadora -# coordenadora_row = size + 8 -# coordenadora_cargo_row = size + 9 -# coordenadora_cpf_row = size + 10 -# coordenadora_nome_formula = f"='Receita x Despesa'!H45" -# coordenadora_cargo_formula = f"='Receita x Despesa'!H46" -# coordenadora_cpf_formula = f"='Receita x Despesa'!H47" -# coordenadora_merge_cells = f'F{coordenadora_row}:J{coordenadora_row}' -# coordenadora_cargo_merge_cells = f'F{coordenadora_cargo_row}:J{coordenadora_cargo_row}' -# coordenadora_cpf_merge_cells = f'F{coordenadora_cpf_row}:J{coordenadora_cpf_row}' -# worksheet.merge_cells(coordenadora_merge_cells) -# worksheet.merge_cells(coordenadora_cargo_merge_cells) -# worksheet.merge_cells(coordenadora_cpf_merge_cells) -# top_left_coordenadora_cell_formula = f'F{coordenadora_row}' -# top_left_coordenadora_cell_cargo_formula = f'F{coordenadora_cargo_row}' -# top_left_coordenadora_cell_cpf_formula = f'F{coordenadora_cpf_row}' -# top_left_coordenadora_cell = worksheet[top_left_coordenadora_cell_formula] -# top_left_coordenadora_cell_cargo_formula = worksheet[top_left_coordenadora_cell_cargo_formula] -# top_left_coordenadora_cell_cpf_formula = worksheet[top_left_coordenadora_cell_cpf_formula] -# top_left_coordenadora_cell.value = coordenadora_nome_formula -# top_left_coordenadora_cell_cargo_formula.value = coordenadora_cargo_formula -# top_left_coordenadora_cell_cpf_formula.value = coordenadora_cpf_formula -# top_left_coordenadora_cell.alignment = Alignment(horizontal="center",vertical="center") -# top_left_coordenadora_cell.font= Font(bold = True) -# top_left_coordenadora_cell_cargo_formula.alignment = Alignment(horizontal="center",vertical="center") -# top_left_coordenadora_cell_cpf_formula.alignment = Alignment(horizontal="center",vertical="center") - -# #nome dos indices - -# azul_claro = '1c89b8' -# row_style_fisica_cabecario = NamedStyle(name='row_style_fisica_cabecario') -# row_style_fisica_cabecario.font = Font(name="Arial", size=12, color="FFFFFF",bold=True) -# row_style_fisica_cabecario.fill = openpyxl.styles.PatternFill(start_color=azul_claro, end_color=azul_claro, fill_type='solid') -# row_style_fisica_cabecario.alignment = Alignment(horizontal="center",vertical="center",wrap_text = True) -# worksheet.row_dimensions[9].height = 50 -# worksheet.column_dimensions['b'].width = 35 -# worksheet.column_dimensions['c'].width = 20 -# worksheet.column_dimensions['d'].width = 35 -# worksheet.column_dimensions['e'].width = 60 -# worksheet.column_dimensions['f'].width = 35 -# worksheet.column_dimensions['g'].width = 30 -# worksheet.column_dimensions['h'].width = 30 -# worksheet.column_dimensions['i'].width = 30 -# worksheet.column_dimensions['j'].width = 30 -# worksheet.column_dimensions['e'].height = 20 - - -# linha_number = 9 -# # Apply the style to each cell in the row -# for cell in worksheet[linha_number]: -# cell.style = row_style_fisica_cabecario - -# valores = ["ITEM","NOME","CNPJ/CPF",'ESPECIFICAÇÃO DA DESPESA','DESCRIÇÃO',"Nº DO RECIBO OU EQUIVALENTE","DATA DE EMISSÃO",'CHEQUE / ORDEM BANCÁRIA','DATA DE PGTO','Valor'] -# col = 1 -# for a,b in enumerate(valores): -# worksheet.cell(row=linha_number, column=col, value=b) -# col = col + 1 - - -# #cabecario relação de pagamentos - outro servicoes de terceiros -# worksheet.merge_cells('A1:J2') -# worksheet['A1'] = f'R E L A Ç Ã O D E P A G A M E N T O S - O U T R O S S E R V I Ç O S T E R C E I R O S - P E S S O A F Í S I C A ' -# worksheet['A1'].font = Font(name="Arial", size=12, color="FFFFFF",bold=True) -# worksheet['A1'].alignment = Alignment(horizontal="center",vertical="center") -# worksheet['A1'].fill = PatternFill(start_color=azul_claro, end_color=azul_claro,fill_type = "solid") -# worksheet.merge_cells('A3:I3') -# worksheet['A3'] = "='Receita x Despesa'!A3:J3" -# worksheet['A3'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A3'].alignment = Alignment(horizontal="left",vertical="center") - -# worksheet.merge_cells('A4:I4') -# worksheet['A4'] = "='Receita x Despesa'!A4:J4" -# worksheet['A4'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A4'].alignment = Alignment(horizontal="left",vertical="center") - -# worksheet.merge_cells('A5:I5') -# worksheet['A5'] = "='Receita x Despesa'!A5:J5" -# worksheet['A5'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A5'].alignment = Alignment(horizontal="left",vertical="center") - -# worksheet.merge_cells('A6:I6') -# worksheet['A6'] = "='Receita x Despesa'!A6:J6" -# worksheet['A6'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A6'].alignment = Alignment(horizontal="left",vertical="center") - -# worksheet.merge_cells('A7:I7') -# worksheet['A7'] = "='Receita x Despesa'!A7:J7" -# worksheet['A7'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A7'].alignment = Alignment(horizontal="left",vertical="center") - -# altura = 45 -# linha_inicio = 9 -# for row_number in range(linha_inicio, linha_inicio + tamanho+1): -# worksheet.row_dimensions[row_number].height = altura - -# workbook.save('output.xlsx') -# workbook.close() - -# def estilo_fub_juridica(tabela,tamanho): - -# caminho = pegar_caminho(tabela) -# workbook = openpyxl.load_workbook(caminho) -# worksheet = workbook['Pessoa Fisica'] - - -# size = tamanho + 10 -# #worksheet.row_dimensions[27].height = 50 - -# cinza = "979CA8" -# azul = "336394" - - - -# for row in worksheet.iter_rows(min_row=10, max_row=size, min_col=1, max_col=10): -# worksheet.row_dimensions[row[0].row].height = 35 - -# custom_number_format_juridica = [] -# # MASCARA R$ -# if custom_number_format_juridica!= False: -# custom_number_format_juridica = NamedStyle(name='custom_number_format_juridica') -# custom_number_format_juridica.number_format = 'R$ #,##0.00' -# custom_number_format_juridica.font = Font(name="Arial", size=12, color="000000") -# custom_number_format_juridica.alignment = Alignment(horizontal="general",vertical="bottom",wrap_text=True) - -# #stylecinza - - -# value_to_stop = size -# start_row = 10 -# # -# for row in range(start_row,size+1): -# cell = worksheet[f'J{row}'] -# cell.style = custom_number_format_juridica - -# for rows in worksheet.iter_rows(min_row=10, max_row=size, min_col=1, max_col=10): -# for cell in rows: -# if cell.row % 2: -# cell.fill = PatternFill(start_color=cinza, end_color=cinza, -# fill_type = "solid") -# cell.font = Font(name="Arial", size=12, color="000000") -# cell.alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) -# cell.border = Border(top=Side(border_style="hair") ,left = Side(border_style="hair") ,right =Side(border_style="hair") ,bottom=Side(border_style="hair") ) - - - - - -# #subtotal -# celulas_mergidas_subtotal = f"A{size}:I{size}" -# worksheet.merge_cells(celulas_mergidas_subtotal) -# left_celula_cell = f"A{size}" -# top_left_cell = worksheet[left_celula_cell] -# top_left_cell.value = "Sub Total" -# top_left_cell.fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") -# top_left_cell.font = Font(name="Arial", size=12, color="000000",bold=True) -# top_left_cell.alignment = Alignment(horizontal="center",vertical="center") - - - - -# # FORMULATOTAL -# formula = f"=SUM(J10:J{size-1})" -# celula = f'J{size}' -# worksheet[celula] = formula -# worksheet[celula].fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") -# worksheet[celula].font = Font(name="Arial", size=12, color="000000",bold=True) - - -# #restituições creditadas -# restituicoes = size + 1 -# celula_restituicoes=f'A{restituicoes}' -# worksheet[celula_restituicoes].value = "RESTITUIÇÕES CREDITADAS" -# worksheet[celula_restituicoes].font = Font(name="Arial", size=12, color="000000",bold=True) -# worksheet.row_dimensions[restituicoes].height = 30 - - -# #colunas azul -# row_style_juridica = NamedStyle(name='row_style_juridica') -# row_style_juridica.font = Font(name="Arial", size=12, color="FFFFFF",bold=True) -# row_style_juridica.fill = openpyxl.styles.PatternFill(start_color=azul, end_color=azul, fill_type='solid') -# row_style_juridica.alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) -# row_style_juridica.height = 30 - -# row_number = size + 2 - -# for column in range(1, 11): -# cell = worksheet.cell(row=row_number, column=column) -# cell.style = row_style_juridica - - -# values = ["Item","Restituidor","CNPJ/CPF",'Descrição',"Cheque equivalente","Data do Cheque",'Nº do Depósito','Data da Devolução','Valor'] -# coluna = 1 -# for a,b in enumerate(values): -# worksheet.cell(row=row_number, column=coluna, value=b) -# if coluna == 4: -# coluna = coluna + 1 -# coluna = coluna + 1 - - -# merge_formula = f'D{row_number}:E{row_number}' -# worksheet.merge_cells(merge_formula) - -# #subtotal2 -# sub_total2_row = size + 4 -# subtotal_merge_cells= f'A{sub_total2_row}:I{sub_total2_row}' -# worksheet.merge_cells(subtotal_merge_cells) -# top_left_subtotal2_cell_formula = f'A{sub_total2_row}' -# top_left_subtotal2_cell = worksheet[top_left_subtotal2_cell_formula] -# top_left_subtotal2_cell.value = "Sub Total 2" -# top_left_subtotal2_cell.fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") -# top_left_subtotal2_cell.font = Font(name="Arial", size=12, color="000000",bold=True) -# top_left_subtotal2_cell.alignment = Alignment(horizontal="center",vertical="center") -# sub_formula_row_celula = f'J{sub_total2_row}' -# worksheet[sub_formula_row_celula].fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") -# worksheet[sub_formula_row_celula].font = Font(name="Arial", size=12, color="000000",bold=True) - -# #subtotal12_Formula -# # sub_formula_row = size + 4 -# # sub_formula = f'=SOMA(J{sub_formula_row}:J{sub_formula_row})' -# # sub_formula_row_celula = f'J{sub_formula_row}' -# # worksheet[sub_formula_row_celula].fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") -# # worksheet[sub_formula_row_celula] = sub_formula - - -# #total1-2 -# total12_row = size + 5 -# total12_merge_cells = f'A{total12_row}:I{total12_row}' -# worksheet.merge_cells(total12_merge_cells) -# top_left_total12_cell_formula = f'A{total12_row}' -# top_left_total12_cell = worksheet[top_left_total12_cell_formula] -# top_left_total12_cell.value = "Total(1 -2)" -# top_left_total12_cell.fill = PatternFill(start_color=azul, end_color=azul,fill_type = "solid") -# top_left_total12_cell.font = Font(name="Arial", size=12, color="000000",bold=True) -# top_left_total12_cell.alignment = Alignment(horizontal="center",vertical="center") - -# #total_formula -# total_formula_row = size + 5 -# total_formulaa = f'=J{size}' -# total_formula_row_celula = f'J{total_formula_row}' -# worksheet[total_formula_row_celula].fill = PatternFill(start_color=azul, end_color=azul,fill_type = "solid") -# worksheet[total_formula_row_celula].font = Font(name="Arial", size=12, color="000000",bold=True) -# worksheet[total_formula_row_celula].number_format = 'R$ #,##0.00' -# worksheet.row_dimensions[total_formula_row].height = 30 -# worksheet[total_formula_row_celula] = total_formulaa - -# #brasilia -# brasilia_row = size + 7 -# brasilia_formula = f"='Receita x Despesa'!A42:J42" -# brasilia_merge_cells = f'A{brasilia_row}:I{brasilia_row}' -# worksheet.merge_cells(brasilia_merge_cells) -# top_left_brasilia_cell_formula = f'A{brasilia_row}' -# top_left_brasilia_cell = worksheet[top_left_brasilia_cell_formula] -# top_left_brasilia_cell.value = brasilia_formula -# top_left_brasilia_cell.alignment = Alignment(horizontal="center",vertical="center") - -# #DiretorFinanceiro -# diretor_row = size + 8 -# diretor_cargo_row = size + 9 -# diretor_cpf_row = size + 10 -# diretor_nome_formula = f"='Receita x Despesa'!A45" -# diretor_cargo_formula = f"='Receita x Despesa'!A46" -# diretor_cpf_formula = f"='Receita x Despesa'!A47" -# diretor_merge_cells = f'A{diretor_row}:D{diretor_row}' -# diretor_cargo_merge_cells = f'A{diretor_cargo_row}:D{diretor_cargo_row}' -# diretor_cpf_merge_cells = f'A{diretor_cpf_row}:D{diretor_cpf_row}' -# worksheet.merge_cells(diretor_merge_cells) -# worksheet.merge_cells(diretor_cargo_merge_cells) -# worksheet.merge_cells(diretor_cpf_merge_cells) -# top_left_diretor_cell_formula = f'A{diretor_row}' -# top_left_diretor_cell_cargo_formula = f'A{diretor_cargo_row}' -# top_left_diretor_cell_cpf_formula = f'A{diretor_cpf_row}' -# top_left_diretor_cell = worksheet[top_left_diretor_cell_formula] -# top_left_diretor_cell_cargo_formula = worksheet[top_left_diretor_cell_cargo_formula] -# top_left_diretor_cell_cpf_formula = worksheet[top_left_diretor_cell_cpf_formula] -# top_left_diretor_cell.value = diretor_nome_formula -# top_left_diretor_cell_cargo_formula.value = diretor_cargo_formula -# top_left_diretor_cell_cpf_formula.value = diretor_cpf_formula -# top_left_diretor_cell.alignment = Alignment(horizontal="center",vertical="center") -# top_left_diretor_cell.font = Font(bold=True) -# top_left_diretor_cell_cargo_formula.alignment = Alignment(horizontal="center",vertical="center") -# top_left_diretor_cell_cpf_formula.alignment = Alignment(horizontal="center",vertical="center") -# #Coordenadora -# coordenadora_row = size + 8 -# coordenadora_cargo_row = size + 9 -# coordenadora_cpf_row = size + 10 -# coordenadora_nome_formula = f"='Receita x Despesa'!H45" -# coordenadora_cargo_formula = f"='Receita x Despesa'!H46" -# coordenadora_cpf_formula = f"='Receita x Despesa'!H47" -# coordenadora_merge_cells = f'F{coordenadora_row}:J{coordenadora_row}' -# coordenadora_cargo_merge_cells = f'F{coordenadora_cargo_row}:J{coordenadora_cargo_row}' -# coordenadora_cpf_merge_cells = f'F{coordenadora_cpf_row}:J{coordenadora_cpf_row}' -# worksheet.merge_cells(coordenadora_merge_cells) -# worksheet.merge_cells(coordenadora_cargo_merge_cells) -# worksheet.merge_cells(coordenadora_cpf_merge_cells) -# top_left_coordenadora_cell_formula = f'F{coordenadora_row}' -# top_left_coordenadora_cell_cargo_formula = f'F{coordenadora_cargo_row}' -# top_left_coordenadora_cell_cpf_formula = f'F{coordenadora_cpf_row}' -# top_left_coordenadora_cell = worksheet[top_left_coordenadora_cell_formula] -# top_left_coordenadora_cell_cargo_formula = worksheet[top_left_coordenadora_cell_cargo_formula] -# top_left_coordenadora_cell_cpf_formula = worksheet[top_left_coordenadora_cell_cpf_formula] -# top_left_coordenadora_cell.value = coordenadora_nome_formula -# top_left_coordenadora_cell_cargo_formula.value = coordenadora_cargo_formula -# top_left_coordenadora_cell_cpf_formula.value = coordenadora_cpf_formula -# top_left_coordenadora_cell.alignment = Alignment(horizontal="center",vertical="center") -# top_left_coordenadora_cell.font= Font(bold = True) -# top_left_coordenadora_cell_cargo_formula.alignment = Alignment(horizontal="center",vertical="center") -# top_left_coordenadora_cell_cpf_formula.alignment = Alignment(horizontal="center",vertical="center") - -# #nome dos indices - -# azul_claro = '1c89b8' -# row_style_cabecario_juridica = NamedStyle(name='row_style_cabecario_juridica') -# row_style_cabecario_juridica.font = Font(name="Arial", size=12, color="FFFFFF",bold=True) -# row_style_cabecario_juridica.fill = openpyxl.styles.PatternFill(start_color=azul_claro, end_color=azul_claro, fill_type='solid') -# row_style_cabecario_juridica.alignment = Alignment(horizontal="center",vertical="center",wrap_text = True) -# worksheet.row_dimensions[9].height = 50 -# worksheet.column_dimensions['b'].width = 35 -# worksheet.column_dimensions['c'].width = 20 -# worksheet.column_dimensions['d'].width = 35 -# worksheet.column_dimensions['e'].width = 60 -# worksheet.column_dimensions['f'].width = 35 -# worksheet.column_dimensions['g'].width = 30 -# worksheet.column_dimensions['h'].width = 30 -# worksheet.column_dimensions['i'].width = 30 -# worksheet.column_dimensions['j'].width = 30 -# worksheet.column_dimensions['e'].height = 20 - - -# linha_number = 9 -# # Apply the style to each cell in the row -# for cell in worksheet[linha_number]: -# cell.style = row_style_cabecario_juridica - -# valores = ["ITEM","NOME","CNPJ/CPF",'ESPECIFICAÇÃO DA DESPESA','DESCRIÇÃO',"Nº DO RECIBO OU EQUIVALENTE","DATA DE EMISSÃO",'CHEQUE / ORDEM BANCÁRIA','DATA DE PGTO','Valor'] -# col = 1 -# for a,b in enumerate(valores): -# worksheet.cell(row=linha_number, column=col, value=b) -# col = col + 1 - - -# #cabecario relação de pagamentos - outro servicoes de terceiros -# worksheet.merge_cells('A1:J2') -# worksheet['A1'] = f'R E L A Ç Ã O D E P A G A M E N T O S - O U T R O S S E R V I Ç O S T E R C E I R O S - P E S S O A F Í S I C A ' -# worksheet['A1'].font = Font(name="Arial", size=12, color="FFFFFF",bold=True) -# worksheet['A1'].alignment = Alignment(horizontal="center",vertical="center") -# worksheet['A1'].fill = PatternFill(start_color=azul_claro, end_color=azul_claro,fill_type = "solid") -# worksheet.merge_cells('A3:I3') -# worksheet['A3'] = "='Receita x Despesa'!A3:J3" -# worksheet['A3'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A3'].alignment = Alignment(horizontal="left",vertical="center") - -# worksheet.merge_cells('A4:I4') -# worksheet['A4'] = "='Receita x Despesa'!A4:J4" -# worksheet['A4'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A4'].alignment = Alignment(horizontal="left",vertical="center") - -# worksheet.merge_cells('A5:I5') -# worksheet['A5'] = "='Receita x Despesa'!A5:J5" -# worksheet['A5'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A5'].alignment = Alignment(horizontal="left",vertical="center") - -# worksheet.merge_cells('A6:I6') -# worksheet['A6'] = "='Receita x Despesa'!A6:J6" -# worksheet['A6'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A6'].alignment = Alignment(horizontal="left",vertical="center") - -# worksheet.merge_cells('A7:I7') -# worksheet['A7'] = "='Receita x Despesa'!A7:J7" -# worksheet['A7'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A7'].alignment = Alignment(horizontal="left",vertical="center") - -# altura = 45 -# linha_inicio = 9 -# for row_number in range(linha_inicio, linha_inicio + tamanho+1): -# worksheet.row_dimensions[row_number].height = altura - - -# # Save the workbook to a file -# workbook.save(tabela) -# workbook.close() - -# def estilo_fub_juridica_juridica(tabela,tamanho): - -# caminho = pegar_caminho(tabela) -# workbook = openpyxl.load_workbook(caminho) -# worksheet = workbook['Pessoa Jurídica'] - - -# size = tamanho + 10 -# #worksheet.row_dimensions[27].height = 50 - -# cinza = "979CA8" -# azul = "336394" - - - -# for row in worksheet.iter_rows(min_row=10, max_row=size, min_col=1, max_col=10): -# worksheet.row_dimensions[row[0].row].height = 35 - -# custom_number_formatjuridica_juridica = [] -# # MASCARA R$ -# if custom_number_formatjuridica_juridica!= False: -# custom_number_formatjuridica_juridica = NamedStyle(name='custom_number_formatjuridica_juridica') -# custom_number_formatjuridica_juridica.number_format = 'R$ #,##0.00' -# custom_number_formatjuridica_juridica.font = Font(name="Arial", size=12, color="000000") -# custom_number_formatjuridica_juridica.alignment = Alignment(horizontal="general",vertical="bottom",wrap_text=True) - -# #stylecinza - - -# value_to_stop = size -# start_row = 10 -# # -# for row in range(start_row,size+1): -# cell = worksheet[f'J{row}'] -# cell.style = custom_number_formatjuridica_juridica - -# for rows in worksheet.iter_rows(min_row=10, max_row=size, min_col=1, max_col=10): -# for cell in rows: -# if cell.row % 2: -# cell.fill = PatternFill(start_color=cinza, end_color=cinza, -# fill_type = "solid") -# cell.font = Font(name="Arial", size=12, color="000000") -# cell.alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) -# cell.border = Border(top=Side(border_style="hair") ,left = Side(border_style="hair") ,right =Side(border_style="hair") ,bottom=Side(border_style="hair") ) - - - - - -# #subtotal -# celulas_mergidas_subtotal = f"A{size}:I{size}" -# worksheet.merge_cells(celulas_mergidas_subtotal) -# left_celula_cell = f"A{size}" -# top_left_cell = worksheet[left_celula_cell] -# top_left_cell.value = "Sub Total" -# top_left_cell.fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") -# top_left_cell.font = Font(name="Arial", size=12, color="000000",bold=True) -# top_left_cell.alignment = Alignment(horizontal="center",vertical="center") - - - - -# # FORMULATOTAL -# formula = f"=SUM(J10:J{size-1})" -# celula = f'J{size}' -# worksheet[celula] = formula -# worksheet[celula].fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") -# worksheet[celula].font = Font(name="Arial", size=12, color="000000",bold=True) - - -# #restituições creditadas -# restituicoes = size + 1 -# celula_restituicoes=f'A{restituicoes}' -# worksheet[celula_restituicoes].value = "RESTITUIÇÕES CREDITADAS" -# worksheet[celula_restituicoes].font = Font(name="Arial", size=12, color="000000",bold=True) -# worksheet.row_dimensions[restituicoes].height = 30 - - -# #colunas azul -# row_stylejuridica_juridica = NamedStyle(name='row_stylejuridica_juridica') -# row_stylejuridica_juridica.font = Font(name="Arial", size=12, color="FFFFFF",bold=True) -# row_stylejuridica_juridica.fill = openpyxl.styles.PatternFill(start_color=azul, end_color=azul, fill_type='solid') -# row_stylejuridica_juridica.alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) -# row_stylejuridica_juridica.height = 30 - -# row_number = size + 2 - -# for column in range(1, 11): -# cell = worksheet.cell(row=row_number, column=column) -# cell.style = row_stylejuridica_juridica - - -# values = ["Item","Restituidor","CNPJ/CPF",'Descrição',"Cheque equivalente","Data do Cheque",'Nº do Depósito','Data da Devolução','Valor'] -# coluna = 1 -# for a,b in enumerate(values): -# worksheet.cell(row=row_number, column=coluna, value=b) -# if coluna == 4: -# coluna = coluna + 1 -# coluna = coluna + 1 - - -# merge_formula = f'D{row_number}:E{row_number}' -# worksheet.merge_cells(merge_formula) - -# #subtotal2 -# sub_total2_row = size + 4 -# subtotal_merge_cells= f'A{sub_total2_row}:I{sub_total2_row}' -# worksheet.merge_cells(subtotal_merge_cells) -# top_left_subtotal2_cell_formula = f'A{sub_total2_row}' -# top_left_subtotal2_cell = worksheet[top_left_subtotal2_cell_formula] -# top_left_subtotal2_cell.value = "Sub Total 2" -# top_left_subtotal2_cell.fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") -# top_left_subtotal2_cell.font = Font(name="Arial", size=12, color="000000",bold=True) -# top_left_subtotal2_cell.alignment = Alignment(horizontal="center",vertical="center") -# sub_formula_row_celula = f'J{sub_total2_row}' -# worksheet[sub_formula_row_celula].fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") -# worksheet[sub_formula_row_celula].font = Font(name="Arial", size=12, color="000000",bold=True) - -# #subtotal12_Formula -# # sub_formula_row = size + 4 -# # sub_formula = f'=SOMA(J{sub_formula_row}:J{sub_formula_row})' -# # sub_formula_row_celula = f'J{sub_formula_row}' -# # worksheet[sub_formula_row_celula].fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") -# # worksheet[sub_formula_row_celula] = sub_formula - - -# #total1-2 -# total12_row = size + 5 -# total12_merge_cells = f'A{total12_row}:I{total12_row}' -# worksheet.merge_cells(total12_merge_cells) -# top_left_total12_cell_formula = f'A{total12_row}' -# top_left_total12_cell = worksheet[top_left_total12_cell_formula] -# top_left_total12_cell.value = "Total(1 -2)" -# top_left_total12_cell.fill = PatternFill(start_color=azul, end_color=azul,fill_type = "solid") -# top_left_total12_cell.font = Font(name="Arial", size=12, color="000000",bold=True) -# top_left_total12_cell.alignment = Alignment(horizontal="center",vertical="center") - -# #total_formula -# total_formula_row = size + 5 -# total_formulaa = f'=J{size}' -# total_formula_row_celula = f'J{total_formula_row}' -# worksheet[total_formula_row_celula].fill = PatternFill(start_color=azul, end_color=azul,fill_type = "solid") -# worksheet[total_formula_row_celula].font = Font(name="Arial", size=12, color="000000",bold=True) -# worksheet[total_formula_row_celula].number_format = 'R$ #,##0.00' -# worksheet.row_dimensions[total_formula_row].height = 30 -# worksheet[total_formula_row_celula] = total_formulaa - -# #brasilia -# brasilia_row = size + 7 -# brasilia_formula = f"='Receita x Despesa'!A42:J42" -# brasilia_merge_cells = f'A{brasilia_row}:I{brasilia_row}' -# worksheet.merge_cells(brasilia_merge_cells) -# top_left_brasilia_cell_formula = f'A{brasilia_row}' -# top_left_brasilia_cell = worksheet[top_left_brasilia_cell_formula] -# top_left_brasilia_cell.value = brasilia_formula -# top_left_brasilia_cell.alignment = Alignment(horizontal="center",vertical="center") - -# #DiretorFinanceiro -# diretor_row = size + 8 -# diretor_cargo_row = size + 9 -# diretor_cpf_row = size + 10 -# diretor_nome_formula = f"='Receita x Despesa'!A45" -# diretor_cargo_formula = f"='Receita x Despesa'!A46" -# diretor_cpf_formula = f"='Receita x Despesa'!A47" -# diretor_merge_cells = f'A{diretor_row}:D{diretor_row}' -# diretor_cargo_merge_cells = f'A{diretor_cargo_row}:D{diretor_cargo_row}' -# diretor_cpf_merge_cells = f'A{diretor_cpf_row}:D{diretor_cpf_row}' -# worksheet.merge_cells(diretor_merge_cells) -# worksheet.merge_cells(diretor_cargo_merge_cells) -# worksheet.merge_cells(diretor_cpf_merge_cells) -# top_left_diretor_cell_formula = f'A{diretor_row}' -# top_left_diretor_cell_cargo_formula = f'A{diretor_cargo_row}' -# top_left_diretor_cell_cpf_formula = f'A{diretor_cpf_row}' -# top_left_diretor_cell = worksheet[top_left_diretor_cell_formula] -# top_left_diretor_cell_cargo_formula = worksheet[top_left_diretor_cell_cargo_formula] -# top_left_diretor_cell_cpf_formula = worksheet[top_left_diretor_cell_cpf_formula] -# top_left_diretor_cell.value = diretor_nome_formula -# top_left_diretor_cell_cargo_formula.value = diretor_cargo_formula -# top_left_diretor_cell_cpf_formula.value = diretor_cpf_formula -# top_left_diretor_cell.alignment = Alignment(horizontal="center",vertical="center") -# top_left_diretor_cell.font = Font(bold=True) -# top_left_diretor_cell_cargo_formula.alignment = Alignment(horizontal="center",vertical="center") -# top_left_diretor_cell_cpf_formula.alignment = Alignment(horizontal="center",vertical="center") -# #Coordenadora -# coordenadora_row = size + 8 -# coordenadora_cargo_row = size + 9 -# coordenadora_cpf_row = size + 10 -# coordenadora_nome_formula = f"='Receita x Despesa'!H45" -# coordenadora_cargo_formula = f"='Receita x Despesa'!H46" -# coordenadora_cpf_formula = f"='Receita x Despesa'!H47" -# coordenadora_merge_cells = f'F{coordenadora_row}:J{coordenadora_row}' -# coordenadora_cargo_merge_cells = f'F{coordenadora_cargo_row}:J{coordenadora_cargo_row}' -# coordenadora_cpf_merge_cells = f'F{coordenadora_cpf_row}:J{coordenadora_cpf_row}' -# worksheet.merge_cells(coordenadora_merge_cells) -# worksheet.merge_cells(coordenadora_cargo_merge_cells) -# worksheet.merge_cells(coordenadora_cpf_merge_cells) -# top_left_coordenadora_cell_formula = f'F{coordenadora_row}' -# top_left_coordenadora_cell_cargo_formula = f'F{coordenadora_cargo_row}' -# top_left_coordenadora_cell_cpf_formula = f'F{coordenadora_cpf_row}' -# top_left_coordenadora_cell = worksheet[top_left_coordenadora_cell_formula] -# top_left_coordenadora_cell_cargo_formula = worksheet[top_left_coordenadora_cell_cargo_formula] -# top_left_coordenadora_cell_cpf_formula = worksheet[top_left_coordenadora_cell_cpf_formula] -# top_left_coordenadora_cell.value = coordenadora_nome_formula -# top_left_coordenadora_cell_cargo_formula.value = coordenadora_cargo_formula -# top_left_coordenadora_cell_cpf_formula.value = coordenadora_cpf_formula -# top_left_coordenadora_cell.alignment = Alignment(horizontal="center",vertical="center") -# top_left_coordenadora_cell.font= Font(bold = True) -# top_left_coordenadora_cell_cargo_formula.alignment = Alignment(horizontal="center",vertical="center") -# top_left_coordenadora_cell_cpf_formula.alignment = Alignment(horizontal="center",vertical="center") - -# #nome dos indices - -# azul_claro = '1c89b8' -# row_style_cabecariojuridica_juridica = NamedStyle(name='row_style_cabecariojuridica_juridica') -# row_style_cabecariojuridica_juridica.font = Font(name="Arial", size=12, color="FFFFFF",bold=True) -# row_style_cabecariojuridica_juridica.fill = openpyxl.styles.PatternFill(start_color=azul_claro, end_color=azul_claro, fill_type='solid') -# row_style_cabecariojuridica_juridica.alignment = Alignment(horizontal="center",vertical="center",wrap_text = True) -# worksheet.row_dimensions[9].height = 50 -# worksheet.column_dimensions['b'].width = 35 -# worksheet.column_dimensions['c'].width = 20 -# worksheet.column_dimensions['d'].width = 35 -# worksheet.column_dimensions['e'].width = 60 -# worksheet.column_dimensions['f'].width = 35 -# worksheet.column_dimensions['g'].width = 30 -# worksheet.column_dimensions['h'].width = 30 -# worksheet.column_dimensions['i'].width = 30 -# worksheet.column_dimensions['j'].width = 30 -# worksheet.column_dimensions['e'].height = 20 - - -# linha_number = 9 -# # Apply the style to each cell in the row -# for cell in worksheet[linha_number]: -# cell.style = row_style_cabecariojuridica_juridica - -# valores = ["ITEM","NOME","CNPJ/CPF",'ESPECIFICAÇÃO DA DESPESA','DESCRIÇÃO',"Nº DO RECIBO OU EQUIVALENTE","DATA DE EMISSÃO",'CHEQUE / ORDEM BANCÁRIA','DATA DE PGTO','Valor'] -# col = 1 -# for a,b in enumerate(valores): -# worksheet.cell(row=linha_number, column=col, value=b) -# col = col + 1 - - -# #cabecario relação de pagamentos - outro servicoes de terceiros -# worksheet.merge_cells('A1:J2') -# worksheet['A1'] = f'R E L A Ç Ã O D E P A G A M E N T O S - O U T R O S S E R V I Ç O S D E T E R C E I R O S - P E S S O A J U R Í D I C A ' -# worksheet['A1'].font = Font(name="Arial", size=12, color="FFFFFF",bold=True) -# worksheet['A1'].alignment = Alignment(horizontal="center",vertical="center") -# worksheet['A1'].fill = PatternFill(start_color=azul_claro, end_color=azul_claro,fill_type = "solid") -# worksheet.merge_cells('A3:I3') -# worksheet['A3'] = "='Receita x Despesa'!A3:J3" -# worksheet['A3'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A3'].alignment = Alignment(horizontal="left",vertical="center") - -# worksheet.merge_cells('A4:I4') -# worksheet['A4'] = "='Receita x Despesa'!A4:J4" -# worksheet['A4'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A4'].alignment = Alignment(horizontal="left",vertical="center") - -# worksheet.merge_cells('A5:I5') -# worksheet['A5'] = "='Receita x Despesa'!A5:J5" -# worksheet['A5'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A5'].alignment = Alignment(horizontal="left",vertical="center") - -# worksheet.merge_cells('A6:I6') -# worksheet['A6'] = "='Receita x Despesa'!A6:J6" -# worksheet['A6'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A6'].alignment = Alignment(horizontal="left",vertical="center") - -# worksheet.merge_cells('A7:I7') -# worksheet['A7'] = "='Receita x Despesa'!A7:J7" -# worksheet['A7'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A7'].alignment = Alignment(horizontal="left",vertical="center") - -# altura = 45 -# linha_inicio = 9 -# for row_number in range(linha_inicio, linha_inicio + tamanho+1): -# worksheet.row_dimensions[row_number].height = altura - - -# # Save the workbook to a file -# workbook.save(tabela) -# workbook.close() - -# def estilo_serv_terceiro(tabela,tamanho): - -# caminho = pegar_caminho(tabela) -# workbook = openpyxl.load_workbook(caminho) -# worksheet = workbook['Outros Serviços Terceiros - PF'] - - -# size = tamanho + 10 -# #worksheet.row_dimensions[27].height = 50 - -# cinza = "979CA8" -# azul = "336394" - - - -# for row in worksheet.iter_rows(min_row=10, max_row=size, min_col=1, max_col=10): -# worksheet.row_dimensions[row[0].row].height = 35 - -# custom_number_format = [] -# # MASCARA R$ -# if custom_number_format!= False: -# custom_number_format = NamedStyle(name='custom_number_format') -# custom_number_format.number_format = 'R$ #,##0.00' -# custom_number_format.font = Font(name="Arial", size=12, color="000000") -# custom_number_format.alignment = Alignment(horizontal="general",vertical="bottom",wrap_text=True) - -# #stylecinza - - -# value_to_stop = size -# start_row = 10 -# # -# for row in range(start_row,size+1): -# cell = worksheet[f'J{row}'] -# cell.style = custom_number_format - -# for rows in worksheet.iter_rows(min_row=10, max_row=size, min_col=1, max_col=10): -# for cell in rows: -# if cell.row % 2: -# cell.fill = PatternFill(start_color=cinza, end_color=cinza, -# fill_type = "solid") -# cell.font = Font(name="Arial", size=12, color="000000") -# cell.alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) -# cell.border = Border(top=Side(border_style="hair") ,left = Side(border_style="hair") ,right =Side(border_style="hair") ,bottom=Side(border_style="hair") ) - - - - - -# #subtotal -# celulas_mergidas_subtotal = f"A{size}:I{size}" -# worksheet.merge_cells(celulas_mergidas_subtotal) -# left_celula_cell = f"A{size}" -# top_left_cell = worksheet[left_celula_cell] -# top_left_cell.value = "Sub Total" -# top_left_cell.fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") -# top_left_cell.font = Font(name="Arial", size=12, color="000000",bold=True) -# top_left_cell.alignment = Alignment(horizontal="center",vertical="center") - - - - -# # FORMULATOTAL -# formula = f"=SUM(J10:J{size-1})" -# celula = f'J{size}' -# worksheet[celula] = formula -# worksheet[celula].fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") -# worksheet[celula].font = Font(name="Arial", size=12, color="000000",bold=True) - - -# #restituições creditadas -# restituicoes = size + 1 -# celula_restituicoes=f'A{restituicoes}' -# worksheet[celula_restituicoes].value = "RESTITUIÇÕES CREDITADAS" -# worksheet[celula_restituicoes].font = Font(name="Arial", size=12, color="000000",bold=True) -# worksheet.row_dimensions[restituicoes].height = 30 - - -# #colunas azul -# row_style = NamedStyle(name='row_style') -# row_style.font = Font(name="Arial", size=12, color="FFFFFF",bold=True) -# row_style.fill = openpyxl.styles.PatternFill(start_color=azul, end_color=azul, fill_type='solid') -# row_style.alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) -# row_style.height = 30 - -# row_number = size + 2 - -# for column in range(1, 11): -# cell = worksheet.cell(row=row_number, column=column) -# cell.style = row_style - - -# values = ["Item","Restituidor","CNPJ/CPF",'Descrição',"Cheque equivalente","Data do Cheque",'Nº do Depósito','Data da Devolução','Valor'] -# coluna = 1 -# for a,b in enumerate(values): -# worksheet.cell(row=row_number, column=coluna, value=b) -# if coluna == 4: -# coluna = coluna + 1 -# coluna = coluna + 1 - - -# merge_formula = f'D{row_number}:E{row_number}' -# worksheet.merge_cells(merge_formula) - -# #subtotal2 -# sub_total2_row = size + 4 -# subtotal_merge_cells= f'A{sub_total2_row}:I{sub_total2_row}' -# worksheet.merge_cells(subtotal_merge_cells) -# top_left_subtotal2_cell_formula = f'A{sub_total2_row}' -# top_left_subtotal2_cell = worksheet[top_left_subtotal2_cell_formula] -# top_left_subtotal2_cell.value = "Sub Total 2" -# top_left_subtotal2_cell.fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") -# top_left_subtotal2_cell.font = Font(name="Arial", size=12, color="000000",bold=True) -# top_left_subtotal2_cell.alignment = Alignment(horizontal="center",vertical="center") -# sub_formula_row_celula = f'J{sub_total2_row}' -# worksheet[sub_formula_row_celula].fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") -# worksheet[sub_formula_row_celula].font = Font(name="Arial", size=12, color="000000",bold=True) - -# #subtotal12_Formula -# # sub_formula_row = size + 4 -# # sub_formula = f'=SOMA(J{sub_formula_row}:J{sub_formula_row})' -# # sub_formula_row_celula = f'J{sub_formula_row}' -# # worksheet[sub_formula_row_celula].fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") -# # worksheet[sub_formula_row_celula] = sub_formula - - -# #total1-2 -# total12_row = size + 5 -# total12_merge_cells = f'A{total12_row}:I{total12_row}' -# worksheet.merge_cells(total12_merge_cells) -# top_left_total12_cell_formula = f'A{total12_row}' -# top_left_total12_cell = worksheet[top_left_total12_cell_formula] -# top_left_total12_cell.value = "Total(1 -2)" -# top_left_total12_cell.fill = PatternFill(start_color=azul, end_color=azul,fill_type = "solid") -# top_left_total12_cell.font = Font(name="Arial", size=12, color="000000",bold=True) -# top_left_total12_cell.alignment = Alignment(horizontal="center",vertical="center") - -# #total_formula -# total_formula_row = size + 5 -# total_formulaa = f'=J{size}' -# total_formula_row_celula = f'J{total_formula_row}' -# worksheet[total_formula_row_celula].fill = PatternFill(start_color=azul, end_color=azul,fill_type = "solid") -# worksheet[total_formula_row_celula].font = Font(name="Arial", size=12, color="000000",bold=True) -# worksheet[total_formula_row_celula].number_format = 'R$ #,##0.00' -# worksheet.row_dimensions[total_formula_row].height = 30 -# worksheet[total_formula_row_celula] = total_formulaa - -# #brasilia -# brasilia_row = size + 7 -# brasilia_formula = f"='Receita x Despesa'!A42:J42" -# brasilia_merge_cells = f'A{brasilia_row}:I{brasilia_row}' -# worksheet.merge_cells(brasilia_merge_cells) -# top_left_brasilia_cell_formula = f'A{brasilia_row}' -# top_left_brasilia_cell = worksheet[top_left_brasilia_cell_formula] -# top_left_brasilia_cell.value = brasilia_formula -# top_left_brasilia_cell.alignment = Alignment(horizontal="center",vertical="center") - -# #DiretorFinanceiro -# diretor_row = size + 8 -# diretor_cargo_row = size + 9 -# diretor_cpf_row = size + 10 -# diretor_nome_formula = f"='Receita x Despesa'!A45" -# diretor_cargo_formula = f"='Receita x Despesa'!A46" -# diretor_cpf_formula = f"='Receita x Despesa'!A47" -# diretor_merge_cells = f'A{diretor_row}:D{diretor_row}' -# diretor_cargo_merge_cells = f'A{diretor_cargo_row}:D{diretor_cargo_row}' -# diretor_cpf_merge_cells = f'A{diretor_cpf_row}:D{diretor_cpf_row}' -# worksheet.merge_cells(diretor_merge_cells) -# worksheet.merge_cells(diretor_cargo_merge_cells) -# worksheet.merge_cells(diretor_cpf_merge_cells) -# top_left_diretor_cell_formula = f'A{diretor_row}' -# top_left_diretor_cell_cargo_formula = f'A{diretor_cargo_row}' -# top_left_diretor_cell_cpf_formula = f'A{diretor_cpf_row}' -# top_left_diretor_cell = worksheet[top_left_diretor_cell_formula] -# top_left_diretor_cell_cargo_formula = worksheet[top_left_diretor_cell_cargo_formula] -# top_left_diretor_cell_cpf_formula = worksheet[top_left_diretor_cell_cpf_formula] -# top_left_diretor_cell.value = diretor_nome_formula -# top_left_diretor_cell_cargo_formula.value = diretor_cargo_formula -# top_left_diretor_cell_cpf_formula.value = diretor_cpf_formula -# top_left_diretor_cell.alignment = Alignment(horizontal="center",vertical="center") -# top_left_diretor_cell.font = Font(bold=True) -# top_left_diretor_cell_cargo_formula.alignment = Alignment(horizontal="center",vertical="center") -# top_left_diretor_cell_cpf_formula.alignment = Alignment(horizontal="center",vertical="center") -# #Coordenadora -# coordenadora_row = size + 8 -# coordenadora_cargo_row = size + 9 -# coordenadora_cpf_row = size + 10 -# coordenadora_nome_formula = f"='Receita x Despesa'!H45" -# coordenadora_cargo_formula = f"='Receita x Despesa'!H46" -# coordenadora_cpf_formula = f"='Receita x Despesa'!H47" -# coordenadora_merge_cells = f'F{coordenadora_row}:J{coordenadora_row}' -# coordenadora_cargo_merge_cells = f'F{coordenadora_cargo_row}:J{coordenadora_cargo_row}' -# coordenadora_cpf_merge_cells = f'F{coordenadora_cpf_row}:J{coordenadora_cpf_row}' -# worksheet.merge_cells(coordenadora_merge_cells) -# worksheet.merge_cells(coordenadora_cargo_merge_cells) -# worksheet.merge_cells(coordenadora_cpf_merge_cells) -# top_left_coordenadora_cell_formula = f'F{coordenadora_row}' -# top_left_coordenadora_cell_cargo_formula = f'F{coordenadora_cargo_row}' -# top_left_coordenadora_cell_cpf_formula = f'F{coordenadora_cpf_row}' -# top_left_coordenadora_cell = worksheet[top_left_coordenadora_cell_formula] -# top_left_coordenadora_cell_cargo_formula = worksheet[top_left_coordenadora_cell_cargo_formula] -# top_left_coordenadora_cell_cpf_formula = worksheet[top_left_coordenadora_cell_cpf_formula] -# top_left_coordenadora_cell.value = coordenadora_nome_formula -# top_left_coordenadora_cell_cargo_formula.value = coordenadora_cargo_formula -# top_left_coordenadora_cell_cpf_formula.value = coordenadora_cpf_formula -# top_left_coordenadora_cell.alignment = Alignment(horizontal="center",vertical="center") -# top_left_coordenadora_cell.font= Font(bold = True) -# top_left_coordenadora_cell_cargo_formula.alignment = Alignment(horizontal="center",vertical="center") -# top_left_coordenadora_cell_cpf_formula.alignment = Alignment(horizontal="center",vertical="center") - -# #nome dos indices - -# azul_claro = '1c89b8' -# row_style_cabecario = NamedStyle(name='row_style_cabecario') -# row_style_cabecario.font = Font(name="Arial", size=12, color="FFFFFF",bold=True) -# row_style_cabecario.fill = openpyxl.styles.PatternFill(start_color=azul_claro, end_color=azul_claro, fill_type='solid') -# row_style_cabecario.alignment = Alignment(horizontal="center",vertical="center",wrap_text = True) -# worksheet.row_dimensions[9].height = 50 -# worksheet.column_dimensions['b'].width = 35 -# worksheet.column_dimensions['c'].width = 20 -# worksheet.column_dimensions['d'].width = 35 -# worksheet.column_dimensions['e'].width = 60 -# worksheet.column_dimensions['f'].width = 35 -# worksheet.column_dimensions['g'].width = 30 -# worksheet.column_dimensions['h'].width = 30 -# worksheet.column_dimensions['i'].width = 30 -# worksheet.column_dimensions['j'].width = 30 -# worksheet.column_dimensions['e'].height = 20 - - -# linha_number = 9 -# # Apply the style to each cell in the row -# for cell in worksheet[linha_number]: -# cell.style = row_style_cabecario - -# valores = ["ITEM","NOME","CNPJ/CPF",'ESPECIFICAÇÃO DA DESPESA','DESCRIÇÃO',"Nº DO RECIBO OU EQUIVALENTE","DATA DE EMISSÃO",'CHEQUE / ORDEM BANCÁRIA','DATA DE PGTO','Valor'] -# col = 1 -# for a,b in enumerate(valores): -# worksheet.cell(row=linha_number, column=col, value=b) -# col = col + 1 - - -# #cabecario relação de pagamentos - outro servicoes de terceiros -# worksheet.merge_cells('A1:J2') -# worksheet['A1'] = f'R E L A Ç Ã O D E P A G A M E N T O S - O U T R O S S E R V I Ç O S D E T E R C E I R O S - C E L E T I S T A S' -# worksheet['A1'].font = Font(name="Arial", size=12, color="FFFFFF",bold=True) -# worksheet['A1'].alignment = Alignment(horizontal="center",vertical="center") -# worksheet['A1'].fill = PatternFill(start_color=azul_claro, end_color=azul_claro,fill_type = "solid") -# worksheet.merge_cells('A3:I3') -# worksheet['A3'] = "='Receita x Despesa'!A3:J3" -# worksheet['A3'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A3'].alignment = Alignment(horizontal="left",vertical="center") - -# worksheet.merge_cells('A4:I4') -# worksheet['A4'] = "='Receita x Despesa'!A4:J4" -# worksheet['A4'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A4'].alignment = Alignment(horizontal="left",vertical="center") - -# worksheet.merge_cells('A5:I5') -# worksheet['A5'] = "='Receita x Despesa'!A5:J5" -# worksheet['A5'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A5'].alignment = Alignment(horizontal="left",vertical="center") - -# worksheet.merge_cells('A6:I6') -# worksheet['A6'] = "='Receita x Despesa'!A6:J6" -# worksheet['A6'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A6'].alignment = Alignment(horizontal="left",vertical="center") - -# worksheet.merge_cells('A7:I7') -# worksheet['A7'] = "='Receita x Despesa'!A7:J7" -# worksheet['A7'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A7'].alignment = Alignment(horizontal="left",vertical="center") - -# altura = 45 -# linha_inicio = 9 -# for row_number in range(linha_inicio, linha_inicio + tamanho+1): -# worksheet.row_dimensions[row_number].height = altura - - -# # Save the workbook to a file -# workbook.save(tabela) -# workbook.close() - -# def estilo_Iss(tabela,tamanho): - -# caminho = pegar_caminho(tabela) -# workbook = openpyxl.load_workbook(caminho) -# worksheet = workbook['ISS'] - - -# size = tamanho + 10 -# #worksheet.row_dimensions[27].height = 50 - -# cinza = "979CA8" -# azul = "336394" - - - -# for row in worksheet.iter_rows(min_row=10, max_row=size, min_col=1, max_col=10): -# worksheet.row_dimensions[row[0].row].height = 35 - -# custom_number_format_iss = [] -# # MASCARA R$ -# if custom_number_format_iss!= False: -# custom_number_format_iss = NamedStyle(name='custom_number_format_iss') -# custom_number_format_iss.number_format = 'R$ #,##0.00' -# custom_number_format_iss.font = Font(name="Arial", size=12, color="000000") -# custom_number_format_iss.alignment = Alignment(horizontal="general",vertical="bottom",wrap_text=True) - -# #stylecinza - - -# value_to_stop = size -# start_row = 10 -# # -# for row in range(start_row,size+1): -# cell = worksheet[f'J{row}'] -# cell.style = custom_number_format_iss - -# for rows in worksheet.iter_rows(min_row=10, max_row=size, min_col=1, max_col=10): -# for cell in rows: -# if cell.row % 2: -# cell.fill = PatternFill(start_color=cinza, end_color=cinza, -# fill_type = "solid") -# cell.font = Font(name="Arial", size=12, color="000000") -# cell.alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) -# cell.border = Border(top=Side(border_style="hair") ,left = Side(border_style="hair") ,right =Side(border_style="hair") ,bottom=Side(border_style="hair") ) - - - - - -# #subtotal -# celulas_mergidas_subtotal = f"A{size}:I{size}" -# worksheet.merge_cells(celulas_mergidas_subtotal) -# left_celula_cell = f"A{size}" -# top_left_cell = worksheet[left_celula_cell] -# top_left_cell.value = "Sub Total" -# top_left_cell.fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") -# top_left_cell.font = Font(name="Arial", size=12, color="000000",bold=True) -# top_left_cell.alignment = Alignment(horizontal="center",vertical="center") - - - - -# # FORMULATOTAL -# formula = f"=SUM(J10:J{size-1})" -# celula = f'J{size}' -# worksheet[celula] = formula -# worksheet[celula].fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") -# worksheet[celula].font = Font(name="Arial", size=12, color="000000",bold=True) - - -# #restituições creditadas -# restituicoes = size + 1 -# celula_restituicoes=f'A{restituicoes}' -# worksheet[celula_restituicoes].value = "RESTITUIÇÕES CREDITADAS" -# worksheet[celula_restituicoes].font = Font(name="Arial", size=12, color="000000",bold=True) -# worksheet.row_dimensions[restituicoes].height = 30 - - -# #colunas azul -# row_style_iss = NamedStyle(name='row_style_iss') -# row_style_iss.font = Font(name="Arial", size=12, color="FFFFFF",bold=True) -# row_style_iss.fill = openpyxl.styles.PatternFill(start_color=azul, end_color=azul, fill_type='solid') -# row_style_iss.alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) -# row_style_iss.height = 30 - -# row_number = size + 2 - -# for column in range(1, 11): -# cell = worksheet.cell(row=row_number, column=column) -# cell.style = row_style_iss - - -# values = ["Item","Restituidor","CNPJ/CPF",'Descrição',"Cheque equivalente","Data do Cheque",'Nº do Depósito','Data da Devolução','Valor'] -# coluna = 1 -# for a,b in enumerate(values): -# worksheet.cell(row=row_number, column=coluna, value=b) -# if coluna == 4: -# coluna = coluna + 1 -# coluna = coluna + 1 - - -# merge_formula = f'D{row_number}:E{row_number}' -# worksheet.merge_cells(merge_formula) - -# #subtotal2 -# sub_total2_row = size + 4 -# subtotal_merge_cells= f'A{sub_total2_row}:I{sub_total2_row}' -# worksheet.merge_cells(subtotal_merge_cells) -# top_left_subtotal2_cell_formula = f'A{sub_total2_row}' -# top_left_subtotal2_cell = worksheet[top_left_subtotal2_cell_formula] -# top_left_subtotal2_cell.value = "Sub Total 2" -# top_left_subtotal2_cell.fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") -# top_left_subtotal2_cell.font = Font(name="Arial", size=12, color="000000",bold=True) -# top_left_subtotal2_cell.alignment = Alignment(horizontal="center",vertical="center") -# sub_formula_row_celula = f'J{sub_total2_row}' -# worksheet[sub_formula_row_celula].fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") -# worksheet[sub_formula_row_celula].font = Font(name="Arial", size=12, color="000000",bold=True) - -# #subtotal12_Formula -# # sub_formula_row = size + 4 -# # sub_formula = f'=SOMA(J{sub_formula_row}:J{sub_formula_row})' -# # sub_formula_row_celula = f'J{sub_formula_row}' -# # worksheet[sub_formula_row_celula].fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") -# # worksheet[sub_formula_row_celula] = sub_formula - - -# #total1-2 -# total12_row = size + 5 -# total12_merge_cells = f'A{total12_row}:I{total12_row}' -# worksheet.merge_cells(total12_merge_cells) -# top_left_total12_cell_formula = f'A{total12_row}' -# top_left_total12_cell = worksheet[top_left_total12_cell_formula] -# top_left_total12_cell.value = "Total(1 -2)" -# top_left_total12_cell.fill = PatternFill(start_color=azul, end_color=azul,fill_type = "solid") -# top_left_total12_cell.font = Font(name="Arial", size=12, color="000000",bold=True) -# top_left_total12_cell.alignment = Alignment(horizontal="center",vertical="center") - -# #total_formula -# total_formula_row = size + 5 -# total_formulaa = f'=J{size}' -# total_formula_row_celula = f'J{total_formula_row}' -# worksheet[total_formula_row_celula].fill = PatternFill(start_color=azul, end_color=azul,fill_type = "solid") -# worksheet[total_formula_row_celula].font = Font(name="Arial", size=12, color="000000",bold=True) -# worksheet[total_formula_row_celula].number_format = 'R$ #,##0.00' -# worksheet.row_dimensions[total_formula_row].height = 30 -# worksheet[total_formula_row_celula] = total_formulaa - -# #brasilia -# brasilia_row = size + 7 -# brasilia_formula = f"='Receita x Despesa'!A42:J42" -# brasilia_merge_cells = f'A{brasilia_row}:I{brasilia_row}' -# worksheet.merge_cells(brasilia_merge_cells) -# top_left_brasilia_cell_formula = f'A{brasilia_row}' -# top_left_brasilia_cell = worksheet[top_left_brasilia_cell_formula] -# top_left_brasilia_cell.value = brasilia_formula -# top_left_brasilia_cell.alignment = Alignment(horizontal="center",vertical="center") - -# #DiretorFinanceiro -# diretor_row = size + 8 -# diretor_cargo_row = size + 9 -# diretor_cpf_row = size + 10 -# diretor_nome_formula = f"='Receita x Despesa'!A45" -# diretor_cargo_formula = f"='Receita x Despesa'!A46" -# diretor_cpf_formula = f"='Receita x Despesa'!A47" -# diretor_merge_cells = f'A{diretor_row}:D{diretor_row}' -# diretor_cargo_merge_cells = f'A{diretor_cargo_row}:D{diretor_cargo_row}' -# diretor_cpf_merge_cells = f'A{diretor_cpf_row}:D{diretor_cpf_row}' -# worksheet.merge_cells(diretor_merge_cells) -# worksheet.merge_cells(diretor_cargo_merge_cells) -# worksheet.merge_cells(diretor_cpf_merge_cells) -# top_left_diretor_cell_formula = f'A{diretor_row}' -# top_left_diretor_cell_cargo_formula = f'A{diretor_cargo_row}' -# top_left_diretor_cell_cpf_formula = f'A{diretor_cpf_row}' -# top_left_diretor_cell = worksheet[top_left_diretor_cell_formula] -# top_left_diretor_cell_cargo_formula = worksheet[top_left_diretor_cell_cargo_formula] -# top_left_diretor_cell_cpf_formula = worksheet[top_left_diretor_cell_cpf_formula] -# top_left_diretor_cell.value = diretor_nome_formula -# top_left_diretor_cell_cargo_formula.value = diretor_cargo_formula -# top_left_diretor_cell_cpf_formula.value = diretor_cpf_formula -# top_left_diretor_cell.alignment = Alignment(horizontal="center",vertical="center") -# top_left_diretor_cell.font = Font(bold=True) -# top_left_diretor_cell_cargo_formula.alignment = Alignment(horizontal="center",vertical="center") -# top_left_diretor_cell_cpf_formula.alignment = Alignment(horizontal="center",vertical="center") -# #Coordenadora -# coordenadora_row = size + 8 -# coordenadora_cargo_row = size + 9 -# coordenadora_cpf_row = size + 10 -# coordenadora_nome_formula = f"='Receita x Despesa'!H45" -# coordenadora_cargo_formula = f"='Receita x Despesa'!H46" -# coordenadora_cpf_formula = f"='Receita x Despesa'!H47" -# coordenadora_merge_cells = f'F{coordenadora_row}:J{coordenadora_row}' -# coordenadora_cargo_merge_cells = f'F{coordenadora_cargo_row}:J{coordenadora_cargo_row}' -# coordenadora_cpf_merge_cells = f'F{coordenadora_cpf_row}:J{coordenadora_cpf_row}' -# worksheet.merge_cells(coordenadora_merge_cells) -# worksheet.merge_cells(coordenadora_cargo_merge_cells) -# worksheet.merge_cells(coordenadora_cpf_merge_cells) -# top_left_coordenadora_cell_formula = f'F{coordenadora_row}' -# top_left_coordenadora_cell_cargo_formula = f'F{coordenadora_cargo_row}' -# top_left_coordenadora_cell_cpf_formula = f'F{coordenadora_cpf_row}' -# top_left_coordenadora_cell = worksheet[top_left_coordenadora_cell_formula] -# top_left_coordenadora_cell_cargo_formula = worksheet[top_left_coordenadora_cell_cargo_formula] -# top_left_coordenadora_cell_cpf_formula = worksheet[top_left_coordenadora_cell_cpf_formula] -# top_left_coordenadora_cell.value = coordenadora_nome_formula -# top_left_coordenadora_cell_cargo_formula.value = coordenadora_cargo_formula -# top_left_coordenadora_cell_cpf_formula.value = coordenadora_cpf_formula -# top_left_coordenadora_cell.alignment = Alignment(horizontal="center",vertical="center") -# top_left_coordenadora_cell.font= Font(bold = True) -# top_left_coordenadora_cell_cargo_formula.alignment = Alignment(horizontal="center",vertical="center") -# top_left_coordenadora_cell_cpf_formula.alignment = Alignment(horizontal="center",vertical="center") - -# #nome dos indices - -# azul_claro = '1c89b8' -# row_style_cabecario_iss = NamedStyle(name='row_style_cabecario_iss') -# row_style_cabecario_iss.font = Font(name="Arial", size=12, color="FFFFFF",bold=True) -# row_style_cabecario_iss.fill = openpyxl.styles.PatternFill(start_color=azul_claro, end_color=azul_claro, fill_type='solid') -# row_style_cabecario_iss.alignment = Alignment(horizontal="center",vertical="center",wrap_text = True) -# worksheet.row_dimensions[9].height = 50 -# worksheet.column_dimensions['b'].width = 35 -# worksheet.column_dimensions['c'].width = 20 -# worksheet.column_dimensions['d'].width = 35 -# worksheet.column_dimensions['e'].width = 60 -# worksheet.column_dimensions['f'].width = 35 -# worksheet.column_dimensions['g'].width = 30 -# worksheet.column_dimensions['h'].width = 30 -# worksheet.column_dimensions['i'].width = 30 -# worksheet.column_dimensions['j'].width = 30 -# worksheet.column_dimensions['e'].height = 20 - - -# linha_number = 9 -# # Apply the style to each cell in the row -# for cell in worksheet[linha_number]: -# cell.style = row_style_cabecario_iss - -# valores = ["ITEM","NOME","CNPJ/CPF",'ESPECIFICAÇÃO DA DESPESA','DESCRIÇÃO',"Nº DO RECIBO OU EQUIVALENTE","DATA DE EMISSÃO",'CHEQUE / ORDEM BANCÁRIA','DATA DE PGTO','Valor'] -# col = 1 -# for a,b in enumerate(valores): -# worksheet.cell(row=linha_number, column=col, value=b) -# col = col + 1 - - -# #cabecario relação de pagamentos - outro servicoes de terceiros -# worksheet.merge_cells('A1:J2') -# worksheet['A1'] = f'R E L A Ç Ã O D E P A G A M E N T O S - A U X Í L I O F I N A N C E I R O A E S T U D A N T E ' -# worksheet['A1'].font = Font(name="Arial", size=12, color="FFFFFF",bold=True) -# worksheet['A1'].alignment = Alignment(horizontal="center",vertical="center") -# worksheet['A1'].fill = PatternFill(start_color=azul_claro, end_color=azul_claro,fill_type = "solid") -# worksheet.merge_cells('A3:I3') -# worksheet['A3'] = "='Receita x Despesa'!A3:J3" -# worksheet['A3'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A3'].alignment = Alignment(horizontal="left",vertical="center") - -# worksheet.merge_cells('A4:I4') -# worksheet['A4'] = "='Receita x Despesa'!A4:J4" -# worksheet['A4'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A4'].alignment = Alignment(horizontal="left",vertical="center") - -# worksheet.merge_cells('A5:I5') -# worksheet['A5'] = "='Receita x Despesa'!A5:J5" -# worksheet['A5'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A5'].alignment = Alignment(horizontal="left",vertical="center") - -# worksheet.merge_cells('A6:I6') -# worksheet['A6'] = "='Receita x Despesa'!A6:J6" -# worksheet['A6'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A6'].alignment = Alignment(horizontal="left",vertical="center") - -# worksheet.merge_cells('A7:I7') -# worksheet['A7'] = "='Receita x Despesa'!A7:J7" -# worksheet['A7'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A7'].alignment = Alignment(horizontal="left",vertical="center") - -# altura = 45 -# linha_inicio = 9 -# for row_number in range(linha_inicio, linha_inicio + tamanho+1): -# worksheet.row_dimensions[row_number].height = altura - - -# # Save the workbook to a file -# workbook.save(tabela) -# workbook.close() - -# def estilo_passagens(tabela,tamanho): - -# caminho = pegar_caminho(tabela) -# workbook = openpyxl.load_workbook(caminho) -# worksheet = workbook['Passagens e Desp. Locomoção'] -# size = tamanho + 10 -# cinza = "d9d9d9" -# cinza_escuro = "bfbfbf" -# azul = "336394" -# azul_claro = '1c8cbc' - -# borda = Border(right=Side(border_style="medium")) -# worksheet.sheet_view.showGridLines = False -# # -# for row in worksheet.iter_rows(min_row=1, max_row=size+11,min_col=10,max_col=10): -# for cell in row: -# cell.border = borda - - -# worksheet.column_dimensions['a'].width = 25 -# worksheet.column_dimensions['b'].width = 25 -# worksheet.column_dimensions['c'].width = 35 -# worksheet.column_dimensions['d'].width = 40#descrição -# worksheet.column_dimensions['e'].width = 20 #n do recibo ou qeuivalente -# worksheet.column_dimensions['f'].width = 25 #data de emissão -# worksheet.column_dimensions['g'].width = 25 #data de emissão -# worksheet.column_dimensions['h'].width = 25 #data de emissão -# worksheet.column_dimensions['i'].width = 25 #data de emissão -# worksheet.column_dimensions['j'].width = 25 #data de emissão - - -# #cabecario relação de pagamentos - outro servicoes de terceiros -# worksheet.merge_cells('A1:J2') -# worksheet['A1'] = f'R E L A Ç Ã O D E P A G A M E N T O S - PASSAGENS E DESPESAS COM LOCOMOÇÃO' -# worksheet['A1'].font = Font(name="Arial", size=12, color="FFFFFF",bold=True) -# worksheet['A1'].alignment = Alignment(horizontal="center",vertical="center") -# worksheet['A1'].fill = PatternFill(start_color=azul_claro, end_color=azul_claro,fill_type = "solid") - -# worksheet.merge_cells('A3:F3') -# worksheet['A3'] = "='Receita x Despesa'!A3:J3" -# worksheet['A3'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A3'].alignment = Alignment(horizontal="left",vertical="center") - -# worksheet.merge_cells('A4:F4') -# worksheet['A4'] = "='Receita x Despesa'!A4:J4" -# worksheet['A4'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A4'].alignment = Alignment(horizontal="left",vertical="center") - -# worksheet.merge_cells('A5:F5') -# worksheet['A5'] = "='Receita x Despesa'!A5:J5" -# worksheet['A5'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A5'].alignment = Alignment(horizontal="left",vertical="center") - -# worksheet.merge_cells('A6:F6') -# worksheet['A6'] = "='Receita x Despesa'!A6:J6" -# worksheet['A6'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A6'].alignment = Alignment(horizontal="left",vertical="center") - -# worksheet.merge_cells('A7:F7') -# worksheet['A7'] = "='Receita x Despesa'!A7:J7" -# worksheet['A7'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A7'].alignment = Alignment(horizontal="left",vertical="center") - -# #colunas azul cabecario -# row_style_passagens = NamedStyle(name='row_style_passagens') -# row_style_passagens.font = Font(name="Arial", size=12, color="FFFFFF",bold=True) -# row_style_passagens.fill = openpyxl.styles.PatternFill(start_color=azul_claro, end_color=azul_claro, fill_type='solid') -# row_style_passagens.alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) -# row_style_passagens.border = Border(top=Side(border_style="medium") ,bottom=Side(border_style="thin") ) -# row_style_passagens.height = 20 -# linha_number = 9 -# for row in worksheet.iter_rows(min_row=linha_number, max_row=linha_number, min_col=1, max_col=10): -# for cell in row: -# cell.style = row_style_passagens -# if cell.column == 10: -# cell.border = Border(top=Side(border_style="medium") ,bottom=Side(border_style="thin"), right=Side(border_style="medium") ) - -# valores = ["ITEM","NOME","CNPJ/CPF",'ESPECIFICAÇÃO DA DESPESA','DESCRIÇÃO',"Nº DO RECIBO OU EQUIVALENTE","DATA DE EMISSÃO",'CHEQUE / ORDEM BANCÁRIA','DATA DE PGTO','Valor'] -# col = 1 -# for a,b in enumerate(valores): -# worksheet.cell(row=linha_number, column=col, value=b) -# col = col + 1 - - -# #Aumentar a altura das celulas -# for row in worksheet.iter_rows(min_row=10, max_row=size, min_col=1, max_col=10): -# worksheet.row_dimensions[row[0].row].height = 35 - -# custom_number_format_passagens = [] -# # MASCARA R$ -# if custom_number_format_passagens!= False: -# custom_number_format_passagens = NamedStyle(name='custom_number_format_passagens') -# custom_number_format_passagens.number_format = 'R$ #,##0.00' -# custom_number_format_passagens.font = Font(name="Arial", size=12, color="000000") -# custom_number_format_passagens.alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - -# #estilocinzasimcinzanao -# value_to_stop = size -# start_row = 10 -# # -# for row in range(start_row,size+1): -# cell = worksheet[f'J{row}'] -# cell.style = custom_number_format_passagens - -# for rows in worksheet.iter_rows(min_row=10, max_row=size, min_col=1, max_col=10): -# for cell in rows: -# if cell.row % 2: -# cell.fill = PatternFill(start_color=cinza, end_color=cinza, -# fill_type = "solid") -# if cell.column == 10: -# cell.font = Font(name="Arial", size=12, color="000000") -# cell.alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) -# cell.border = Border(top=Side(border_style="hair") ,left = Side(border_style="hair") ,right =Side(border_style="medium") ,bottom=Side(border_style="hair") ) -# else: -# cell.font = Font(name="Arial", size=12, color="000000") -# cell.alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) -# cell.border = Border(top=Side(border_style="hair") ,left = Side(border_style="hair") ,right =Side(border_style="hair") ,bottom=Side(border_style="hair") ) - - -# #subtotal -# stringAfinarCelula =size+2 -# worksheet.row_dimensions[size+2].height = 6 -# celulas_mergidas_subtotal = f"A{size+2}:I{size+2}" -# worksheet.merge_cells(celulas_mergidas_subtotal) -# left_celula_cell = f"A{size+2}" -# top_left_cell = worksheet[left_celula_cell] -# top_left_cell.value = "Sub Total1" -# top_left_cell.fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") -# top_left_cell.font = Font(name="Arial", size=12, color="000000",bold=True) -# top_left_cell.alignment = Alignment(horizontal="center",vertical="center") -# top_left_cell.border = Border(top=Side(border_style="thin") ,left = Side(border_style="medium") ,right =Side(border_style="thin") ,bottom=Side(border_style="medium") ) - -# worksheet.row_dimensions[size+2].height = 56.25 - -# # FORMULATOTAL -# formula = f"=SUM(J10:J{size})" -# celula = f'J{size+2}' -# worksheet[celula] = formula -# worksheet[celula].fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") -# worksheet[celula].font = Font(name="Arial", size=12, color="000000",bold=True) -# worksheet[celula].border = Border(top=Side(border_style="thin") ,left = Side(border_style="thin") ,right =Side(border_style="medium") ,bottom=Side(border_style="medium") ) -# worksheet[celula].number_format = 'R$ #,##0.00' -# #restituições creditadas -# restituicoes = size + 3 -# celula_restituicoes=f'A{restituicoes}' -# worksheet[celula_restituicoes].value = "RESTITUIÇÕES CREDITADAS" -# worksheet[celula_restituicoes].font = Font(name="Arial", size=12, color="000000",bold=True) -# worksheet.row_dimensions[restituicoes].height = 30 - -# #estilo colunas restitucoes creditadas -# row_style_passagens_append = NamedStyle(name='row_style_passagens_append') -# row_style_passagens_append.font = Font(name="Arial", size=12, color="FFFFFF",bold=True) -# row_style_passagens_append.fill = openpyxl.styles.PatternFill(start_color=azul_claro, end_color=azul_claro, fill_type='solid') -# row_style_passagens_append.alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) -# row_style_passagens_append.height = 30 -# row_style_passagens_append.border = Border(top=Side(border_style="medium") ,bottom=Side(border_style="medium") ) - - -# row_number = size + 4 - -# for column in range(1, 11): -# cell = worksheet.cell(row=row_number, column=column) -# cell.style = row_style_passagens_append -# if cell.column == 10: -# cell.border = Border(top=Side(border_style="medium") ,right =Side(border_style="medium") ,bottom=Side(border_style="medium") ) - - - -# values = ["Item","Restituidor","CNPJ/CPF",'Descrição',"Cheque equivalente","Data do Cheque",'Nº do Depósito','Data da Devolução','Valor'] -# coluna = 1 -# for a,b in enumerate(values): -# worksheet.cell(row=row_number, column=coluna, value=b) -# if coluna == 4: -# coluna = coluna + 1 -# coluna = coluna + 1 - - -# merge_formula = f'D{row_number}:E{row_number}' -# worksheet.merge_cells(merge_formula) - - -# #subtotal2 -# sub_total2_row = size + 5 -# subtotal_merge_cells= f'A{sub_total2_row}:I{sub_total2_row}' -# worksheet.merge_cells(subtotal_merge_cells) -# top_left_subtotal2_cell_formula = f'A{sub_total2_row}' -# top_left_subtotal2_cell = worksheet[top_left_subtotal2_cell_formula] -# top_left_subtotal2_cell.value = "Sub Total 2" -# top_left_subtotal2_cell.fill = PatternFill(start_color=cinza_escuro, end_color=cinza_escuro,fill_type = "solid") -# top_left_subtotal2_cell.font = Font(name="Arial", size=12, color="000000",bold=True) -# top_left_subtotal2_cell.alignment = Alignment(horizontal="center",vertical="center") -# top_left_subtotal2_cell.border = Border(top=Side(border_style="hair") ,left = Side(border_style="medium") ,right =Side(border_style="hair") ,bottom=Side(border_style="medium") ) - -# sub_formula_row_celula = f'J{sub_total2_row}' -# worksheet[sub_formula_row_celula].fill = PatternFill(start_color=cinza_escuro, end_color=cinza_escuro,fill_type = "solid") -# worksheet[sub_formula_row_celula].font = Font(name="Arial", size=12, color="000000",bold=True) -# worksheet[sub_formula_row_celula].number_format = 'R$ #,##0.00' -# worksheet[sub_formula_row_celula].border = Border(top=Side(border_style="thin") ,left = Side(border_style="thin") ,right =Side(border_style="medium") ,bottom=Side(border_style="medium") ) - -# #total1-2 -# total12_row = size + 6 -# total12_merge_cells = f'A{total12_row}:I{total12_row}' -# worksheet.merge_cells(total12_merge_cells) -# top_left_total12_cell_formula = f'A{total12_row}' -# top_left_total12_cell = worksheet[top_left_total12_cell_formula] -# top_left_total12_cell.value = "Total(1-2)" -# top_left_total12_cell.fill = PatternFill(start_color=azul_claro, end_color=azul_claro,fill_type = "solid") -# top_left_total12_cell.font = Font(name="Arial", size=12, color="000000",bold=True) -# top_left_total12_cell.alignment = Alignment(horizontal="center",vertical="center") -# top_left_total12_cell.border = Border(top=Side(border_style="medium") ,left = Side(border_style="medium") ,bottom=Side(border_style="medium") ) - - -# #total_formula -# total_formula_row = size + 6 -# total_formulaa = f'=J{size+2}' -# total_formula_row_celula = f'J{total_formula_row}' -# worksheet[total_formula_row_celula].fill = PatternFill(start_color=azul_claro, end_color=azul_claro,fill_type = "solid") -# worksheet[total_formula_row_celula].font = Font(name="Arial", size=12, color="000000",bold=True) -# worksheet[total_formula_row_celula].number_format = 'R$ #,##0.00' -# worksheet[total_formula_row_celula].border = Border(top=Side(border_style="medium") ,bottom=Side(border_style="medium"),right=Side(border_style="medium") ) - -# worksheet.row_dimensions[total_formula_row].height = 30 -# worksheet[total_formula_row_celula] = total_formulaa - - -# #brasilia -# brasilia_row = size + 7 -# brasilia_formula = f"='Receita x Despesa'!A42:J42" -# brasilia_merge_cells = f'A{brasilia_row}:I{brasilia_row}' -# worksheet.merge_cells(brasilia_merge_cells) -# top_left_brasilia_cell_formula = f'A{brasilia_row}' -# top_left_brasilia_cell = worksheet[top_left_brasilia_cell_formula] -# top_left_brasilia_cell.value = brasilia_formula -# top_left_brasilia_cell.alignment = Alignment(horizontal="center",vertical="center") - -# #DiretorFinanceiro -# diretor_row = size + 8 -# diretor_cargo_row = size + 9 -# diretor_cpf_row = size + 10 -# diretor_nome_formula = f"='Receita x Despesa'!A45" -# diretor_cargo_formula = f"='Receita x Despesa'!A46" -# diretor_cpf_formula = f"='Receita x Despesa'!A47" -# diretor_merge_cells = f'A{diretor_row}:D{diretor_row}' -# diretor_cargo_merge_cells = f'A{diretor_cargo_row}:D{diretor_cargo_row}' -# diretor_cpf_merge_cells = f'A{diretor_cpf_row}:D{diretor_cpf_row}' -# worksheet.merge_cells(diretor_merge_cells) -# worksheet.merge_cells(diretor_cargo_merge_cells) -# worksheet.merge_cells(diretor_cpf_merge_cells) -# top_left_diretor_cell_formula = f'A{diretor_row}' -# top_left_diretor_cell_cargo_formula = f'A{diretor_cargo_row}' -# top_left_diretor_cell_cpf_formula = f'A{diretor_cpf_row}' -# top_left_diretor_cell = worksheet[top_left_diretor_cell_formula] -# top_left_diretor_cell_cargo_formula = worksheet[top_left_diretor_cell_cargo_formula] -# top_left_diretor_cell_cpf_formula = worksheet[top_left_diretor_cell_cpf_formula] -# top_left_diretor_cell.value = diretor_nome_formula -# top_left_diretor_cell_cargo_formula.value = diretor_cargo_formula -# top_left_diretor_cell_cpf_formula.value = diretor_cpf_formula -# top_left_diretor_cell.alignment = Alignment(horizontal="center",vertical="center") -# top_left_diretor_cell.font = Font(bold=True) -# top_left_diretor_cell_cargo_formula.alignment = Alignment(horizontal="center",vertical="center") -# top_left_diretor_cell_cpf_formula.alignment = Alignment(horizontal="center",vertical="center") -# #Coordenadora -# coordenadora_row = size + 8 -# coordenadora_cargo_row = size + 9 -# coordenadora_cpf_row = size + 10 -# coordenadora_nome_formula = f"='Receita x Despesa'!H45" -# coordenadora_cargo_formula = f"='Receita x Despesa'!H46" -# coordenadora_cpf_formula = f"='Receita x Despesa'!H47" -# coordenadora_merge_cells = f'F{coordenadora_row}:J{coordenadora_row}' -# coordenadora_cargo_merge_cells = f'F{coordenadora_cargo_row}:J{coordenadora_cargo_row}' -# coordenadora_cpf_merge_cells = f'F{coordenadora_cpf_row}:J{coordenadora_cpf_row}' -# worksheet.merge_cells(coordenadora_merge_cells) -# worksheet.merge_cells(coordenadora_cargo_merge_cells) -# worksheet.merge_cells(coordenadora_cpf_merge_cells) -# top_left_coordenadora_cell_formula = f'F{coordenadora_row}' -# top_left_coordenadora_cell_cargo_formula = f'F{coordenadora_cargo_row}' -# top_left_coordenadora_cell_cpf_formula = f'F{coordenadora_cpf_row}' -# top_left_coordenadora_cell = worksheet[top_left_coordenadora_cell_formula] -# top_left_coordenadora_cell_cargo_formula = worksheet[top_left_coordenadora_cell_cargo_formula] -# top_left_coordenadora_cell_cpf_formula = worksheet[top_left_coordenadora_cell_cpf_formula] -# top_left_coordenadora_cell.value = coordenadora_nome_formula -# top_left_coordenadora_cell_cargo_formula.value = coordenadora_cargo_formula -# top_left_coordenadora_cell_cpf_formula.value = coordenadora_cpf_formula -# top_left_coordenadora_cell.alignment = Alignment(horizontal="center",vertical="center") -# top_left_coordenadora_cell.font= Font(bold = True) -# top_left_coordenadora_cell_cargo_formula.alignment = Alignment(horizontal="center",vertical="center") -# top_left_coordenadora_cell_cpf_formula.alignment = Alignment(horizontal="center",vertical="center") - - -# # borda = Border(right=Side(border_style="medium")) -# # worksheet.sheet_view.showGridLines = False -# # # -# # for row in worksheet.iter_rows(min_row=1, max_row=coordenadora_cpf_row+1,min_col=10,max_col=10): -# # for cell in row: -# # cell.border = borda - - - -# for row in worksheet.iter_rows(min_row=coordenadora_cpf_row+1, max_row=coordenadora_cpf_row+1,min_col=1,max_col=10): -# for cell in row: -# if cell.column == 10: -# cell.border = Border(top=Side(border_style="none") ,left = Side(border_style="none") ,right =Side(border_style="medium") ,bottom=Side(border_style="medium") ) -# else: -# cell.border = Border(top=Side(border_style="none") ,left = Side(border_style="none") ,right =Side(border_style="none") ,bottom=Side(border_style="medium") ) - -# workbook.save(tabela) -# workbook.close() - -# def estilo_obrigacoes_tributarias(tabela,tamanho): -# caminho = pegar_caminho(tabela) -# workbook = openpyxl.load_workbook(caminho) -# worksheet = workbook['Obrigações Trib. - Encargos 20%'] - - -# size = tamanho + 10 -# #worksheet.row_dimensions[27].height = 50 - -# cinza = "979CA8" -# azul = "336394" - - - -# for row in worksheet.iter_rows(min_row=10, max_row=size, min_col=1, max_col=10): -# worksheet.row_dimensions[row[0].row].height = 35 - -# custom_number_format_obrig = [] -# # MASCARA R$ -# if custom_number_format_obrig!= False: -# custom_number_format_obrig = NamedStyle(name='custom_number_format_obrig') -# custom_number_format_obrig.number_format = 'R$ #,##0.00' -# custom_number_format_obrig.font = Font(name="Arial", size=12, color="000000") -# custom_number_format_obrig.alignment = Alignment(horizontal="general",vertical="bottom",wrap_text=True) - -# #stylecinza - - -# value_to_stop = size -# start_row = 10 -# # -# for row in range(start_row,size+1): -# cell = worksheet[f'J{row}'] -# cell.style = custom_number_format_obrig - -# for rows in worksheet.iter_rows(min_row=10, max_row=size, min_col=1, max_col=10): -# for cell in rows: -# if cell.row % 2: -# cell.fill = PatternFill(start_color=cinza, end_color=cinza, -# fill_type = "solid") -# cell.font = Font(name="Arial", size=12, color="000000") -# cell.alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) -# cell.border = Border(top=Side(border_style="hair") ,left = Side(border_style="hair") ,right =Side(border_style="hair") ,bottom=Side(border_style="hair") ) - - - - - -# #subtotal -# celulas_mergidas_subtotal = f"A{size}:I{size}" -# worksheet.merge_cells(celulas_mergidas_subtotal) -# left_celula_cell = f"A{size}" -# top_left_cell = worksheet[left_celula_cell] -# top_left_cell.value = "Sub Total" -# top_left_cell.fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") -# top_left_cell.font = Font(name="Arial", size=12, color="000000",bold=True) -# top_left_cell.alignment = Alignment(horizontal="center",vertical="center") - - - - -# # FORMULATOTAL -# formula = f"=SUM(J10:J{size-1})" -# celula = f'J{size}' -# worksheet[celula] = formula -# worksheet[celula].fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") -# worksheet[celula].font = Font(name="Arial", size=12, color="000000",bold=True) - - -# #restituições creditadas -# restituicoes = size + 1 -# celula_restituicoes=f'A{restituicoes}' -# worksheet[celula_restituicoes].value = "RESTITUIÇÕES CREDITADAS" -# worksheet[celula_restituicoes].font = Font(name="Arial", size=12, color="000000",bold=True) -# worksheet.row_dimensions[restituicoes].height = 30 - - -# #colunas azul -# row_style_obrig = NamedStyle(name='row_style_obrig') -# row_style_obrig.font = Font(name="Arial", size=12, color="FFFFFF",bold=True) -# row_style_obrig.fill = openpyxl.styles.PatternFill(start_color=azul, end_color=azul, fill_type='solid') -# row_style_obrig.alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) -# row_style_obrig.height = 30 - -# row_number = size + 2 - -# for column in range(1, 11): -# cell = worksheet.cell(row=row_number, column=column) -# cell.style = row_style_obrig - - -# values = ["Item","Restituidor","CNPJ/CPF",'Descrição',"Cheque equivalente","Data do Cheque",'Nº do Depósito','Data da Devolução','Valor'] -# coluna = 1 -# for a,b in enumerate(values): -# worksheet.cell(row=row_number, column=coluna, value=b) -# if coluna == 4: -# coluna = coluna + 1 -# coluna = coluna + 1 - - -# merge_formula = f'D{row_number}:E{row_number}' -# worksheet.merge_cells(merge_formula) - -# #subtotal2 -# sub_total2_row = size + 4 -# subtotal_merge_cells= f'A{sub_total2_row}:I{sub_total2_row}' -# worksheet.merge_cells(subtotal_merge_cells) -# top_left_subtotal2_cell_formula = f'A{sub_total2_row}' -# top_left_subtotal2_cell = worksheet[top_left_subtotal2_cell_formula] -# top_left_subtotal2_cell.value = "Sub Total 2" -# top_left_subtotal2_cell.fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") -# top_left_subtotal2_cell.font = Font(name="Arial", size=12, color="000000",bold=True) -# top_left_subtotal2_cell.alignment = Alignment(horizontal="center",vertical="center") -# sub_formula_row_celula = f'J{sub_total2_row}' -# worksheet[sub_formula_row_celula].fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") -# worksheet[sub_formula_row_celula].font = Font(name="Arial", size=12, color="000000",bold=True) - -# #subtotal12_Formula -# # sub_formula_row = size + 4 -# # sub_formula = f'=SOMA(J{sub_formula_row}:J{sub_formula_row})' -# # sub_formula_row_celula = f'J{sub_formula_row}' -# # worksheet[sub_formula_row_celula].fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") -# # worksheet[sub_formula_row_celula] = sub_formula - - -# #total1-2 -# total12_row = size + 5 -# total12_merge_cells = f'A{total12_row}:I{total12_row}' -# worksheet.merge_cells(total12_merge_cells) -# top_left_total12_cell_formula = f'A{total12_row}' -# top_left_total12_cell = worksheet[top_left_total12_cell_formula] -# top_left_total12_cell.value = "Total(1 -2)" -# top_left_total12_cell.fill = PatternFill(start_color=azul, end_color=azul,fill_type = "solid") -# top_left_total12_cell.font = Font(name="Arial", size=12, color="000000",bold=True) -# top_left_total12_cell.alignment = Alignment(horizontal="center",vertical="center") - -# #total_formula -# total_formula_row = size + 5 -# total_formulaa = f'=J{size}' -# total_formula_row_celula = f'J{total_formula_row}' -# worksheet[total_formula_row_celula].fill = PatternFill(start_color=azul, end_color=azul,fill_type = "solid") -# worksheet[total_formula_row_celula].font = Font(name="Arial", size=12, color="000000",bold=True) -# worksheet[total_formula_row_celula].number_format = 'R$ #,##0.00' -# worksheet.row_dimensions[total_formula_row].height = 30 -# worksheet[total_formula_row_celula] = total_formulaa - -# #brasilia -# brasilia_row = size + 7 -# brasilia_formula = f"='Receita x Despesa'!A42:J42" -# brasilia_merge_cells = f'A{brasilia_row}:I{brasilia_row}' -# worksheet.merge_cells(brasilia_merge_cells) -# top_left_brasilia_cell_formula = f'A{brasilia_row}' -# top_left_brasilia_cell = worksheet[top_left_brasilia_cell_formula] -# top_left_brasilia_cell.value = brasilia_formula -# top_left_brasilia_cell.alignment = Alignment(horizontal="center",vertical="center") - -# #DiretorFinanceiro -# diretor_row = size + 8 -# diretor_cargo_row = size + 9 -# diretor_cpf_row = size + 10 -# diretor_nome_formula = f"='Receita x Despesa'!A45" -# diretor_cargo_formula = f"='Receita x Despesa'!A46" -# diretor_cpf_formula = f"='Receita x Despesa'!A47" -# diretor_merge_cells = f'A{diretor_row}:D{diretor_row}' -# diretor_cargo_merge_cells = f'A{diretor_cargo_row}:D{diretor_cargo_row}' -# diretor_cpf_merge_cells = f'A{diretor_cpf_row}:D{diretor_cpf_row}' -# worksheet.merge_cells(diretor_merge_cells) -# worksheet.merge_cells(diretor_cargo_merge_cells) -# worksheet.merge_cells(diretor_cpf_merge_cells) -# top_left_diretor_cell_formula = f'A{diretor_row}' -# top_left_diretor_cell_cargo_formula = f'A{diretor_cargo_row}' -# top_left_diretor_cell_cpf_formula = f'A{diretor_cpf_row}' -# top_left_diretor_cell = worksheet[top_left_diretor_cell_formula] -# top_left_diretor_cell_cargo_formula = worksheet[top_left_diretor_cell_cargo_formula] -# top_left_diretor_cell_cpf_formula = worksheet[top_left_diretor_cell_cpf_formula] -# top_left_diretor_cell.value = diretor_nome_formula -# top_left_diretor_cell_cargo_formula.value = diretor_cargo_formula -# top_left_diretor_cell_cpf_formula.value = diretor_cpf_formula -# top_left_diretor_cell.alignment = Alignment(horizontal="center",vertical="center") -# top_left_diretor_cell.font = Font(bold=True) -# top_left_diretor_cell_cargo_formula.alignment = Alignment(horizontal="center",vertical="center") -# top_left_diretor_cell_cpf_formula.alignment = Alignment(horizontal="center",vertical="center") -# #Coordenadora -# coordenadora_row = size + 8 -# coordenadora_cargo_row = size + 9 -# coordenadora_cpf_row = size + 10 -# coordenadora_nome_formula = f"='Receita x Despesa'!H45" -# coordenadora_cargo_formula = f"='Receita x Despesa'!H46" -# coordenadora_cpf_formula = f"='Receita x Despesa'!H47" -# coordenadora_merge_cells = f'F{coordenadora_row}:J{coordenadora_row}' -# coordenadora_cargo_merge_cells = f'F{coordenadora_cargo_row}:J{coordenadora_cargo_row}' -# coordenadora_cpf_merge_cells = f'F{coordenadora_cpf_row}:J{coordenadora_cpf_row}' -# worksheet.merge_cells(coordenadora_merge_cells) -# worksheet.merge_cells(coordenadora_cargo_merge_cells) -# worksheet.merge_cells(coordenadora_cpf_merge_cells) -# top_left_coordenadora_cell_formula = f'F{coordenadora_row}' -# top_left_coordenadora_cell_cargo_formula = f'F{coordenadora_cargo_row}' -# top_left_coordenadora_cell_cpf_formula = f'F{coordenadora_cpf_row}' -# top_left_coordenadora_cell = worksheet[top_left_coordenadora_cell_formula] -# top_left_coordenadora_cell_cargo_formula = worksheet[top_left_coordenadora_cell_cargo_formula] -# top_left_coordenadora_cell_cpf_formula = worksheet[top_left_coordenadora_cell_cpf_formula] -# top_left_coordenadora_cell.value = coordenadora_nome_formula -# top_left_coordenadora_cell_cargo_formula.value = coordenadora_cargo_formula -# top_left_coordenadora_cell_cpf_formula.value = coordenadora_cpf_formula -# top_left_coordenadora_cell.alignment = Alignment(horizontal="center",vertical="center") -# top_left_coordenadora_cell.font= Font(bold = True) -# top_left_coordenadora_cell_cargo_formula.alignment = Alignment(horizontal="center",vertical="center") -# top_left_coordenadora_cell_cpf_formula.alignment = Alignment(horizontal="center",vertical="center") - -# #nome dos indices - -# azul_claro = '1c89b8' -# row_style_cabecario_obrig = NamedStyle(name='row_style_cabecario_obrig') -# row_style_cabecario_obrig.font = Font(name="Arial", size=12, color="FFFFFF",bold=True) -# row_style_cabecario_obrig.fill = openpyxl.styles.PatternFill(start_color=azul_claro, end_color=azul_claro, fill_type='solid') -# row_style_cabecario_obrig.alignment = Alignment(horizontal="center",vertical="center",wrap_text = True) -# worksheet.row_dimensions[9].height = 50 -# worksheet.column_dimensions['b'].width = 35 -# worksheet.column_dimensions['c'].width = 20 -# worksheet.column_dimensions['d'].width = 35 -# worksheet.column_dimensions['e'].width = 60 -# worksheet.column_dimensions['f'].width = 35 -# worksheet.column_dimensions['g'].width = 30 -# worksheet.column_dimensions['h'].width = 30 -# worksheet.column_dimensions['i'].width = 30 -# worksheet.column_dimensions['j'].width = 30 -# worksheet.column_dimensions['e'].height = 20 - - -# linha_number = 9 -# # Apply the style to each cell in the row -# for cell in worksheet[linha_number]: -# cell.style = row_style_cabecario_obrig - -# valores = ["ITEM","NOME","CNPJ/CPF",'ESPECIFICAÇÃO DA DESPESA','DESCRIÇÃO',"Nº DO RECIBO OU EQUIVALENTE","DATA DE EMISSÃO",'CHEQUE / ORDEM BANCÁRIA','DATA DE PGTO','Valor'] -# col = 1 -# for a,b in enumerate(valores): -# worksheet.cell(row=linha_number, column=col, value=b) -# col = col + 1 - - -# #cabecario relação de pagamentos - outro servicoes de terceiros -# worksheet.merge_cells('A1:J2') -# worksheet['A1'] = f'R E L A Ç Ã O D E P A G A M E N T O S - P A S S A G E N S E D E S P E S A S C O M L O C O M O Ç Ã O' -# worksheet['A1'].font = Font(name="Arial", size=12, color="FFFFFF",bold=True) -# worksheet['A1'].alignment = Alignment(horizontal="center",vertical="center") -# worksheet['A1'].fill = PatternFill(start_color=azul_claro, end_color=azul_claro,fill_type = "solid") -# worksheet.merge_cells('A3:I3') -# worksheet['A3'] = "='Receita x Despesa'!A3:J3" -# worksheet['A3'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A3'].alignment = Alignment(horizontal="left",vertical="center") - -# worksheet.merge_cells('A4:I4') -# worksheet['A4'] = "='Receita x Despesa'!A4:J4" -# worksheet['A4'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A4'].alignment = Alignment(horizontal="left",vertical="center") - -# worksheet.merge_cells('A5:I5') -# worksheet['A5'] = "='Receita x Despesa'!A5:J5" -# worksheet['A5'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A5'].alignment = Alignment(horizontal="left",vertical="center") - -# worksheet.merge_cells('A6:I6') -# worksheet['A6'] = "='Receita x Despesa'!A6:J6" -# worksheet['A6'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A6'].alignment = Alignment(horizontal="left",vertical="center") - -# worksheet.merge_cells('A7:I7') -# worksheet['A7'] = "='Receita x Despesa'!A7:J7" -# worksheet['A7'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A7'].alignment = Alignment(horizontal="left",vertical="center") - -# altura = 45 -# linha_inicio = 9 -# for row_number in range(linha_inicio, linha_inicio + tamanho+1): -# worksheet.row_dimensions[row_number].height = altura - - -# # Save the workbook to a file -# workbook.save(tabela) -# workbook.close() - -# def estilo_diarias(tabela,tamanho): -# caminho = pegar_caminho(tabela) -# workbook = openpyxl.load_workbook(caminho) -# worksheet = workbook['Diárias'] -# size = tamanho + 10 -# cinza = "d9d9d9" -# cinza_escuro = "bfbfbf" -# azul = "336394" -# azul_claro = '1c8cbc' - -# borda = Border(right=Side(border_style="medium")) -# worksheet.sheet_view.showGridLines = False -# # -# for row in worksheet.iter_rows(min_row=1, max_row=size+11,min_col=10,max_col=10): -# for cell in row: -# cell.border = borda - - -# worksheet.column_dimensions['a'].width = 25 -# worksheet.column_dimensions['b'].width = 25 -# worksheet.column_dimensions['c'].width = 35 -# worksheet.column_dimensions['d'].width = 40#descrição -# worksheet.column_dimensions['e'].width = 20 #n do recibo ou qeuivalente -# worksheet.column_dimensions['f'].width = 25 #data de emissão -# worksheet.column_dimensions['g'].width = 25 #data de emissão -# worksheet.column_dimensions['h'].width = 25 #data de emissão -# worksheet.column_dimensions['i'].width = 25 #data de emissão -# worksheet.column_dimensions['j'].width = 25 #data de emissão - - -# #cabecario relação de pagamentos - outro servicoes de terceiros -# worksheet.merge_cells('A1:J2') -# worksheet['A1'] = f'R E L A Ç Ã O D E P A G A M E N T O S - DIÁRIAS' -# worksheet['A1'].font = Font(name="Arial", size=12, color="FFFFFF",bold=True) -# worksheet['A1'].alignment = Alignment(horizontal="center",vertical="center") -# worksheet['A1'].fill = PatternFill(start_color=azul_claro, end_color=azul_claro,fill_type = "solid") - -# worksheet.merge_cells('A3:F3') -# worksheet['A3'] = "='Receita x Despesa'!A3:J3" -# worksheet['A3'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A3'].alignment = Alignment(horizontal="left",vertical="center") - -# worksheet.merge_cells('A4:F4') -# worksheet['A4'] = "='Receita x Despesa'!A4:J4" -# worksheet['A4'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A4'].alignment = Alignment(horizontal="left",vertical="center") - -# worksheet.merge_cells('A5:F5') -# worksheet['A5'] = "='Receita x Despesa'!A5:J5" -# worksheet['A5'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A5'].alignment = Alignment(horizontal="left",vertical="center") - -# worksheet.merge_cells('A6:F6') -# worksheet['A6'] = "='Receita x Despesa'!A6:J6" -# worksheet['A6'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A6'].alignment = Alignment(horizontal="left",vertical="center") - -# worksheet.merge_cells('A7:F7') -# worksheet['A7'] = "='Receita x Despesa'!A7:J7" -# worksheet['A7'].font = Font(name="Arial", size=12, color="000000") -# worksheet['A7'].alignment = Alignment(horizontal="left",vertical="center") - -# #colunas azul cabecario -# row_style_diaria = NamedStyle(name='row_style_diaria') -# row_style_diaria.font = Font(name="Arial", size=12, color="FFFFFF",bold=True) -# row_style_diaria.fill = openpyxl.styles.PatternFill(start_color=azul_claro, end_color=azul_claro, fill_type='solid') -# row_style_diaria.alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) -# row_style_diaria.border = Border(top=Side(border_style="medium") ,bottom=Side(border_style="thin") ) -# row_style_diaria.height = 20 -# linha_number = 9 -# for row in worksheet.iter_rows(min_row=linha_number, max_row=linha_number, min_col=1, max_col=10): -# for cell in row: -# cell.style = row_style_diaria -# if cell.column == 10: -# cell.border = Border(top=Side(border_style="medium") ,bottom=Side(border_style="thin"), right=Side(border_style="medium") ) - -# valores = ["ITEM","NOME","CNPJ/CPF",'ESPECIFICAÇÃO DA DESPESA','DESCRIÇÃO',"Nº DO RECIBO OU EQUIVALENTE","DATA DE EMISSÃO",'CHEQUE / ORDEM BANCÁRIA','DATA DE PGTO','Valor'] -# col = 1 -# for a,b in enumerate(valores): -# worksheet.cell(row=linha_number, column=col, value=b) -# col = col + 1 - - -# #Aumentar a altura das celulas -# for row in worksheet.iter_rows(min_row=10, max_row=size, min_col=1, max_col=10): -# worksheet.row_dimensions[row[0].row].height = 35 - -# custom_number_format_diaria = [] -# # MASCARA R$ -# if custom_number_format_diaria!= False: -# custom_number_format_diaria = NamedStyle(name='custom_number_format_diaria') -# custom_number_format_diaria.number_format = 'R$ #,##0.00' -# custom_number_format_diaria.font = Font(name="Arial", size=12, color="000000") -# custom_number_format_diaria.alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) - -# #estilocinzasimcinzanao -# value_to_stop = size -# start_row = 10 -# # -# for row in range(start_row,size+1): -# cell = worksheet[f'J{row}'] -# cell.style = custom_number_format_diaria - -# for rows in worksheet.iter_rows(min_row=10, max_row=size, min_col=1, max_col=10): -# for cell in rows: -# if cell.row % 2: -# cell.fill = PatternFill(start_color=cinza, end_color=cinza, -# fill_type = "solid") -# if cell.column == 10: -# cell.font = Font(name="Arial", size=12, color="000000") -# cell.alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) -# cell.border = Border(top=Side(border_style="hair") ,left = Side(border_style="hair") ,right =Side(border_style="medium") ,bottom=Side(border_style="hair") ) -# else: -# cell.font = Font(name="Arial", size=12, color="000000") -# cell.alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) -# cell.border = Border(top=Side(border_style="hair") ,left = Side(border_style="hair") ,right =Side(border_style="hair") ,bottom=Side(border_style="hair") ) - - -# #subtotal -# stringAfinarCelula =size+2 -# worksheet.row_dimensions[size+2].height = 6 -# celulas_mergidas_subtotal = f"A{size+2}:I{size+2}" -# worksheet.merge_cells(celulas_mergidas_subtotal) -# left_celula_cell = f"A{size+2}" -# top_left_cell = worksheet[left_celula_cell] -# top_left_cell.value = "Sub Total1" -# top_left_cell.fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") -# top_left_cell.font = Font(name="Arial", size=12, color="000000",bold=True) -# top_left_cell.alignment = Alignment(horizontal="center",vertical="center") -# top_left_cell.border = Border(top=Side(border_style="thin") ,left = Side(border_style="medium") ,right =Side(border_style="thin") ,bottom=Side(border_style="medium") ) - -# worksheet.row_dimensions[size+2].height = 56.25 - -# # FORMULATOTAL -# formula = f"=SUM(J10:J{size})" -# celula = f'J{size+2}' -# worksheet[celula] = formula -# worksheet[celula].fill = PatternFill(start_color=cinza, end_color=cinza,fill_type = "solid") -# worksheet[celula].font = Font(name="Arial", size=12, color="000000",bold=True) -# worksheet[celula].border = Border(top=Side(border_style="thin") ,left = Side(border_style="thin") ,right =Side(border_style="medium") ,bottom=Side(border_style="medium") ) -# worksheet[celula].number_format = 'R$ #,##0.00' -# #restituições creditadas -# restituicoes = size + 3 -# celula_restituicoes=f'A{restituicoes}' -# worksheet[celula_restituicoes].value = "RESTITUIÇÕES CREDITADAS" -# worksheet[celula_restituicoes].font = Font(name="Arial", size=12, color="000000",bold=True) -# worksheet.row_dimensions[restituicoes].height = 30 - -# #estilo colunas restitucoes creditadas -# row_style_diaria_append = NamedStyle(name='row_style_diaria_append') -# row_style_diaria_append.font = Font(name="Arial", size=12, color="FFFFFF",bold=True) -# row_style_diaria_append.fill = openpyxl.styles.PatternFill(start_color=azul_claro, end_color=azul_claro, fill_type='solid') -# row_style_diaria_append.alignment = Alignment(horizontal="center",vertical="center",wrap_text=True) -# row_style_diaria_append.height = 30 -# row_style_diaria_append.border = Border(top=Side(border_style="medium") ,bottom=Side(border_style="medium") ) - - -# row_number = size + 4 - -# for column in range(1, 11): -# cell = worksheet.cell(row=row_number, column=column) -# cell.style = row_style_diaria_append -# if cell.column == 10: -# cell.border = Border(top=Side(border_style="medium") ,right =Side(border_style="medium") ,bottom=Side(border_style="medium") ) - - - -# values = ["Item","Restituidor","CNPJ/CPF",'Descrição',"Cheque equivalente","Data do Cheque",'Nº do Depósito','Data da Devolução','Valor'] -# coluna = 1 -# for a,b in enumerate(values): -# worksheet.cell(row=row_number, column=coluna, value=b) -# if coluna == 4: -# coluna = coluna + 1 -# coluna = coluna + 1 - - -# merge_formula = f'D{row_number}:E{row_number}' -# worksheet.merge_cells(merge_formula) - - -# #subtotal2 -# sub_total2_row = size + 5 -# subtotal_merge_cells= f'A{sub_total2_row}:I{sub_total2_row}' -# worksheet.merge_cells(subtotal_merge_cells) -# top_left_subtotal2_cell_formula = f'A{sub_total2_row}' -# top_left_subtotal2_cell = worksheet[top_left_subtotal2_cell_formula] -# top_left_subtotal2_cell.value = "Sub Total 2" -# top_left_subtotal2_cell.fill = PatternFill(start_color=cinza_escuro, end_color=cinza_escuro,fill_type = "solid") -# top_left_subtotal2_cell.font = Font(name="Arial", size=12, color="000000",bold=True) -# top_left_subtotal2_cell.alignment = Alignment(horizontal="center",vertical="center") -# top_left_subtotal2_cell.border = Border(top=Side(border_style="hair") ,left = Side(border_style="medium") ,right =Side(border_style="hair") ,bottom=Side(border_style="medium") ) - -# sub_formula_row_celula = f'J{sub_total2_row}' -# worksheet[sub_formula_row_celula].fill = PatternFill(start_color=cinza_escuro, end_color=cinza_escuro,fill_type = "solid") -# worksheet[sub_formula_row_celula].font = Font(name="Arial", size=12, color="000000",bold=True) -# worksheet[sub_formula_row_celula].number_format = 'R$ #,##0.00' -# worksheet[sub_formula_row_celula].border = Border(top=Side(border_style="thin") ,left = Side(border_style="thin") ,right =Side(border_style="medium") ,bottom=Side(border_style="medium") ) - -# #total1-2 -# total12_row = size + 6 -# total12_merge_cells = f'A{total12_row}:I{total12_row}' -# worksheet.merge_cells(total12_merge_cells) -# top_left_total12_cell_formula = f'A{total12_row}' -# top_left_total12_cell = worksheet[top_left_total12_cell_formula] -# top_left_total12_cell.value = "Total(1-2)" -# top_left_total12_cell.fill = PatternFill(start_color=azul_claro, end_color=azul_claro,fill_type = "solid") -# top_left_total12_cell.font = Font(name="Arial", size=12, color="000000",bold=True) -# top_left_total12_cell.alignment = Alignment(horizontal="center",vertical="center") -# top_left_total12_cell.border = Border(top=Side(border_style="medium") ,left = Side(border_style="medium") ,bottom=Side(border_style="medium") ) - - -# #total_formula -# total_formula_row = size + 6 -# total_formulaa = f'=J{size}' -# total_formula_row_celula = f'J{total_formula_row}' -# worksheet[total_formula_row_celula].fill = PatternFill(start_color=azul_claro, end_color=azul_claro,fill_type = "solid") -# worksheet[total_formula_row_celula].font = Font(name="Arial", size=12, color="000000",bold=True) -# worksheet[total_formula_row_celula].number_format = 'R$ #,##0.00' -# worksheet[total_formula_row_celula].border = Border(top=Side(border_style="medium") ,bottom=Side(border_style="medium"),right=Side(border_style="medium") ) - -# worksheet.row_dimensions[total_formula_row].height = 30 -# worksheet[total_formula_row_celula] = total_formulaa - - -# #brasilia -# brasilia_row = size + 7 -# brasilia_formula = f"='Receita x Despesa'!A42:J42" -# brasilia_merge_cells = f'A{brasilia_row}:I{brasilia_row}' -# worksheet.merge_cells(brasilia_merge_cells) -# top_left_brasilia_cell_formula = f'A{brasilia_row}' -# top_left_brasilia_cell = worksheet[top_left_brasilia_cell_formula] -# top_left_brasilia_cell.value = brasilia_formula -# top_left_brasilia_cell.alignment = Alignment(horizontal="center",vertical="center") - -# #DiretorFinanceiro -# diretor_row = size + 8 -# diretor_cargo_row = size + 9 -# diretor_cpf_row = size + 10 -# diretor_nome_formula = f"='Receita x Despesa'!A45" -# diretor_cargo_formula = f"='Receita x Despesa'!A46" -# diretor_cpf_formula = f"='Receita x Despesa'!A47" -# diretor_merge_cells = f'A{diretor_row}:D{diretor_row}' -# diretor_cargo_merge_cells = f'A{diretor_cargo_row}:D{diretor_cargo_row}' -# diretor_cpf_merge_cells = f'A{diretor_cpf_row}:D{diretor_cpf_row}' -# worksheet.merge_cells(diretor_merge_cells) -# worksheet.merge_cells(diretor_cargo_merge_cells) -# worksheet.merge_cells(diretor_cpf_merge_cells) -# top_left_diretor_cell_formula = f'A{diretor_row}' -# top_left_diretor_cell_cargo_formula = f'A{diretor_cargo_row}' -# top_left_diretor_cell_cpf_formula = f'A{diretor_cpf_row}' -# top_left_diretor_cell = worksheet[top_left_diretor_cell_formula] -# top_left_diretor_cell_cargo_formula = worksheet[top_left_diretor_cell_cargo_formula] -# top_left_diretor_cell_cpf_formula = worksheet[top_left_diretor_cell_cpf_formula] -# top_left_diretor_cell.value = diretor_nome_formula -# top_left_diretor_cell_cargo_formula.value = diretor_cargo_formula -# top_left_diretor_cell_cpf_formula.value = diretor_cpf_formula -# top_left_diretor_cell.alignment = Alignment(horizontal="center",vertical="center") -# top_left_diretor_cell.font = Font(bold=True) -# top_left_diretor_cell_cargo_formula.alignment = Alignment(horizontal="center",vertical="center") -# top_left_diretor_cell_cpf_formula.alignment = Alignment(horizontal="center",vertical="center") -# #Coordenadora -# coordenadora_row = size + 8 -# coordenadora_cargo_row = size + 9 -# coordenadora_cpf_row = size + 10 -# coordenadora_nome_formula = f"='Receita x Despesa'!H45" -# coordenadora_cargo_formula = f"='Receita x Despesa'!H46" -# coordenadora_cpf_formula = f"='Receita x Despesa'!H47" -# coordenadora_merge_cells = f'F{coordenadora_row}:J{coordenadora_row}' -# coordenadora_cargo_merge_cells = f'F{coordenadora_cargo_row}:J{coordenadora_cargo_row}' -# coordenadora_cpf_merge_cells = f'F{coordenadora_cpf_row}:J{coordenadora_cpf_row}' -# worksheet.merge_cells(coordenadora_merge_cells) -# worksheet.merge_cells(coordenadora_cargo_merge_cells) -# worksheet.merge_cells(coordenadora_cpf_merge_cells) -# top_left_coordenadora_cell_formula = f'F{coordenadora_row}' -# top_left_coordenadora_cell_cargo_formula = f'F{coordenadora_cargo_row}' -# top_left_coordenadora_cell_cpf_formula = f'F{coordenadora_cpf_row}' -# top_left_coordenadora_cell = worksheet[top_left_coordenadora_cell_formula] -# top_left_coordenadora_cell_cargo_formula = worksheet[top_left_coordenadora_cell_cargo_formula] -# top_left_coordenadora_cell_cpf_formula = worksheet[top_left_coordenadora_cell_cpf_formula] -# top_left_coordenadora_cell.value = coordenadora_nome_formula -# top_left_coordenadora_cell_cargo_formula.value = coordenadora_cargo_formula -# top_left_coordenadora_cell_cpf_formula.value = coordenadora_cpf_formula -# top_left_coordenadora_cell.alignment = Alignment(horizontal="center",vertical="center") -# top_left_coordenadora_cell.font= Font(bold = True) -# top_left_coordenadora_cell_cargo_formula.alignment = Alignment(horizontal="center",vertical="center") -# top_left_coordenadora_cell_cpf_formula.alignment = Alignment(horizontal="center",vertical="center") - - -# # borda = Border(right=Side(border_style="medium")) -# # worksheet.sheet_view.showGridLines = False -# # # -# # for row in worksheet.iter_rows(min_row=1, max_row=coordenadora_cpf_row+1,min_col=10,max_col=10): -# # for cell in row: -# # cell.border = borda - - - -# for row in worksheet.iter_rows(min_row=coordenadora_cpf_row+1, max_row=coordenadora_cpf_row+1,min_col=1,max_col=10): -# for cell in row: -# if cell.column == 10: -# cell.border = Border(top=Side(border_style="none") ,left = Side(border_style="none") ,right =Side(border_style="medium") ,bottom=Side(border_style="medium") ) -# else: -# cell.border = Border(top=Side(border_style="none") ,left = Side(border_style="none") ,right =Side(border_style="none") ,bottom=Side(border_style="medium") ) - -# workbook.save(tabela) -# workbook.close() - - diff --git a/project/app/estilo_fundep.py b/project/app/estilo_fundep.py deleted file mode 100644 index 42bf8558..00000000 --- a/project/app/estilo_fundep.py +++ /dev/null @@ -1,82 +0,0 @@ -import openpyxl -from openpyxl.styles import Font, PatternFill, Alignment,NamedStyle,Border, Side -import os -from datetime import datetime,date - -def pegar_caminho(nome_arquivo): - - # Obter o caminho absoluto do arquivo Python em execução - caminho_script = os.path.abspath(__file__) - - # Obter o diretório da pasta onde o script está localizado - pasta_script = os.path.dirname(caminho_script) - - # Combinar o caminho da pasta com o nome do arquivo Excel - caminho = os.path.join(pasta_script, nome_arquivo) - - return caminho -def estilo_fundep(tabela,tamanho): - - # caminho = pegar_caminho(tabela) - workbook = openpyxl.load_workbook(tabela) - worksheet = workbook['Relação de despesas'] - ######periodo de prestação de contas - - - #corpo - size = tamanho + 6 - print(size) - - custom_number_format = [] - # MASCARA R$ - if custom_number_format!= False: - custom_number_format = NamedStyle(name='custom_number_format') - custom_number_format.number_format = 'R$ #,##0.00' - custom_number_format.font = Font(name="Calibri", size=11, color="000000") - custom_number_format.alignment = Alignment(horizontal="general",vertical="bottom",wrap_text=True) - - value_to_stop = size - start_row = 7 - for row in range(start_row,size+2): - cell = worksheet[f'J{row}'] - cell.style = custom_number_format - - #Bordas - for rows in worksheet.iter_rows(min_row=7, max_row=size, min_col=1, max_col=10): - for cell in rows: - cell.font = Font(name="Calibri", size=11, color="000000") - cell.alignment = Alignment(horizontal="general",vertical="bottom",wrap_text=True) - cell.border = Border(top=Side(border_style="thin") ,left = Side(border_style="thin") ,right =Side(border_style="thin") ,bottom=Side(border_style="thin") ) - - - #total despesas nesta - total_despesa_string_LOCATION_merge = f'A{size+1}:I{size+1}' - worksheet.merge_cells(total_despesa_string_LOCATION_merge) - total_despesa_string_LOCATION = f'A{size+1}' - worksheet[total_despesa_string_LOCATION] = f'TOTAL DE DESPESAS NESTA' - worksheet[total_despesa_string_LOCATION].alignment = Alignment(horizontal="right",vertical="center",wrap_text = True) - worksheet[total_despesa_string_LOCATION].fill= PatternFill(start_color='d9d9d9',end_color='d9d9d9',fill_type='solid') - - #Total Nessa - formula = f"=SUM(J7:J{size})" - formulat_total_location = f'J{size+1}' - worksheet[formulat_total_location]= formula = f"=SUM(J10:J{size-1})" - worksheet[formulat_total_location].font=Font(bold=True) - - #total de despesas Acumuladas - total_despesa_string_LOCATION_merge_acumuladas = f'A{size+2}:I{size+2}' - worksheet.merge_cells(total_despesa_string_LOCATION_merge_acumuladas) - total_despesa_string_LOCATION_acumuladas = f'A{size+2}' - worksheet[total_despesa_string_LOCATION_acumuladas] = f'TOTAL DE DESPESAS ACUMULADAS' - worksheet[total_despesa_string_LOCATION_acumuladas].alignment = Alignment(horizontal="right",vertical="center",wrap_text = True) - worksheet[total_despesa_string_LOCATION_acumuladas].fill= PatternFill(start_color='d9d9d9',end_color='d9d9d9',fill_type='solid') - - #Total de despesas Acumuladas - - total_despesa_string_LOCATION_acumuladas_valor = f'J{size+2}' - worksheet[total_despesa_string_LOCATION_acumuladas_valor].font=Font(bold=True) - - workbook.save(tabela) - workbook.close() - - diff --git a/project/app/migrations/0001_initial.py b/project/app/migrations/0001_initial.py deleted file mode 100644 index de25f519..00000000 --- a/project/app/migrations/0001_initial.py +++ /dev/null @@ -1,124 +0,0 @@ -# Generated by Django 4.2.5 on 2023-10-27 11:29 - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - ] - - operations = [ - migrations.CreateModel( - name='Export', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('data_export', models.DateTimeField(auto_now_add=True)), - ('formato', models.CharField(max_length=200)), - ('nome_template', models.CharField(max_length=200)), - ('nome_usuario', models.CharField(max_length=200)), - ('id_projeto', models.CharField(max_length=50)), - ], - ), - migrations.CreateModel( - name='Mapeamento', - fields=[ - ('id_mapeamento', models.IntegerField(primary_key=True, serialize=False)), - ('codigo', models.CharField(max_length=200)), - ('nome', models.CharField(max_length=200)), - ('saldo', models.CharField(max_length=200)), - ('data_assinatura', models.CharField(max_length=200)), - ('data_vigencia', models.CharField(max_length=200)), - ('data_encerramento', models.CharField(max_length=200)), - ('tipo_contrato', models.CharField(max_length=200)), - ('instituicao_executora', models.CharField(max_length=200)), - ('processo', models.CharField(max_length=200)), - ('subprocesso', models.CharField(max_length=200)), - ('cod_proposta', models.CharField(max_length=200)), - ('proposta', models.CharField(max_length=200)), - ('objetivos', models.CharField(max_length=200)), - ('valor_aprovado', models.CharField(max_length=200)), - ('nome_tp_controle_saldo', models.CharField(max_length=200)), - ('grupo_gestores', models.CharField(max_length=200)), - ('gestor_resp', models.CharField(max_length=200)), - ('coordenador', models.CharField(max_length=200)), - ('procedimento_compra', models.CharField(max_length=200)), - ('tab_frete', models.CharField(max_length=200)), - ('tab_diarias', models.CharField(max_length=200)), - ('custo_op', models.CharField(max_length=200)), - ('nome_financiador', models.CharField(max_length=200)), - ('departamento', models.CharField(max_length=200)), - ('situacao', models.CharField(max_length=200)), - ('banco', models.CharField(max_length=200)), - ('agencia_bancaria', models.CharField(max_length=200)), - ('conta_bancaria', models.CharField(max_length=200)), - ('centro_custo', models.CharField(max_length=200)), - ('conta_caixa', models.CharField(max_length=200)), - ('categoria_projeto', models.CharField(max_length=200)), - ('cod_convenio_conta', models.CharField(max_length=200)), - ('cod_status', models.CharField(max_length=200)), - ('ind_sub_projeto', models.CharField(max_length=200)), - ('tipo_custo_op', models.CharField(max_length=200)), - ('projeto_mae', models.CharField(max_length=200)), - ('id_coordenador', models.CharField(max_length=200)), - ('id_financiador', models.CharField(max_length=200)), - ('id_instituicao', models.CharField(max_length=200)), - ('id_departamento', models.CharField(max_length=200)), - ('nome_instituicao', models.CharField(max_length=200)), - ('id_instituicao_executora', models.CharField(max_length=200)), - ('id_tipo', models.CharField(max_length=201)), - ], - ), - migrations.CreateModel( - name='MapeamentoConveniar', - fields=[ - ('id_mapeamento', models.IntegerField(primary_key=True, serialize=False)), - ('id_favorecido', models.CharField(max_length=200)), - ('nome_favorecido', models.CharField(max_length=200)), - ('cnpj_favorecido', models.CharField(max_length=200)), - ('tipo_favorecido', models.CharField(max_length=200)), - ('valor_lancado', models.CharField(max_length=200)), - ('valor_pago', models.CharField(max_length=200)), - ('data_vencimento', models.CharField(max_length=200)), - ('id_status', models.CharField(max_length=200)), - ('status_lancamento', models.CharField(max_length=200)), - ('flag_receita', models.CharField(max_length=200)), - ('data_baixa', models.CharField(max_length=200)), - ('his_lancamento', models.CharField(max_length=200)), - ('data_emissao', models.CharField(max_length=200)), - ('num_doc_fin', models.CharField(max_length=200)), - ('data_cria', models.CharField(max_length=200)), - ('data_pagamento', models.CharField(max_length=200)), - ('id_lancamento', models.CharField(max_length=200)), - ('id_projeto', models.CharField(max_length=200)), - ('id_rubrica', models.CharField(max_length=200)), - ('nome_rubrica', models.CharField(max_length=200)), - ('tipo_movimento', models.CharField(max_length=200)), - ('id_tp_lancamento', models.CharField(max_length=200)), - ('tipo_lancamento', models.CharField(max_length=200)), - ], - ), - migrations.CreateModel( - name='Report', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('titulo', models.CharField(max_length=200)), - ('descricao', models.CharField(max_length=200)), - ('tipo_erro', models.CharField(choices=[('erro1', 'Falta de informação no projeto'), ('erro2', 'Campo preenchido incorretamente')], max_length=20)), - ('id_projeto', models.CharField(max_length=50)), - ('nome_usuario', models.CharField(max_length=200)), - ], - ), - migrations.CreateModel( - name='Template', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('nome_template', models.CharField(max_length=200)), - ('endereco_template', models.CharField(max_length=200)), - ('mapeamento', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='app.mapeamento')), - ], - ), - ] diff --git a/project/app/migrations/0002_rename_agencia_bancaria_mapeamento_agencia_bancaria_and_more.py b/project/app/migrations/0002_rename_agencia_bancaria_mapeamento_agencia_bancaria_and_more.py deleted file mode 100644 index 7f555884..00000000 --- a/project/app/migrations/0002_rename_agencia_bancaria_mapeamento_agencia_bancaria_and_more.py +++ /dev/null @@ -1,17 +0,0 @@ -# Generated by Django 4.2.5 on 2023-10-27 11:30 - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('app', '0001_initial'), - ] - - operations = [ - migrations.RenameModel( - old_name='MapeamentoConveniar', - new_name='Lancamento', - ), - ] diff --git a/project/app/migrations/0003_alter_mapeamento_id_tipo.py b/project/app/migrations/0003_alter_mapeamento_id_tipo.py deleted file mode 100644 index 617f6ce0..00000000 --- a/project/app/migrations/0003_alter_mapeamento_id_tipo.py +++ /dev/null @@ -1,18 +0,0 @@ -# Generated by Django 4.2.7 on 2023-11-13 23:55 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('app', '0002_rename_agencia_bancaria_mapeamento_agencia_bancaria_and_more'), - ] - - operations = [ - migrations.AlterField( - model_name='mapeamento', - name='id_tipo', - field=models.CharField(max_length=200), - ), - ] diff --git a/project/app/migrations/__init__.py b/project/app/migrations/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/project/app/migrations/__pycache__/0001_initial.cpython-38.pyc b/project/app/migrations/__pycache__/0001_initial.cpython-38.pyc deleted file mode 100644 index f762d35b2c7ca04fad9699dfd19dfbb137a23f10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3528 zcmb`KTXWk)6o6&L_gkFwLRu&dcMK&?TFSLR)1)b-q?9(LU@l^<-6-oyTCtK$(pPxR zFW`{}hTqW_cxPZ{-xyxVU+6FlXIFNtGxUkU9^3n^&h9yTZjx`eT6GIv=YG4%em`kh ze`v_RiU1ek6EDFRwP?Y&f6@8;iQ2cUZs`El zSY2Dy1MW$Za1q9;90=?tq3 ztF!>`A}!JKesSBT6_~5ROm)8iR0FEhI&BzgB5EOO8=B1|y)y0W+eXVAorfz8qvOcF z4SOC%>y9Bhj_46Y3y4l2I*I5}M2{glh3Iiarx7h8dIHgth@L|9G@@q^J&Wi$M9(AY zB6&_fz-Nk=p-6~pl3DFv&bwrmDZ6LaW=v_ot5xs}#8lv|RZ6dmk=mSJI5PgU!tHw#) z-bB}KA=*N88_`F3@)i!gd*`8@&!(T#FH9dm9fP87lItJNLv`U! z^d-_ofSRl|Y!55L*d#RM-IS@?=A?~osq*FBNXSIloNg%l>Uy`R znj}qx<4Q&nMpYw{JRowK4XZgyL(5 zP^v21LIxxe2R}huhO6~}>^eRRy<|tVLJ=@0VL{}BI@L6o#wn3ps5+-kB*l=yTHV&+ z7EmbsIEyMl60z+zCQN-^=NP_xEl6309w zNh*nInTZkiSm<)1=CUJ&E|YSiBHM1uaf^C8b46G$&;A~3<{%+_Y<=|}+tE!vAhK`6- z$0*(g&uCZZjhd82L?&ZLRAV?cfn%%E07Qi9kj!h2M!lPAYd4W8H(iL51n+4b+DLuX zC43h=?Lz210jnm_R`c3fATwei&pb|4UC)8^eb>h+j8(TWM2QsG(p$0(-3Jgb(@SJbS~G4 zm^nK);fB%B$xE2S?ijv?-iFby0kT2 zWX82Vp|&|=AVy=eJKB#?e(kK0$Zb}>$xQDm>mu|8n89K&LZ@ZT$U@}`=ouybyOJ(K zKsJbRN%CJ#QgphTX_#0 zII8YA@VJ{o18`K+alT54ulpcSg@-(WmTU@CtAx0NF}60Qv1WSsrhZVCGkT_ZiF>Qi zr8ac?RIPQWyDji{hPAaFBC}!hY6um{##G;cROMcH4ekJCIwT>anN0_(YRrYFaaCDc zy|uQwep%H;#KuqPKU#7ZbegXRcX~U}dVA?04U@FD&f>d?hZ~44)gGbEg zA=m=#n7KU@5I5<8pL)~B{@(KP@(L8IIrCDqC-wh|3Vh;U;j3yF?P9T5uG* z{=3-FbDhb||NHw3?7#9K_Wu*sotoNeEIza~vwz_)konG>v0H}pHm+Zy0~6jXq9+a~ mm$E-ZOOv3;SbJalXBvlWvE~TC7v3&in(R^DvVD diff --git a/project/app/migrations/__pycache__/0002_rename_agencia_bancaria_mapeamento_agencia_bancaria_and_more.cpython-38.pyc b/project/app/migrations/__pycache__/0002_rename_agencia_bancaria_mapeamento_agencia_bancaria_and_more.cpython-38.pyc deleted file mode 100644 index 1f16a19d3fa215042f70169b31dfdfbc4ceef95e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 589 zcmZWlO>fjN5cNlPNy8Qu@ejD=QZFEG2qA&s(ydStm%Uit%xLQ+v5k{}IMXBi5PlJo zublV`94O-~&>}|i=)D=wv){ZvJggYSgRf_J!WsLP$@M6RJfYLyr34Ik%R0X1oV{Qm zKwdDA$amtSTni{(v3mBM?y;JusZkC0i_$-Le zVMe0!bg=rPR*NJ}2x+lgF7IjU>|jls?yO8e)1e#uQ}5oPvnHnM#JFZ(q^Z)kpdHav zI($E&)A~j#^#rv}mDZhyu|>iQt>2EO&DS#n4Cnw|W3i8dtfZS~n42pP*rv({{O$D% zi$~O-(vMH-+;^zP&FF?vJ;VOZ;Db8H&Nz>)T0Yb-ZNSz#d~Tf?uu&oU9X5j^hw5s9 zioD*}ae7gkZT^SRn`|x;=>A&&zh@kfsffqnLzMKdIi3C%rBaH^Vped$#n0k$>Ydgy i9l*}Gtv`m%WOJ%t8QP=UG@i;w`&~WGs(oI`LjD5z=%gP2 diff --git a/project/app/migrations/__pycache__/0003_alter_mapeamento_id_tipo.cpython-38.pyc b/project/app/migrations/__pycache__/0003_alter_mapeamento_id_tipo.cpython-38.pyc deleted file mode 100644 index 0b5eb3dc83c6a8fd8673a4cd361eff9418f329d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 662 zcmZWn&2H2%5VqrFHycr@2Y3afNT^v+aYLvTsGO(}h)XV(H#6ji#5PV=qG!1FL3-(P z@CHb}a_TD}p)$@Ex)Kw4<+-0$%e{VB9640WP{F#E@KaSX>HXQdm-()UV$BtxwH_vbH>3uh&ndL#+msszzP4 zN^X>{l%vg{EE1t7^FOCF$iX-y(f@AwWeaj@t-1M5;&L9iFS18nPfaceg^^_F<>NUg zA6x9yR)zh|kh2y8m*rLHfX@h;SekR|x7W-D?S*z8ARbid! zu$l^Tthj%og1kGHDhSwj>dt~Ad*Q;*5Z-G%q?C&2Hcnz5(U<*>Z)f&AkNpZdrE7Bp dn|Y>rj+wmIyxTpZDn5O_bLT}EcMK*Ria(iAy2=0m diff --git a/project/app/migrations/__pycache__/__init__.cpython-310.pyc b/project/app/migrations/__pycache__/__init__.cpython-310.pyc deleted file mode 100644 index 59e9df92e47ac0b581c25ef2ea75a5ba089085d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 178 zcmYj~y$S*`5QKAbg$VZ`Hm=QeA{L^Zh+-XLZt?cGWJ7)mAIVp`*0-=SsdQkzVWt^w znuW-^Of8mt7yPTrWtSc5j80s|vO2wlFY^zd8}w`tFlpsU!Jc(8Xd?$WQtZs)a00gqWrAXg`k0*&iIsUZ3>h(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o10aKO;XkRlhW; zG_Ryo-zBv;yClCrKO;3aF)u$gN8i9SJ|MFoH77GK)h#nGu_QHFzn~~TD>b=9Ke3=d rKQ}YID6u3nKd)FnK0Y%qvm`!Vub}c4hfQvNN@-529mulJK+FID6H6?m diff --git a/project/app/models.py b/project/app/models.py deleted file mode 100644 index 13aceae7..00000000 --- a/project/app/models.py +++ /dev/null @@ -1,98 +0,0 @@ -from django.db import models - -class Mapeamento(models.Model): - id_mapeamento = models.IntegerField(primary_key=True) - codigo = models.CharField(max_length=200) - nome = models.CharField(max_length=200) - saldo = models.CharField(max_length=200) - data_assinatura = models.CharField(max_length=200) - data_vigencia = models.CharField(max_length=200) - data_encerramento = models.CharField(max_length=200) - tipo_contrato = models.CharField(max_length=200) - instituicao_executora = models.CharField(max_length=200) - processo = models.CharField(max_length=200) - subprocesso = models.CharField(max_length=200) - cod_proposta = models.CharField(max_length=200) - proposta = models.CharField(max_length=200) - objetivos = models.CharField(max_length=200) - valor_aprovado = models.CharField(max_length=200) - nome_tp_controle_saldo = models.CharField(max_length=200) - grupo_gestores = models.CharField(max_length=200) - gestor_resp = models.CharField(max_length=200) - coordenador = models.CharField(max_length=200) - procedimento_compra = models.CharField(max_length=200) - tab_frete = models.CharField(max_length=200) - tab_diarias = models.CharField(max_length=200) - custo_op = models.CharField(max_length=200) - nome_financiador = models.CharField(max_length=200) - departamento = models.CharField(max_length=200) - situacao = models.CharField(max_length=200) - banco = models.CharField(max_length=200) - agencia_bancaria = models.CharField(max_length=200) - conta_bancaria = models.CharField(max_length=200) - centro_custo = models.CharField(max_length=200) - conta_caixa = models.CharField(max_length=200) - categoria_projeto = models.CharField(max_length=200) - cod_convenio_conta = models.CharField(max_length=200) - cod_status = models.CharField(max_length=200) - ind_sub_projeto = models.CharField(max_length=200) - tipo_custo_op = models.CharField(max_length=200) - projeto_mae = models.CharField(max_length=200) - id_coordenador = models.CharField(max_length=200) - id_financiador = models.CharField(max_length=200) - id_instituicao = models.CharField(max_length=200) - id_departamento = models.CharField(max_length=200) - nome_instituicao = models.CharField(max_length=200) - id_instituicao_executora = models.CharField(max_length=200) - id_tipo = models.CharField(max_length=200) - -class Lancamento(models.Model): - id_mapeamento = models.IntegerField(primary_key=True) - id_favorecido = models.CharField(max_length=200) - nome_favorecido = models.CharField(max_length=200) - cnpj_favorecido = models.CharField(max_length=200) - tipo_favorecido = models.CharField(max_length=200) - valor_lancado = models.CharField(max_length=200) - valor_pago = models.CharField(max_length=200) - data_vencimento = models.CharField(max_length=200) - id_status = models.CharField(max_length=200) - status_lancamento = models.CharField(max_length=200) - flag_receita = models.CharField(max_length=200) - data_baixa = models.CharField(max_length=200) - his_lancamento = models.CharField(max_length=200) - data_emissao = models.CharField(max_length=200) - num_doc_fin = models.CharField(max_length=200) - data_cria = models.CharField(max_length=200) - data_pagamento = models.CharField(max_length=200) - id_lancamento = models.CharField(max_length=200) - id_projeto = models.CharField(max_length=200) - id_rubrica = models.CharField(max_length=200) - nome_rubrica = models.CharField(max_length=200) - tipo_movimento = models.CharField(max_length=200) - id_tp_lancamento = models.CharField(max_length=200) - tipo_lancamento = models.CharField(max_length=200) - -class Template(models.Model): - nome_template = models.CharField(max_length=200) - endereco_template = models.CharField(max_length=200) - mapeamento = models.ForeignKey(Mapeamento, on_delete=models.CASCADE) - -class Report(models.Model): - titulo = models.CharField(max_length=200) - descricao = models.CharField(max_length=200) - - TIPO_ERRO_CHOICES = ( - ('erro1', 'Falta de informação no projeto'), - ('erro2', 'Campo preenchido incorretamente'), - # Adicione mais opções conforme necessário - ) - tipo_erro = models.CharField(max_length=20, choices=TIPO_ERRO_CHOICES) - id_projeto = models.CharField(max_length=50) - nome_usuario = models.CharField(max_length=200) - -class Export(models.Model): - data_export = models.DateTimeField(auto_now_add=True) - formato = models.CharField(max_length=200) - nome_template = models.CharField(max_length=200) - nome_usuario = models.CharField(max_length=200) - id_projeto = models.CharField(max_length=50) diff --git a/project/app/new_dev.py b/project/app/new_dev.py deleted file mode 100644 index c5f1e2dd..00000000 --- a/project/app/new_dev.py +++ /dev/null @@ -1,225 +0,0 @@ -import openpyxl as op -import datetime -import os - - -def pegar_caminho(nome_arquivo): - - # Obter o caminho absoluto do arquivo Python em execução - caminho_script = os.path.abspath(__file__) - - # Obter o diretório da pasta onde o script está localizado - pasta_script = os.path.dirname(caminho_script) - - # Combinar o caminho da pasta com o nome do arquivo Excel - caminho = os.path.join(pasta_script, nome_arquivo) - - return caminho - -def preenche_planilha(planilha, dicionario): - - caminho = pegar_caminho(planilha) - Plan = planilha - # carrega a planilha de acordo com o caminho - workbook = op.load_workbook(caminho) - - # planilha_preenchida = pegar_caminho('preenchido-' + planilha) - for nomePlanilha, entradaDados in dicionario.items(): - planilhaAtual = workbook[nomePlanilha] - - for intervaloCelula, entradaCelula in entradaDados: - if ":" in intervaloCelula: - inicioCelula, fimCelula = intervaloCelula.split(":") - planilhaAtual = workbook[nomePlanilha] - planilhaAtual[inicioCelula] = entradaCelula - # planilhaAtual[inicioCelula].fill = color <--- teste com cores - else: - planilhaAtual[intervaloCelula] = entradaCelula - # planilhaAtual[intervaloCelula].fill = color <--- teste com cores - - - workbook.save(f"app/planilhas_preenchidas/{planilha}") - - print(f"arquivo salvo como planilhas_preenchidas/{planilha}") - return f"app/planilhas_preenchidas/{planilha}" - -# workbook = op.load_workbook('Modelo_Fub.xlsm') -# number = 3108 - -# value = datetime.datetime.strptime("2014-06-23", "%Y-%m-%d") -def extrair(text_list): - start_delimiter = "@@" - end_delimiter = "@@" - extracted_texts = [] - - for text in text_list: - start = text.find(start_delimiter) - if start != -1: - start += len(start_delimiter) - end = text.find(end_delimiter, start) - if end != -1: - extracted_texts.append(text[start:end]) - - return extracted_texts - - - -planilha_local_dados = { - "Receita x Despesa": [ - ("A3:J3", "Título do Projeto:String 1 A3:J3"), - ("A4:J4", "Executora: String 2 A4:J4"), - ("A5:J5", "Partícipe: String 3 A5:J5"), - ("A6:J6", "Período de Execução Físico-Financeiro: String 4 A6:J6"), - ("A7:J7", "Período que abrange esta prestação: String 5 A7:J7"), - ("A16:A25",datetime.datetime.strptime("2014-06-23", "%Y-%m-%d")), - ("B16:B25","STRINGB16B25"),# intervalo nao interfere - ("C16:C25","STRINGC16C25"),#intervalo nao interfere - ("E16:E25",200), - #("I16:I21",223), - ("I16", 23), - ("I17", 213), - ("I18", 223), - ("I19", 233), - ("I20", 243), - ("I21", 253), - ("I24", 263), - ("I26", 23787), - ("I27", 10), - ("I32", 100), - ("I33", 1000), - ("I38", 10000), - ("H45", "COORDENADORA_TESTE") - ], - "Exec. Receita e Despesa":[ - ("B16",200), - ("B17",201), - ("B18",202), - ("B19",203), - ("B20",204), - ("B21",205), - ("B22",206), - ("B23",207), - ("C16",205), - ("C17",206), - ("C18",207), - ("C19",208), - ("C20",209), - ("C21",210), - ("C22",211), - ("C23",212), - ("C24",213), - ("C25",214), - ("F16",2051), - ("F17",2061), - ("F18",2071), - ("F19",2081), - ("F20",2091), - ("F21",2101), - ("F22",2111), - ("F23",2121), - ("G16",20351), - ("G17",20361), - ("G18",20371), - ("G19",20381), - ("G20",20391), - ("G21",21301), - ("G22",21311), - ("G23",21321), - ("I26",2011), - ("I28",2001), - ("I29",2001), - ("B26",3011), - ("B28",3001), - ("B29",3001), - ("B31",3011), - ("C26",4011), - ("C29",4011), - ("C31",4011), - ("F26",5011), - ("F28",5001), - ("F29",5001), - ("F31",5011), - ("G26",6011), - ("G28",6001), - ("G29",6001), - ("G31",6011) - ], - "Pessoa Jurídica":[ - ("B11","TESTE_NOME"), - ("C11","TESTE_CPF"), - ("D11","TESTE_ESPECIFICACAO"), - ("E11","TESTE_DESCRICAO"), - ("F11","TESTE_DESCRICAO"), - ("F11","TESTE_RECIBO"), - ("G11",110101), - ("H11","TESTE_CHEQUE"), - ("I11",98765431), - ("J11",3000) - - ], - "Conciliação Bancária":[ - ("F10",5000), - ("F11",5000), - ("A15",120623), - ("A15",120623), - ("B15",9777), - ("C15","DOCUMENTO_TESTE"), - ("D15","DESCRIÇÃO_TESTE"), - ("B38",9777), - ("B39",7878), - ("C38","TESTESTRALEATORIOC38"), - ("C39",'TESTESTRALEATORIOC39'), - ("D38","TESTESTRALEATORIOD38"), - ("D39",'TESTESTRALEATORIOD39') - - ], - "Rendimento de Aplicação":[ - ("B12",2023), - ("C12",2024), - ("D12",2025), - ("E12",2026), - ("F12",2027), - ("G12",2028), - ("H12",2029) - ] - - -} - -modelo_fundep = { - "Relação e despesas" : [ - # campos cadastrais - ("C3", "Instituição Gestora"), - ("F3", "0000*XX"), - ("I3", "n_acordo"), - ("C4", "Titulo_Projeto"), - ("C5", "Nome_Coordenador"), - - # item beneficiarios - ("I5", "Dt_PeriodoPrestacao"), - ("C7", "Nome_Beneficiario"), - ("D7", "CNPJ-CPF-Baneficiario"), - ("E7", "Rubrica-Beneficiario"), - ("F7", "CH-OB-Beneficiario"), - ("G7", "dt-inicial-Beneficiario"), - ("H7", "NF-DOC.FISCAL-Beneficiario"), - ("I7", "dt-final-Beneficiario"), - ("J7", "valor-Beneficiario"), - ] -} - -# for nomePlanilha, entradaDados in planilha_local_dados.items(): -# planilhaAtual = workbook[nomePlanilha] - -# for intervaloCelula, entradaCelula in entradaDados: -# if ":" in intervaloCelula: -# inicioCelula, fimCelula = intervaloCelula.split(":") -# planilhaAtual = workbook[nomePlanilha] -# planilhaAtual[inicioCelula] = entradaCelula -# else: -# planilhaAtual[intervaloCelula] = entradaCelula - - -# workbook.save("modified_ModeloFub.xlsx") - -#preenche_planilha('planilhas/FUNDEP.xlsx', planilha_local_dados) diff --git a/project/app/oracle_cruds.py b/project/app/oracle_cruds.py deleted file mode 100644 index 51805a97..00000000 --- a/project/app/oracle_cruds.py +++ /dev/null @@ -1,199 +0,0 @@ -import oracledb - - -#connection string in the format -#/@:/ -file_path = "/home/ubuntu/Desktop/devfront/devfull/pass.txt" -conStr = '' -with open(file_path, 'r') as file: - conStr = file.readline().strip() - - - - -def getCollumNames(): - - #inicializando o objeto que ira conectar no db - conn = None - #criando o objeto de conexão das - conn = oracledb.connect(conStr) - #criar um objeto cursor necessario para fazer as consultas - cur = conn.cursor() - cur.execute("SELECT * FROM IDEA.STG_PROJETOS_CONVENIAR") - - return cur - -print("\n") - -# cur.close() -# #encerra a conexao -# conn.close() -# print("conexão db completa!") - -def getlimitedRows(numb): - consulta = {} - a=[] - try: - connection = oracledb.connect(conStr) - cursor = connection.cursor() - print("Connected to database") - sqlite_select_query = f"SELECT * FROM IDEA.STG_PROJETOS_CONVENIAR WHERE ROWNUM <={numb}" - - cursor.execute(sqlite_select_query) - records = cursor.fetchall() - collums = getCollumNames() - a=collums.description - - for i in range(0, numb): - # Create a dictionary to store the data for each i - i_data = {} - for j in range(len(a)): - key = a[j][0] - value = records[i][j] - - if key in i_data: - i_data[key].append(value) # If the key already exists, append the new value - else: - i_data[key] = value # If the key doesn't exist, create a list with the value - - # Add the i_data dictionary to the consulta dictionary under the i key - consulta[i] = i_data - - - #print(consulta) - - # print(f"\n \n {consulta['OBJETIVOS']} \n") - #consulta[0]['OBJETIVOS'] = str(consulta[0]['OBJETIVOS']) - - cursor.close() - - except oracledb.Error as error: - print("Failed to read data from table", error) - finally: - if connection: - connection.close() - print("The connection is closed") - - # return records - return consulta - -def getallRows(): - - try: - connection = oracledb.connect(conStr) - cursor = connection.cursor() - print("Connected to database") - sqlite_select_query = f"SELECT * FROM IDEA.STG_PROJETOS_CONVENIAR" - cursor.execute(sqlite_select_query) - records = cursor.fetchall() - length = len(records) - print(len(records)) - cursor.execute(sqlite_select_query) - - cursor.close() - - except oracledb.Error as error: - print("Failed to read data from table", error) - finally: - if connection: - connection.close() - print("The connection is closed") - - # return records - return length - -def consultaPorID(IDPROJETO): - consulta = {} - try: - connection = oracledb.connect(conStr) - cursor = connection.cursor() - print("Connected to database") - - # idProjeto = 6411 - sqlite_select_query = f"SELECT * FROM IDEA.STG_PROJETOS_CONVENIAR WHERE CODIGO='{IDPROJETO}'" - - cursor.execute(sqlite_select_query) - - records = cursor.fetchall() - - collums = getCollumNames() - - - - for i in range(len(collums.description)): - consulta[collums.description[i][0]] = records[0][i] - - #print(consulta) - - # print(f"\n \n {consulta['OBJETIVOS']} \n") - consulta['OBJETIVOS'] = str(consulta['OBJETIVOS']) - - cursor.close() - - except oracledb.Error as error: - print("Failed to read data from table", error) - finally: - if connection: - connection.close() - print("The connection is closed") - - # return records - return consulta - - -def getAnalistaDoProjetoECpfCoordenador(IDPROJETO): - #dados interessantes dessa tabela - #CPF_COORDENADOR - #NOME_ANALISTA - #VALOR_APROVADO - #CUSTOOPERACIONAL - - - #inicializando o objeto que ira conectar no db - conn = None - #criando o objeto de conexão das - conn = oracledb.connect(conStr) - #criar um objeto cursor necessario para fazer as consultas - cur = conn.cursor() - cur.execute("SELECT * FROM IDEA.FAT_PROJETO_CONVENIAR") - - - - - consulta = {} - try: - connection = oracledb.connect(conStr) - cursor = connection.cursor() - print("Connected to database") - - # idProjeto = 6411 - sqlite_select_query = f"SELECT * FROM IDEA.FAT_PROJETO_CONVENIAR WHERE IDPROJETO='{IDPROJETO}'" - - cursor.execute(sqlite_select_query) - - records = cursor.fetchall() - - collums = cur - - # print(records) - # print(collums.description) - - for i in range(len(collums.description)): - consulta[collums.description[i][0]] = records[0][i] - - #print(consulta) - - # print(f"\n \n {consulta['OBJETIVOS']} \n") - # consulta['NOME_ANALISTA'] = str(consulta['NOME_ANALISTA']) - - cursor.close() - - except oracledb.Error as error: - print("Failed to read data from table", error) - finally: - if connection: - connection.close() - print("The connection is closed") - - # return records - return consulta diff --git a/project/app/planilhas/ModeloFAP.xlsx b/project/app/planilhas/ModeloFAP.xlsx deleted file mode 100644 index 1de9600a65deb83582f4731e28fe434739f6d30f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73080 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 diff --git a/project/app/planilhas/ModeloFINEP.xlsx b/project/app/planilhas/ModeloFINEP.xlsx deleted file mode 100644 index ff3c5ac1cc6c965312d8e778f36b426eed2b672d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 347656 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 diff --git a/project/app/planilhas/ModeloFUNDEP.xlsx b/project/app/planilhas/ModeloFUNDEP.xlsx deleted file mode 100644 index cb930749f221e15d07d431fb7181bea9859d98d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24116 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 AJ^%m! diff --git a/project/app/planilhas/ModeloOPAS.xlsx b/project/app/planilhas/ModeloOPAS.xlsx deleted file mode 100644 index 2837f2bd6b32e78256d08f34b2b45757c8ec21c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48497 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%0A)$Y+MnK^os`0;U)`dTDZcJW~^89X1x>XSX zXexs2U$?d;NXqXflwT=mZy+gmPX51}CVmB+{sV9$#+`i&a-Dh0u`m6ra(`WQLMrk5 qvgx)g0I&$YwYr_oevZ`}8UAhX zj@qim=AVB0f06<^z|L^m^7=eD}4T(N_lumT7ka$h?x^n@c#dCv`q~aVNKB>vY zYG%mqrjDMTvYfbr4}vw@(voQzmq*0U9BJiLKP&KaVLK55+UXdtI519+g4}#Pe{Y1s zh`Z-&UCD*Q=A=Z@(TUimL!{U@3<)F(U8_jUlPE#mBJ|vjQ~#1cgrCzADL}V?b6CFA zmBi)pEBdy8VZhZIkgCBkda?B8Ubf%o5hvYrYEddsjFGtzu2!t&ejD)%-Gr&E2c)AM zgJUR#50e_O*uh;Y8FP*bp@sqF2HzAY$5V?@4H}Vz5Ned+a9z#9LEx*6xH1_?n|w1o(D`^ zjqltv&mT_ffw&hGK9g-fQ3xG=k($wMlXab(=osOP8R`Gj3yIeo8g^gLx>A)`B3r|z z2X8jM4Z!sMV(sTAFo4|u;B$jAJ<!xj&!tt_WzH^|BK1{FOMD> zKPA&g4>Ncv)-JgJdSW96kz3FvCDulu^sSrt0CO4sdIV!FZ7YjJHv1XgR} z8<7Dst}F`l^_fFK9KHOgzS&FyX0h>l;sJMX*EcyDu7w^82yjpEQl1yC=h`M_Xy_JopQ(_-7V zTwCFee5a>=wAp4QPaTt7yG4OJ(ne4EJp=Gcx?d0e?<_f$>4hNt;*SXk000&M1fZK0 z-QPrUwRNyGu(h@Pqpk*RW%DpP8J`BTK2Yf3q92=3w}sZo&OucS zcI;ELRH)6ZWy@`g7f2aL$GPzF=%>s3;DPg4GN-ATwmzMy>W`BV)W+~;<@2Re@A+t^#RfFL z(jK2g@e7mx(g-^U_mU zG1-wO*6UjM5m@=1)K5Sw7Q=q}DR~{_TAn;j*QG{YD-1=zBx!zUNb%3VvnF&L>)Vtn zbZaXO<n!8C2*JB0Bq4M@d$dr zW&aCC##@0SC3=jJqD7?}vtNd18>G-kZt!8zUlm0WX<$kh*57@gpZ>3+9oLHD8T2B1=YBGE<#}nA- z`i^D$hx~haJFeKe*qJe(Q2@+7_YMRChD6yPT{ zv#;p>qefD3_v^=k0{|%C|B3Yf(nu#WV{2o&zxE7&EZ&*AtSt@;N*B>JZh1@7inPm| z)x31l#u@8$VN~r}-nR~>O-#0|Ydz0|GuQ@EVqzhFt=MLJKE48#T?HAhL_S265?w!2 zPZO7nOlDs!zaRV6*KR&Om(TA_M=wzUDY@K)#0TPQWx5sap~O7!W=M@4o_!xlsPN)J z2>?u4v5jmbvu!mG7o1DirQu>y2<5W-ls2Am3dbkC{&)IVV`W?$>;`B$nYfWV6}p30YK3g(L?iOn;J5mLqA0Geq~*yVwmj`YtAKf=A0av z`a9I&FIQNmWQ@`xo59yLf}a6(@)CoO3c^T&(yi)DytzYLE}>spG=`QKE+#MDPv|z% zY9gG`Vr3EHph}&-i=3{C@NWU6qz&DBbl6nsOfvzTy;f^eNv4|QcPU)%GfU!gW)y8y zuvo&P>*jSalR1{n9W!gDQYRM!uIL-Wbt!1tl+$sz0oOhq;&jfaU%LFnZ3k3;yTR%7 zt!P-cy9PsHNIRR%ZQy@>kMsb@yUv)G&mV=WXD2ZG9#y(tk1qpEcP|5T zeWFwFc<*jcPuDy7c+@neJEStbH@&J`UN1+gc)7e;-tQ+PM+MRJo zW~4J?bXgw{Z^vVFywC4zWT;opexk-tv4cW+oJM%(R~Qc_D0>nzBD+>p!H9*EP&k0+ zP_x{q-@7>#$4l*ScPTGBf50e!wtsj3JFEj%+*_5{oXk$Ogp`}E*oqVV~du10N zxG+BOD{`&Jtt#9Voh;hiGXdqs^dd3(q7Bi$f8B&#o}Cy{UaV`cEl}y~0U5( zdEYSTo7{X)y#k3KhXamzqgleB-cR#|te*L3o5qWLI8)`eO?*#UBp{$VsGX3&?-uQ0 zWKcuO#3Ae^#z9+yl%+@x^r$|VO9@caxJZNYbodG?6)jYHT_pKiy|ML_6P*KvH4!M` z7b-LDQQzr^*q&_IdhIoWaHokW4Yv~7w(~Ho9hE`1c5MQGn^ptMM6*14OW-(WXFy!c zOe2~f;=fD?nQ00%y4=`GC9shgiV$FH;x$VRTHE4EC@PCteG~5)+W80ya|M=-w+8Cu z(RHJ}y)fRq|G0I3Y*yp3Zphm&NTq>PMMFG z2#Z4*Dq{B6Pu{`RBCl2t08z!0Lxm;G5XjelWR8pK)aJ@T1aJX$;Es+nuVDD za;KNz-)|8C?&2XXdlVArA6deg`#t(FGMU+Lj#0BU88OH@J49U@+S$U!nJ8_<6|Tu( zOmFzPqQ@v#+DsUMnLg*hn7z(&(T=Yt5=7&&5$ec(1D;&D4Q$?57Fq-b(tKmv(b*Lg!) zgf#p!yS1kw`&uu(OwWmet8Yq>o%%kN{>DeY9;-Z0oe9-e3O0yyb6vGZ_F8oUxB|ff zSaO^*>@B4uV6vHv%Etg{@qHev9``$r0(Hd?rZ+={AK$d+;;&PlO0CXjBNsEh#}z2D z$qB*at7Am02wmt?blWJ;$a0V>$)!Z5;q6Ka8?1F&M!rM0-Y6&cthkTQLYN+_gqVFB zL9^Lyj_u(}>JR8p9<^b0eW*x@?aHZ0+<5YBMAeqvp46k5M!VXvP}Tdj*Kls1O9-b< z9#y=BKFyu74!8+~UU!9+0Y#fK;miMU=Zo!_91Lm6{!)UAMaZA~twao=7S?>kZ40vh zME$&$SY2e;O-WoURij4KD5g4h(r>J_(UTlVm2HJs5*W;N{&W3^+FvBs#$ojOa6dNh zVHM-4jS~-hyqbayK0TOp$(O)DSh?YJ;->u}nJrIue6?KU8)|pC5|oDea<*b1Q?f>S z&7n*C@^}z1)#N1xX+$u2P&(c(-<%Km9j4a`0rYu-Ex+~f?Xmz;FdJYU?*Z0tVq{{R z-~9(iWHd}?f0bL*Es9&x&@G~`AESB2kZVf1V0mWCuLwIH);bzo6DDPvFV8e&a;hxo zt>hCxDek>78^Rd!I3{%oUe5^9-+`^)%BH+Ck|??{+Q-^JGp~jSg5XGPv(EUWa9~8J zbsg+6aL`lOq>-=}>w`l*)2oM&0-D?wa_H{L{%RF(R*!zfFT>b^4e$!g_u9uJewH)x zG4n?7;U~F*t~4!=RBf13r$1{P@12l2C_VRjbI`M0qD^+k;HAc?Sy%oxceA71Lnf~0 zgoKE57vHV*tFZ%wN5z99Xo&d7s6bBb?>K%+sTK3s9PBkYH0_XkB1nv>^9WBlmte zZh^04gy?Sv{wJh#G&44Ka{NdB^49_5KeLy>m>!EhdIX`%ptpc!Ph!pxxo{F)34$fk zcK~6XwY&!jvnG<~*Wb&50?~bjoAlbg>ge|oL576T6*hbXLCivF)Lxl9ja4~nT(Cak zfoPS((`^%yk6{r%HFm$7s4NIr>7$L<4%(&I-F(E1dZ&f%}3Wyq6wD_!0O+(9JVpF$hLbk&Uof`3TtH zWfg4gXY3=&yJsDaareQ2-P8eV`YTrnwh3Gu^?WN((7qwMS@o6YDoq!E4g1MD3M36z zto|HrXBx1Kj6~Q_tQsnGO^`hCJ4T;R|4L0XWJxT~;fi>eJN?LW1om`!sfG28E_gki zOv5GhzPD-s2e*Ry$62&D9+ypi*W@1r#J|Vt@#Kkp9~M5p`SFE->qC~MHylWz_4wHB z1LS`~V5+d*JQNiGz{>;x0OQ}3;J=%{Jk#0{`+M}zmhOT#ctz#ON#o(5%BecXnx+D8 ziRQ@WywTA^gTYuMW#d6oq7h^E2Op3X5Qw2%&&%$NLs-r;Tg& z!{h0FF6g(cho9%KeLL` zikP^3wXCyNf9tn$4h}s$xHxu9HZEo3Ey;pA)oSvV!%cs_zaP3^wsY&??OoV6yxu)O zADy1>F*QFmyD#H(su!Iv?%mh7dahom;Njt4Y$bf0tUfn>%3a{GEw!EdczUt}yB;me zw6n!GFuy>d?`nI3O83TJoOp4$f8Mz|eK0 zY~0ipWbHYgY8^bje*om_{%rcjW}?E!Snkur+ht<|_qgol`(y%i*`&FY{TOn-$9s(M zy}MA`0*bf9+|_Oo7e2nH+H&{%plFO&x2)^S%nJFjlm~t3P|FXQRfuh}mfy}(@jgdS zGTo`=;7`XKfVDUap9CyH*_FpvO0XjPz&;#!rUCLrKj~3D@u#5$0ijc)0DR&j2!`#I zK#(oc_~P55t##`n+e?0NW-vy#r~CX(168~fP9$x21{ zAN+g{@{*DnqhrFgkB9Z#L+?ltk3pWNHC;KWZf#w*?rPkA(O0-}H?9;JneR6w)@Gha8BY;Ur9iGgSu6KT z;TI{R#Y>&gEZa8Dyg9Ld{R|SI5)$qO+fw$Src}3~ySXgnytw0-_|jFr%=8FqE)_Fj}}$_NUkLr{dM3-(x~3M~4t0mHKxf zvz{EgY5%Cn@dDinjhdiR^`gjpy>Ab|Nz;K-g8x?Ja*zP^nH<(TMp7hE@g#wF`Uo3@ zl0X6j+StQQkyxQvrC6?5n9**XQ?3=Iu!V5)=oF{%Z5A>C3H76dL@}UpEpAO-&%sX% zWV@UU(hVj>6Y?QClNx)JM6y0Tui-##X_OI^5mX8k3RHD+1quaZ{R2ouXBGyMhZ#oP z+%78la$WU&_Wp2`D8?vEhX9Qs(Q3x%gOVUWSkgolGtb0uMCN(UP56&6v+frK}yX|bkw`vD9h z_g9Az8;PmjYUnnV8SRUy(itrnJ;GIxg!1VO%vi4nBn2)o##jefs2729OzS${Pv`Hx z2jaeIu0y^Z>|Ie-Adoj<{b~_5SN=qK zxx7Ln=3xE1EPp5(M-d;Bqd+9z4k`#|?}uc#6|KC$K^ zT$wVP$Dq54lH=}}`*=AdOgP2Q(j7B}m*1XTN+Pc)DP*Bw-wM7ijT|SSrGCDFREbTp zRYmfPh>-j(Y}juETUncA8EhUyLkt}gAnP@hP3Mu zPghAsSV@MITf}tZ;S!)x=)bTM>G?>^T@y8(AX9K3*zh6x+k9jA?N43$@0~)AkG&YU zAsM*C?6|Rs3Qg5aTTF_6i(5BmT__=PPq6-;IwI>wopcotkgfl}Z(!g7wxA`P$w9%Z zjeqtcL+-%Ms2n^!Hx4#@_&bZx&v>t%al94&W-&uvr)XH>cccokuG--w`VwY^UjAO? z4T-vQ$AUk?@W#C2Mh;3~{Kx}Tpi7oTh!xW6tkp4>``x7aN_6-}WywTfy=~jPCYxVi zGcay*n%Vm%4oHDEz*M>__)NZ4W7hok0c2N z3#uf5M_*#YNtYv8wRe(2pT{lHFIF3%62$vAFWCtr5URL}z;}c1 zMUG`_rG0E4p@(4>TvUU2#jK`K4@8EE#a(dfn);R-M@O5jZxDq%8juW-_6#HF=*WoZ z$YBTxvBPV2RKgwM`xPq^Q99$AcXYoBee6pR2Y#`>g3#ValwE3O^>lL-D`3T`aU+Du z^AV%z-3*8V#^II5%aAYXG9#VZHeWkT;8Uf)pIKtlEe%R`5EHAwo){SUv9^U9&ih_J z^PxYIw$GCgqli%D(i7&=Kkq^j?Lr}6i$HVa%CWD9$4xw6N54V*T<5DAba_~_x+#^EvAPf|Ct}q7r zdmqX7jy;EX#^mC)v`}pKB1z^-X&waj3qxZ&jKo5W2;_%z@i)2;6hn8?dW)(cx{q5> z@B6uR`c`49M9rNjoPM)$5{%n{PSdO7CL?lD+0yXP;56)_b7IJfzN5wV zs3j|Z47Kdjmb_FPF`WbsEH} zZECbRtU?E{cu^c&vcSe5cppPP98V|MK5jl|Vspv)|Or-0(-&Lm%NPjP# z=pUtoL>9#y#8E_iIt|x-Q(5x%4N60n;P5$?4y&0TWgg9B!sFY?U@21<7y5wRh%g(s1WMFXaMb} zf2{0CeCRZa_DBil#cDCG64=GF_X4);4sVk=98`kFqsg(HkeniyBfoBWz>dGQYCWmq zVfe3bqwsy9K)u}4_{cy#GiDUkBRk~7RqrE#AGFIQKP%Y~ou$4{EHI3H&%kk{@mk7p zOm=$u%rW3(ps4Y{>x=vW8g?S1%#aXQwKbb1@YO;hpaf={)ISOhf>lL6uuIK<>cxTA zk~9QT{h;zgoBWjQsLF`D^nTBj=^i8EkU9NjZ-W0Br+4+`P<$Q!yfc2Np3sk$-LE3c`XDeqeZKx^`^nuty zJbCr_=n!NTsR@1@kO2#)r^el?PO8b0@;j)rlZou`Oa7n!+GV(`k+}cT7y(HDt7SXp zhEO2QTCAC)=LStXGrmU?gw>QDsBg+d_yin1<9m65*@5L8b8jug7*Tm>HDfOtqKdE@ zuD;~Zn_W8*^VQGKN4S--W+{U@_wCg#^G~J#hfN9aD#uo5Cz;3voWB%UBuIpW;Dd)F zH?ZSI^*FgfL{b1)vt8V8Tx1&@BJeegU`aF=Wt5$WsP0QISSXn(Sv1)9neu0g7tO@U zNn=)++tsrG=lvhtH^x68Yf^LRFW+HcZPj9v#3x^*!eqo4$&P8EpW=1dl< zu7W{Wj53Qe>8iebr<8D=t6N>Tj?f-hsaJVG^~DMJBl@8nof=V>tT@Xk1ngUDyrmKX z5>}q4i>&$1dW207r>p6Hn=-ONWpbdLfY+=f#6@w>C{a=6O0u1@?mF_FIWMsXrd7ky zf|UoHVHwO7;lLUsa zO?B@4k)brO6p4I2Fynt?1Q}L_-)b5l7l$hN2T%WM;U}VN|+QMiI6;z|Iy!=aH)8@ z_-p)vPuH$L=?GPwLCLb77zL4kexNG+M^FUpK}?l@N)Gf7le{a5^kl@u5V@jF6T z>(4Xr?P>s2p=Q*=80b?9s5Dquc!xjzBQO;pG~yzPs3N2aw(v6=&ZGBsPON!ACOEY~ zKDp5oWBNOK{StDT+Wo6~_?WfDSh}#7ryPiksPR0;isY|K!%zpSrGIKCAfij%8D5T2 z3K~xk0d%zxTa$-OKx9zI9ON$>R4!Lp@f8Vwm324p&$1}u)6yQlg2=J*05mmFrXkx)Iz@7rb zgB%c;aS-acFb`cl-A8{xAT<12GO%1u8g@n^*h?YEB#SSIfC!0zDp6k0BF z*^u2rDv9_{khHzyk|0twM`DHVK`mDzG~wN-lt>yYJBPzzz5WrPiv^aK(bXamI8tHO zQW&Sn`>+^Md-ao-DNqGHvII0x{&AFlL;3hmDF5}2K}*`o{}Jzh6=I>|8?jdW=N%(2 z)V=;_3^cJIYr*(6f#D93fQqv+htgke`G4LGi6BPk{(e>K3v3jE{>9RNs_4IS_8^?ppjVV4F|7bwS&-D<&vaml>Z`4SnLe< ze{0)|2TP6fJ&QnpF!SFb!e4bcbWZXPSNaE%(s2%NlXfP(!XdRG+l}AQz!pN5`)>tfX(N}`JRWX zDetidJRZcyiWeHo_-9!J*qo?)44C2^cykvPj{2Ra;_aj#4Y2f8> zp=cOVyKm{e{P43ju4y{~$J@hJ5aGSJVWCZkcd(18!*PJ*P*YljqA%0HZnWs%83S4E zu=()(ewG#;MwxpX0je7pHh)!~ziLOKGNu~dNi|MjD`$JgdiDZhJ}k;*^}Hvp7_5)M zt!~O?!JUt78Fy%M4$!tnX9{c^_TuB1_4eBx>?YBos7Y-8p}EigFv1}a%2gau2aj6> zMVbrvbdy?V!3IclzlhBuo&dZ75gYaoFgJUJlWwgaowgaRAU&g?VN1gBy~`CPg+w;^xj6^wQEkW5y@-f(zzh1Rfa|1wA1$M<=EG z;CGs4dFrRSLPLdBihlLq@9!#w@tW8UM>)NQSqxEQ?BkrdD)eFYP*ctq&*FRO%dX%L zJenBUNypA|O)u*EN3>PSt9591d23c7;;``&T{-Xv}eSX6&c(yV`gyC z>b?GLTavJR>;t2-IfoascZp7lR2ySqk=u)I6pM$m+Hnxx2^{%J>VEOu1$rYI@0X4s zOm?>BRN2w}Mc*O(tuv0C=nlGL3TN6wnZWwmk{nk6A%4*NWa1dB*YPmyGEWsj?eXDZ zZAY2SS^0nr>cd&ZLf_%VadvtiHzdf0-;I%{V_mg&*UQwx-tFg`#b;ML`{UbgMw_3# zMJLIrq#e%#79fEQvd>Mq$e-2+orOvvU3|S-0v^Rq=WFZw`ynHbH~et zJ&$o}L$4L4ANNOZW5dihgzHs(LT4?eoww_69Iy93kIQ1|o}+Jj0bpO(nOueAq^YT5 zT)1Fwqlcfq`K&;s27`JfX;MuQ!!LQrr>Rw1!In212u z+MwqnhW`gfJbomHG;xgiwY`MWPM{KB+N6mbt{}--YM%{qU-(^gAfkipa7HY+09qhO zAT^{r@qUT491M8VnHFT<w(>IjWdv&sd&{)h`iT8Qyuyqya6>5SE-(F;B6HDizrW9if1~gafDi@brl1wtfp79s$S84grWH=| zu~e;`%%0LfWOnj+vXkHI+CIrl4#r+Is?q)G$j205r)T5F)|$Qd4#yCNN9AbJUM2|t zT?9|2DxS?u;*Sw8uy(#V57fX6XA`B-BMhP0R+4b+YSzvcKFW5k0rhoA;4J=lO<@3` zZ+RZ>e=2LM*+gBe{|r{8%V9AOXGBtf$ht_|7BM)?Fm{R5kI*}~3hFka_NrXMh2Ix@ zKrD(WP*CF_qc{nyK-=UIACDdPHOd+Sou5opam2O}c49{l{QbRv&CgYk#qs+G08u>k z`puSLOVndaT(_R6wA@QHlLL8M`CYo;>}`Q*oc91V1Z*mLTJ1^|dL004mfdo0Y+$=%A>@z40@y!NTh zt{B=!*KB9N!M6$z6-oM^2x0=Q$g^TZ(lH_lXBGt`^BNwjW$vfcDb9JWWN5tfTyn(;(uiKQ~8l+jbPv zU#RGCPCD)>Xj*UjtcqPZThWfWZcKmdUcc)$xcYiNPO>vZ4qeh+UF~=~>=JNX|MabR zyUIg+f4<^petmlC*pvz;zR~QkarvR!W$C2Zv1I}eyX1_ARaJ$KM}jL`hl`95vpP`K zrB=7~4QnJ7T$(WVXVTRZkN?}4>&zCowcyhE7EuE-_VoUHO4ShGp>f!<&3EjF`C?tKbQ@9+gdYTbxv$(^mLoApV6m2H?a3u zAk^&ytX!O1-UMGQIP3-yR#Pfbadp8PkGD%q=4EQ`*PX17SdeCDfAieq@=jaXnslfk z0KZfJm~vgsJf>;jq^dr06PK^YSXf)kmwNOvvb4AnmI1g;+hEJHAOJ)xML;4kg0Lr5 zb~NI6Ag)%=60(V!I9ZK7u12+00c5hx$aJ292=YK&O@YB46nCY^xN9@j-YfqaZ9E^G zV_m@R^XsKhUHDzC4NXMzlfbPlD#3wmf-=3Tm}f6Vy+BhM98Ywqxaku=>jx3lkGH*(c1%B#ouNL8VSLb83TLdkN>g=p*+uwB4HE;BREw>8? z84O!4tc$Y`k5J{TvJEOn~1Fi1h1&MTxa)d60pBLbkgeiEk+>`KIh30!fM z9YmvJjGc|jxPryQQsPypP!Qk&B>;pj%H}%BE~u##WRw+_K;?|g*J??JoTs3RR1(CL zdza9aP{~|fVN4{%nlfNp_ zq|N#bytettW3>_jSJn2@_KP`Qd;AU0`N5fTn)|+)>iL6TWFHBw$x^u*fEr#qg9qE6 zmpg;;DRW`w)L+vhGc7{au`45(gzcTfGQg%ZBasKgP$&m==UQ(d3cCF&oQg@|ke(tH zNDaB6kLeSPfoGDWu?JvO-3gO^v%h>G!xx{v!hh8FP8R2>b&rKim}&RS+$$>&3S=@+ z>trUgqhvn2z*InE=eqMwX=}!j9}l$Ne0u$%wV%tpa@$YJQ-g=DJfxT#Q(AEtO&;67 zL4Ppf&QV50n`(Q;G4c+UUyQ*h{t{@!p3c-WC6f3OUxWc`udG0JJ5!v}E)f~XU>xbG ze}+#HnmnSNubDb%Aw7|d(T_w&5(AmMF9M2(Dek?waO!3-OqgyI-cg~prEuyN%a^5= zS?ZRwtDO~|?>Cg0(j>5MvEL}>Q8)qyL{g-o1d%YSdB}<N2$CHFQn5+SXkN>FnjUw~FM(O6hRAj6x zh<|gO#pq?@IZ=xL2}_wY5k;{KtApN-(HGe0_KB+5E7n#<>;OkmV84eup@7l_6M+ATp4vWF3T-xbkztPbtLhQFnn0_^Gjvf-smur2ja%-A)=#XK8* z-WSW+lj3#%0Pl>DDR)Cym8^K~f?bU0YBIkshNRaYfUeqO1DvRIb0q?+Oa{#J!qy+SxW6JL-PuTz@sxJoejFS+HVIlo{}n66=crB^|#8 zpdPokwY#h@?Rnlezq3+~h{=(CxjK}7gYdq|ksW;heS07Q_0s_}^#On+f_EULFIWm| zzXYnFM=DRiT(1$Tz%Qaqg0oOuyXBZXENix|wbYS=f-;q5KNUW)h_Qc`}It5p@SZ)H=9$gLNs|S~AKT!6q(AiNhq~bwY4r%p#M|1ORGQ zjS}1SZm-lfE>NF>WTcV6KrpM$%q^U1q~3692}Bbqjn713tW@EYFm#|L^YE3?MRkP& zzZ&C313DsB(gvcg-^MeMOcAsctQX-I;I~S3H?{&5lQm~;>wPnjc0&IbEF&Yrp)~y?#A$?yiiKTyJj*PnKIga0N zl6i$V?VF8F8sX(&XcH@27ESao+AylGV&yN3$jw@9h*=quo7Z;&uJv{7vtqyR`F_G? zsYIv#hHeS_J!T-)`m0pvb*4f%V8Vp%_(9Y_G7W*v5e=KDq5@)mvb?3mq4)KEAUDhB zgZd#cfDx$dx*gLl65otnAXcb^Q)J>>T9AlxN9do?iF7Nao%9yi4Y zT4NpP_i^fQRrW8#=Lwet?WhPWywUoRB5z5Xe8I4uks>%2XAB5I#&gJ3p82N?mMt@8 z^t%N;sNLOBwqdS67hruV_IpsUJ*nz?DIMSLb4=?-HYZBN z@u={a1CEai4_b%oc(v1Ld+1h6WFVE8oqi37eC+wW|LMno#;%f<`)GDvxn-8}J5GVw zxq)be3SOef>{;Fx+oTB6@K(%d?$?YB>lT{=%4~p`@hn^i?Pa|9HB0{W$n@=-AL2*% z3o^tu92$KHOJKD>qOR#xDh+@Q>@r$+N*9w3=5<|NOA-q;{L)O0{yTqP0cRo1ZN~%> zXpMh?itcc!&kTuMA$gsIA>Ou5IItkYAjn(Gg4vBXA%aD_izbYAUgI+l66Z-Dv*F>* z<+E-(CVwm=Jh5S1eEn#*+LdjmF9ISjLLiEG(!Q@P{1i*dowPkNXKYqDmrQhF{skw?FBQQ@p#QL|RDjE5Ebjc?wNYqv*d; zpDwihoCDj_Lra!mgA;lNZ89WQvNn^x%+3ybc_XhT*W4>Sv3bLD61J zp|2sQG0%0fclJkvOBo0KKJGL(k;MOgAYT>rD%NlcgDj z$P_HrL25aHgz)UzX-E_F3%-_t_IW6L zTBYeofX$0TCCFg40xf;~n;&CjO}uD?+Y8{;qwR{PMvZHo^F(g`*$PXR|ECa~Uyb@1 zr3z(0e(A=3wPq5=zD~_JT9X08`Mocd?+w&Y<}|p&DHH>owgo9nknLV*_HlZjpTa#&CSnZ0^gNlo+PU zo{;D^%1kN$kJscxumWhiK-Z*KD^v3H7}km<)q5qTu-1a9#R0pf@*bV3^>t8jgMrPf>=cdUy(G z|7Z~rVt^-L0RaFKzrHko!({B{Wb9z0ZzW}JWBFeb!vFQZf0+~=`}wt$A7SY8Yc0RS zcDD8^oM>EO-*@mJ3c*J3(1`|E%Y;~=w)$cU>pd6r^8O1$LDXV)I+&3Iy3IZ z%pp$6e1Wa33dhNP`dwj;p-e3CeEsixe#z?ufC3dLGGjdp0^T?|XpV+=1hrOvQG|$+x)GVqZq%LJ(N96SaNTu zu%JZ4T*^$t-kzLQfG;6lL`azb4Sg5h-pT0>oSid_w_A8B!d{L8MYN@9ecf@2^RnO) zp%N4iJQN|Xk4q@hoc+uj1TuPraC&KfbwfG$CQW9+vV zn!eN8o2ZQBV@aBR=}XUYc{8t$p^6I@lUsi|4{v9quYHousm2R(Bk%XJGQMHo%kD?l zg)w0~3Wti9#@XndZ|G|MlwCKli(J{l`*MSfQ2P#2$W(6!#T2o0$TYQV%SY;xXHaSq zt&&-4RBa{=;Ue3jI-&$cD-VQAypM9sdZL}^{S(XZ!0av+I#enr#qOC`zlnDs&Km{X z6MOUNYkQL)gXX*5F>m*}EA=(DT)VJsrljO=M(0y6(=u6fWGd2|dMZXj3Qox!7Mx(! z{h1S0?j6mQ-#Hvr?+v%#1t(LHarz`lB?E2;_cH9KiBGl@PZ2dxK2=t=pgrc3-3BpN zGqh-3iyuqG(Gn66!21F1`EdTjPYyab&sXdIyV)5qj<|>TiZCv|mPiu*CqDfflM?@X z4R55E3_VyHDMTnf2!*@?HPDfnI{YN%LuEsooWn(K5s%PPr|lDN;rP5#aJ&neMA7)H(op9JbM5dt!7B4L_Wes-HX}iY zX`svKCpfY3i%%-9Lz2mOc#Bw|H+eOenENYXvP7M`Ku=}BB3f#&=XA-o24+Jwi~r4n z0Rj7ksM~Hf*U+-(hd^7{0vHI+ zB&?Q@wKO#uIgx>Lkq&n6)VUdD5?6zc!v^v2nN+vFQOPaw4;5-*p~CaC zuM$}F0Zj+VA6YyhTyi0=)(HK}RNH@Pxs@3>@p8?|Qs zVaU;j)n^B@W8~$|gWCisQs>8u)k~m76f{H#nyUh>zkV)0+Kmz{pa@(Fd{X7sk_04B z9RD_=a1RsseA!Z#@9w%i0Y$2bdYVnS7^4Gec8r(XfW zQxiGQfE4_4a^F$dXbAO`4E2=1pxM6^IjS^@(&ZR-#brnrsB)KWnZQj|KcNY#4bG-- z#CAFoE1`17gK!-V}%lqdBws1vtW~*uI;}=u@ok!!WC>cFp44e4k62jN3 z6^v{Rqi3e-B9)?Gr-_rSOO=rZ)Up?Zv5;w2R}(@GEeSi_Dn7l^eAjP*fjX16i4Ya zKt(IV&-P?;5m%c3&on0OGF|n2!Q;4RO49O2qZ$voDoqoWaGEG9{77!0aW1RX1d-f1 z+gB{&?)h>)<#x~J_YOBsYF2PNHurjlu}kyS=GYun2xnVkW;)?SQ0AJd5Vz9C9PaD?qAC*J)TYZ!QkeY&8zo9&^Gp(eSOF#@k>@UMcdrPO{#=E zk8$7Be__@VXYlN)nDvLvFAM@>qOUu4xNlFiJrRCG;q;|1(@G^A92v@()c(3G5nnP% zcvF4xTZVv1iQTfZ9!SnF{PvLdh1LJ3t&Tg3%B*C5-*_qXeb(A1k#p{_uUCIuw}1ZI z&x&qm&fmO${Ql~NS&PnQYIkl~H$~)1E(-F!pf7p4#D{#vHWz~x{mr1!< zxI4Qh=@!Z*hRpl?JN_*5+RDgtlTEyT?0LBK1b1Pu%e@y;tB!`NCzPN3!&~TaqVmvb zwbQPF9X9)w`WmV@{{GCq`W_hYn8ozknir3ElGMyKf;4jvdOZdtRU z$V(?`meuBBui&khW?a~Ew6{A+nI$XeQpcH&rXS+X@{cYp^|n8-b#<_pIcTq>Et9$$rL{J#P$wra%gj( z=AXHSpKUW{9G$n$_}xpk<6LI~yX`wNZ(50#?&|X2vUb<^XA-OT-Htn=JFREx&)&b6 zKj+*$F~R#{%&zMmO%3zo8n2g|o^#Fj{PgBp-=lL6rGR4!{`)@p9#cBb#kC?)RyB!r zSF8LVt|wDEuFqJz(JWG2a`hT7jpbJ*%X6;TtiI@A&68BW!f3nohh+U9j~6E$>SVU} z+2twFS}-?lb>zzJ7rwLy{Oo^LjUf60u;xcPb_`u3>e)-k8ovS0 z%E5gS6S_I*C+r|hiU97MMLTZ?T{HS&CV?N>@fhFf>^hKt`&Xc7ol~z4MZ#YI54^i=mSa!6DB!;O+Xo5Lf4Hx&Vtar(-Ev2 zxnGEX)CJvW^q~fX(SpukqtON$uns(+8;ahKMHtHIip9OiuE!d6sO@=#X$%a39t;fV zt$TFWpf-z;b$fUt>4r6u(6yu2QV0Wn_!1LB;5sY7n-y5FFfa%K;cwu9Z{PeuJOJG5 BC~W`$ diff --git a/project/app/planilhas_preenchidas/planilhas/test.txt b/project/app/planilhas_preenchidas/planilhas/test.txt deleted file mode 100644 index 78981922..00000000 --- a/project/app/planilhas_preenchidas/planilhas/test.txt +++ /dev/null @@ -1 +0,0 @@ -a diff --git a/project/app/preenche_fub.py b/project/app/preenche_fub.py deleted file mode 100644 index 158b7a6c..00000000 --- a/project/app/preenche_fub.py +++ /dev/null @@ -1,876 +0,0 @@ -import oracledb -from datetime import datetime,date -import openpyxl -import os -from .estilo_fub import (estilo_conciliacoes_bancaria,estilo_rendimento_de_aplicacao, -estilo_demonstrativoDeReceita,estiloGeral,estiloRelacaoBens) -from collections import defaultdict -from .oracle_cruds import consultaPorID,getAnalistaDoProjetoECpfCoordenador - -def formatar_cpf(cpf): - cpf_formatado = f'{cpf[:3]}.{cpf[3:6]}.{cpf[6:9]}-{cpf[9:]}' - return cpf_formatado -def check_format(time_data, format='%Y-%m-%d'): - try: - # Try to parse the time_data using the specified format - datetime.strptime(time_data, format) - return True # The time_data matches the format - except ValueError: - return False # The time_data does not match the format - -def pegar_caminho(nome_arquivo): - - # Obter o caminho absoluto do arquivo Python em execução - caminho_script = os.path.abspath(__file__) - - # Obter o diretório da pasta onde o script está localizado - pasta_script = os.path.dirname(caminho_script) - - # Combinar o caminho da pasta com o nome do arquivo Excel - caminho = os.path.join(pasta_script, nome_arquivo) - - return caminho - -def convert_datetime_to_string(value): - if isinstance(value, datetime): - return value.strftime('%d/%m/%Y') - return value -#connection string in the format -#/@:/ a[87] -def separarporrubrica(codigo,data1,data2): - valor = get_values_from_dict(codigo,data1,data2) - - - # # Step 1: Extract unique values from the 'ID_RUBRICA' key - unique_id_rubrica_values = set(item['ID_RUBRICA'] for item in valor) - - # # Step 2: Create separate lists of dictionaries for each unique 'ID_RUBRICA' value - categorized_data = {value: [] for value in unique_id_rubrica_values} - for item in valor: - categorized_data[item['ID_RUBRICA']].append(item) - - return categorized_data - -#separa por tipo de favorecido as rubricas 87 e 9 -def tipodefavorecido(codigo,data1,data2): - data_categorizada = separarporrubrica(codigo,data1,data2) - #print(data_categorizada) - if 87 not in data_categorizada or not data_categorizada[87]: - print("Data not available or empty.") - return None # or handle the case accordingly - separarportipodefavorecido = set(item['TIPO_FAVORECIDO'] for item in data_categorizada[87]) - #print(separarportipodefavorecido) - - # # Step 2: Create separate lists of dictionaries for each unique 'ID_RUBRICA' value - dict_favorecido_fisica_e_juridica = {value: [] for value in separarportipodefavorecido} - for item in data_categorizada[87]: - dict_favorecido_fisica_e_juridica[item['TIPO_FAVORECIDO']].append(item) - - #print(dict_favorecido_fisica_e_juridica) - return dict_favorecido_fisica_e_juridica - -def preencherCapa(codigo,planilha): - analista = getAnalistaDoProjetoECpfCoordenador(codigo) - caminho = pegar_caminho(planilha) - workbook = openpyxl.load_workbook(caminho) - sheet = workbook['Capa Finatec'] - sheet['E26'] = analista['NOME_ANALISTA'] - workbook.save(planilha) - workbook.close() - -#preenche planilha de referencia pra nome do coordenador e diretor -def criaout(planilha,codigo,data1,data2): - - caminho = pegar_caminho(planilha) - Plan = planilha - # carrega a planilha de acordo com o caminho - workbook = openpyxl.load_workbook(caminho) - sheet = workbook['Receita x Despesa'] - input_date = [] - output_date_str = [] - input_date2 = [] - output_date_str2 = [] - if check_format(data1): - input_date = datetime.strptime(data1, "%Y-%m-%d") - # Format the datetime object to a string in dd/mm/yyyy format - output_date_str = input_date.strftime("%d/%m/%Y") - else : - return None - if check_format(data2): - input_date2 = datetime.strptime(data2, "%Y-%m-%d") - # Format the datetime object to a string in dd/mm/yyyy format - output_date_str2 = input_date2.strftime("%d/%m/%Y") - else : - return None - - - - string_periodo = f"Período que abrange esta prestação: {output_date_str} a {output_date_str2}" - sheet['A7'] = string_periodo - consulta_coordenador = consultaPorID(codigo) - sheet['H45'] = consulta_coordenador['COORDENADOR'] - dadosquefaltam = getAnalistaDoProjetoECpfCoordenador(codigo) - #print(f'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa{dadosquefaltam}') - sheet['H47'] = formatar_cpf(dadosquefaltam["CPF_COORDENADOR"]) - meses_dict = { - 1: "Janeiro", - 2: "Fevereiro", - 3: "Março", - 4: "Abril", - 5: "Maio", - 6: "Junho", - 7: "Julho", - 8: "Agosto", - 9: "Setembro", - 10: "Outubro", - 11: "Novembro", - 12: "Dezembro" -} - - hoje = date.today() - data_formatada = f"{hoje.day} de {meses_dict[hoje.month]} de {hoje.year}" - sheet["A42"] = f'Brasilia,{data_formatada}' - workbook.save(planilha) - workbook.close() - -# ##########################################Pessoa Fisica######################################### -def pessoa_fisica(codigo,data1,data2,keys,planilha): - tabela = pegar_caminho(planilha) - nomeTabela ="Pessoa Fisica" - tituloStyle = "pessoaFisica" - workbook = openpyxl.load_workbook(tabela) - sheet2 = workbook.create_sheet(title="Pessoa Fisica") - workbook.save(tabela) - workbook.close() - categorized_data= separarporrubrica(codigo,data1,data2) - - if 87 not in categorized_data or not categorized_data[87]: - maior = 1 - tabela = pegar_caminho(planilha) - estiloGeral(tabela,maior,tituloStyle,nomeTabela) - print("Data not available or empty.") - return None # or handle the case accordingly - maior = len(categorized_data[87]) - - print(len(categorized_data[87])) - tabela = pegar_caminho(planilha) - - estiloGeral(tabela,maior,tituloStyle,nomeTabela) - - coluna = 2 - # caminho = pegar_caminho(planilha) - - workb = openpyxl.load_workbook(tabela) - worksheet5 = workb['Pessoa Fisica'] - - for i in range(1,maior+1): - valor_coluna = 9 + i - worksheet5.cell(row=valor_coluna, column=1, value=i) # column index starts from 1 - - - for i in keys: - li = [i] - if 87 not in categorized_data or not categorized_data[87]: - print("Data not available or empty.") - maior = 1 - tabela = pegar_caminho(planilha) - estiloGeral(tabela,maior,tituloStyle,nomeTabela) - return None # or handle the case accordingly - valores_preenchimento = retornavalores(categorized_data[87],li) - - n = len(valores_preenchimento) - for rowkek, cell_data in enumerate(valores_preenchimento, start=10): - worksheet5.cell(row=rowkek, column=coluna, value=cell_data) - if coluna == 5 or coluna == 7 : - coluna = coluna + 1 - coluna = coluna + 1 - - workb.save(tabela) - workb.close() - -# ##########################################Pessoa Juridica######################################### -def pessoa_juridica(codigo,data1,data2,keys,planilha): - - - - tabela = pegar_caminho(planilha) - nomeTabela ="Pessoa Jurídica" - tituloStyle = "pessoaJuridica" - workbook = openpyxl.load_workbook(tabela) - sheet2 = workbook.create_sheet(title="Pessoa Jurídica") - workbook.save(tabela) - workbook.close() - categorized_data= separarporrubrica(codigo,data1,data2) - - tamanho = [] - - if 75 in categorized_data and 57 in categorized_data: - categorized_data[75].extend(categorized_data[57]) - elif 75 not in categorized_data and 57 in categorized_data: - categorized_data[75] = categorized_data[57] - else: - print("Data not available or empty.") - maior = 1 - tabela = pegar_caminho(planilha) - estiloGeral(tabela,maior,tituloStyle,nomeTabela) - return None # or handle the case accordingly - - if 75 not in categorized_data or not categorized_data[75]: - maior = 1 - tabela = pegar_caminho(planilha) - estiloGeral(tabela,maior,tituloStyle,nomeTabela) - print("Data not available or empty.") - return None # or handle the case accordingly - maior = len(categorized_data[75]) - print(maior) - print(len(categorized_data[75])) - tabela = pegar_caminho(planilha) - - estiloGeral(tabela,maior,tituloStyle,nomeTabela) - - - coluna = 2 - # caminho = pegar_caminho(planilha) - - workb = openpyxl.load_workbook(tabela) - worksheet5 = workb['Pessoa Jurídica'] - - for i in range(1,maior+1): - valor_coluna = 9 + i - worksheet5.cell(row=valor_coluna, column=1, value=i) # column index starts from 1 - - - for i in keys: - li = [i] - if 75 not in categorized_data or not categorized_data[75]: - print("Data not available or empty.") - maior = 1 - tabela = pegar_caminho(planilha) - estiloGeral(tabela,maior,tituloStyle,nomeTabela) - return None # or handle the case accordingly - valores_preenchimento = retornavalores(categorized_data[75],li) - - n = len(valores_preenchimento) - for rowkek, cell_data in enumerate(valores_preenchimento, start=10): - worksheet5.cell(row=rowkek, column=coluna, value=cell_data) - if coluna == 5 or coluna == 7 : - coluna = coluna + 1 - coluna = coluna + 1 - - workb.save(tabela) - workb.close() - -# ##########################################ISS######################################### -def iss(codigo,data1,data2,keys,planilha): - tabela = pegar_caminho(planilha) - nomeTabela ="ISS" - tituloStyle = "isss" - workbook = openpyxl.load_workbook(tabela) - sheet2 = workbook.create_sheet(title="ISS") - workbook.save(tabela) - workbook.close() - categorized_data= separarporrubrica(codigo,data1,data2) - - if 67 not in categorized_data or not categorized_data[67]: - maior = 1 - tabela = pegar_caminho(planilha) - estiloGeral(tabela,maior,tituloStyle,nomeTabela) - print("Data not available or empty.") - return None # or handle the case accordingly - maior = len(categorized_data[67]) - print(maior) - print(len(categorized_data[67])) - tabela = pegar_caminho(planilha) - - estiloGeral(tabela,maior,tituloStyle,nomeTabela) - - coluna = 2 - # caminho = pegar_caminho(planilha) - - workb = openpyxl.load_workbook(tabela) - worksheet5 = workb['ISS'] - - for i in range(1,maior+1): - valor_coluna = 9 + i - worksheet5.cell(row=valor_coluna, column=1, value=i) # column index starts from 1 - - - for i in keys: - li = [i] - if 67 not in categorized_data or not categorized_data[67]: - print("Data not available or empty.") - maior = 1 - tabela = pegar_caminho(planilha) - estiloGeral(tabela,maior,tituloStyle,nomeTabela) - return None # or handle the case accordingly - valores_preenchimento = retornavalores(categorized_data[67],li) - - n = len(valores_preenchimento) - for rowkek, cell_data in enumerate(valores_preenchimento, start=10): - worksheet5.cell(row=rowkek, column=coluna, value=cell_data) - if coluna == 5 or coluna == 7 : - coluna = coluna + 1 - coluna = coluna + 1 - - workb.save(tabela) - workb.close() - -# ##########################################Passagem Locomoção######################################### -def passagem_locomção(codigo,data1,data2,keys,planilha): - tabela = pegar_caminho(planilha) - nomeTabela ="Passagens e Desp. Locomoção" - tituloStyle = "passagenDespLocomo" - workbook = openpyxl.load_workbook(tabela) - sheet2 = workbook.create_sheet(title="Passagens e Desp. Locomoção") - workbook.save(tabela) - workbook.close() - categorized_data= separarporrubrica(codigo,data1,data2) - - if 7 not in categorized_data or not categorized_data[7]: - maior = 1 - tabela = pegar_caminho(planilha) - estiloGeral(tabela,maior,tituloStyle,nomeTabela) - print("Data not available or empty.") - return None # or handle the case accordingly - maior = len(categorized_data[7]) - print(maior) - print(len(categorized_data[7])) - tabela = pegar_caminho(planilha) - - estiloGeral(tabela,maior,tituloStyle,nomeTabela) - - - coluna = 2 - # caminho = pegar_caminho(planilha) - - workb = openpyxl.load_workbook(tabela) - worksheet3 = workb["Passagens e Desp. Locomoção"] - - for i in range(1,maior+1): - valor_coluna = 9 + i - worksheet3.cell(row=valor_coluna, column=1, value=i) # column index starts from 1 - - - for i in keys: - li = [i] - if 7 not in categorized_data or not categorized_data[7]: - print("Data not available or empty.") - maior = 1 - tabela = pegar_caminho(planilha) - estiloGeral(tabela,maior,tituloStyle,nomeTabela) - return None # or handle the case accordingly - valores_preenchimento = retornavalores(categorized_data[7],li) - - n = len(valores_preenchimento) - for rowkek, cell_data in enumerate(valores_preenchimento, start=10): - worksheet3.cell(row=rowkek, column=coluna, value=cell_data) - if coluna == 5 or coluna == 7 : - coluna = coluna + 1 - coluna = coluna + 1 - - - workb.save(tabela) - workb.close() - -# ##########################################Serv.Terceiro CLTa######################################### -def terclt(codigo,data1,data2,keys,planilha): - tabela = pegar_caminho(planilha) - nomeTabela ="Serv. Terceiro CLT" - tituloStyle = "outrosServiçosTerceiros" - workbook = openpyxl.load_workbook(tabela) - sheet2 = workbook.create_sheet(title="Serv. Terceiro CLT") - workbook.save(tabela) - workbook.close() - categorized_data= separarporrubrica(codigo,data1,data2) - - if 25 not in categorized_data or not categorized_data[25]: - maior = 1 - tabela = pegar_caminho(planilha) - estiloGeral(tabela,maior,tituloStyle,nomeTabela) - print("Data not available or empty.") - return None # or handle the case accordingly - maior = len(categorized_data[25]) - print(maior) - print(len(categorized_data[25])) - tabela = pegar_caminho(planilha) - - estiloGeral(tabela,maior,tituloStyle,nomeTabela) - - coluna = 2 - # caminho = pegar_caminho(planilha) - - workb = openpyxl.load_workbook(tabela) - worksheet4 = workb['Outros Serviços Terceiros - PF'] - - for i in range(1,maior+1): - valor_coluna = 9 + i - worksheet4.cell(row=valor_coluna, column=1, value=i) # column index starts from 1 - - - for i in keys: - li = [i] - if 25 not in categorized_data or not categorized_data[25]: - print("Data not available or empty.") - maior = 1 - tabela = pegar_caminho(planilha) - estiloGeral(tabela,maior,tituloStyle,nomeTabela) - return None # or handle the case accordingly - valores_preenchimento = retornavalores(categorized_data[25],li) - - n = len(valores_preenchimento) - for rowkek, cell_data in enumerate(valores_preenchimento, start=10): - worksheet4.cell(row=rowkek, column=coluna, value=cell_data) - if coluna == 5 or coluna == 7 : - coluna = coluna + 1 - coluna = coluna + 1 - - workb.save(planilha) - workb.close() - -# ##########################################Obrigaçoes tributárias ######################################### -def obricacao_tributaria(codigo,data1,data2,keys,planilha): - tabela = pegar_caminho(planilha) - nomeTabela ="Obrigações Trib. - Encargos 20%" - tituloStyle = "obrigacoesTribu" - workbook = openpyxl.load_workbook(tabela) - sheet2 = workbook.create_sheet(title="Obrigações Trib. - Encargos 20%") - workbook.save(tabela) - workbook.close() - categorized_data= separarporrubrica(codigo,data1,data2) - - if 66 not in categorized_data or not categorized_data[66]: - maior = 1 - tabela = pegar_caminho(planilha) - estiloGeral(tabela,maior,tituloStyle,nomeTabela) - print("Data not available or empty.") - return None # or handle the case accordingly - maior = len(categorized_data[66]) - print(maior) - print(len(categorized_data[66])) - tabela = pegar_caminho(planilha) - - estiloGeral(tabela,maior,tituloStyle,nomeTabela) - coluna = 2 - # caminho = pegar_caminho(planilha) - - workb = openpyxl.load_workbook(tabela) - worksheet4 = workb['Obrigações Trib. - Encargos 20%'] - - for i in range(1,maior+1): - valor_coluna = 9 + i - worksheet4.cell(row=valor_coluna, column=1, value=i) # column index starts from 1 - - - for i in keys: - li = [i] - if 66 not in categorized_data or not categorized_data[66]: - print("Data not available or empty.") - maior = 1 - tabela = pegar_caminho(planilha) - estiloGeral(tabela,maior,tituloStyle,nomeTabela) - - return None # or handle the case accordingly - valores_preenchimento = retornavalores(categorized_data[66],li) - - n = len(valores_preenchimento) - for rowkek, cell_data in enumerate(valores_preenchimento, start=10): - worksheet4.cell(row=rowkek, column=coluna, value=cell_data) - if coluna == 5 or coluna == 7 : - coluna = coluna + 1 - coluna = coluna + 1 - - workb.save(planilha) - workb.close() - -# ##########################################Conciliação Bancária ######################################### -def conciliacao_bancaria(codigo,data1,data2,planilha): - tabela = pegar_caminho(planilha) - workbook = openpyxl.load_workbook(tabela) - sheet2 = workbook.create_sheet(title="Conciliação Bancária") - workbook.save(tabela) - workbook.close() - tamanho = [] - categorized_data= separarporrubrica(codigo,data1,data2) - #####pergar os dados do db e separar por mes e ano###################3 - - grupos_por_ano_mes = defaultdict(list) - if 9 not in categorized_data or not categorized_data[9]: - print("Data not available or empty.") - maior = 1 - maior2= 2 - tabela = pegar_caminho(planilha) - estilo_conciliacoes_bancaria(tabela,maior,maior2) - return None # or handle the case accordingly - else: - - for item in categorized_data[9]: - data_criacao_str = item['DATA_CRIACAO'] - - # Converter a string de data para um objeto datetime - data_criacao = datetime.strptime(data_criacao_str, '%d/%m/%Y') - # Extrair o componente do ano e do mês - ano = data_criacao.year - mes = data_criacao.month - dia = data_criacao.day - # Adicionar o item ao grupo correspondente ao ano e mês - - grupos_por_ano_mes[(ano, mes,dia)].append(item) - - # Calcular a soma de VALOR_LANCADO e imprimir os resultados - - estorno = defaultdict(list) - - tamanho = len(grupos_por_ano_mes) - #print(tamanho) - ##loop pra calcular o tamanho do estorno - for (ano, mes,dia), items in sorted(grupos_por_ano_mes.items()): - #print(grupos_por_ano_mes) - for item in items: - if 'estorno' in item.get('HIS_LANCAMENTO', '').lower(): - estorno_valor = item['VALOR_LANCADO'] - estorno[(ano,mes,dia,item['VALOR_LANCADO'])].append(item) - - tamanho2 = len(estorno) - #print(tamanho) - #print(tamanho2) - tamanho = tamanho-tamanho2 - tabela = pegar_caminho(planilha) - #print(tabela) - estilo_conciliacoes_bancaria(tabela,tamanho,tamanho2) - - - workb = openpyxl.load_workbook(tabela) - worksheet3 = workb["Conciliação Bancária"] - i = 16 - j=0 - estorno_valor = 0 - estorno_dia = [] - estorno_mes = [] - estorno_ano = [] - for (ano, mes,dia), items in sorted(grupos_por_ano_mes.items()): - #print(grupos_por_ano_mes) - for item in items: - if 'estorno' in item.get('HIS_LANCAMENTO', '').lower(): - estorno_valor = item['VALOR_LANCADO'] - estorno_dia = dia - estorno_mes = mes - estorno_ano = ano - - - else: - valor_lancado = item['VALOR_LANCADO'] - - - anoss = {1:'jan', - 2:'fev', - 3:'mar', - 4:'abr', - 5:'mai', - 6:'jun', - 7:'jul', - 8:'ago', - 9:'sep', - 10:'out', - 11:'nov', - 12: 'dec' - - } - for a,b in anoss.items(): - #print(a) - if mes == a : - mes = b - cell_data = f'{dia}-{mes}-{ano}' - # print(cell_data) - # print(valor_lancado) - if(valor_lancado != 0): - worksheet3.cell(row=i, column=1, value=cell_data) - worksheet3.cell(row=i,column=2,value=valor_lancado) - worksheet3.cell(row=i,column=4,value= item['HIS_LANCAMENTO']) - else: - i = i - 1 - # print(estorno_valor) - # print(estorno_ano) - # print(estorno_mes) - # print(estorno_dia) - - if(estorno_valor != 0): - worksheet3.cell(row=16+tamanho+j+4, column=1, value=cell_data) - worksheet3.cell(row=16+tamanho+j+4, column=2, value=estorno_valor) - - j = j +1 - - i = i + 1 - valor_lancado = 0 - estorno_valor = 0 - #print(j) - workb.save(tabela) - workb.close - -# ##########################################Rendimento de Aplicação######################################### -def rendimentodeaplicacao(codigo,data1,data2,planilha): - tabela = pegar_caminho(planilha) - workbook = openpyxl.load_workbook(tabela) - sheet2 = workbook.create_sheet(title="Rendimento de Aplicação") - workbook.save(tabela) - workbook.close() - tamanho = [] - categorized_data= separarporrubrica(codigo,data1,data2) - #####pergar os dados do db e separar por mes e ano###################3 - - grupos_por_ano_mes = defaultdict(list) - if 3 not in categorized_data or not categorized_data[3]: - print("Data not available or empty.") - maior = 1 - maior2= 2 - tabela = pegar_caminho(planilha) - estilo_rendimento_de_aplicacao(tabela,maior) - return None # or handle the case accordingly - else: - - for item in categorized_data[3]: - data_criacao_str = item['DATA_CRIACAO'] - - # Converter a string de data para um objeto datetime - data_criacao = datetime.strptime(data_criacao_str, '%d/%m/%Y') - # Extrair o componente do ano e do mês - ano = data_criacao.year - mes = data_criacao.month - dia = data_criacao.day - # Adicionar o item ao grupo correspondente ao ano e mês - - grupos_por_ano_mes[(ano, mes,dia)].append(item) - - # Calcular a soma de VALOR_LANCADO e imprimir os resultados - - estorno = defaultdict(list) - - tamanho = len(grupos_por_ano_mes) - tabela = pegar_caminho(planilha) - #print(tabela) - estilo_rendimento_de_aplicacao(tabela,tamanho) - - - workb = openpyxl.load_workbook(tabela) - worksheet3 = workb["Rendimento de Aplicação"] - i = 14 - - for (ano, mes,dia), items in sorted(grupos_por_ano_mes.items()): - soma_valor_lancado = 0 - for item in items: - soma_valor_lancado += item['VALOR_LANCADO'] - - - anoss = {1:'jan', - 2:'fev', - 3:'mar', - 4:'abr', - 5:'mai', - 6:'jun', - 7:'jul', - 8:'ago', - 9:'sep', - 10:'out', - 11:'nov', - 12: 'dec' - - } - for a,b in anoss.items(): - if mes == a : - mes = b - cell_data = f'{mes}-{ano}' - # print(cell_data) - # print(valor_lancado) - - worksheet3.cell(row=i, column=1, value=cell_data) - worksheet3.cell(row=i,column=8,value=soma_valor_lancado) - - i = i + 1 - - - - workb.save(tabela) - workb.close - ############################## - -def diaria(codigo,data1,data2,planilha): - tabela = pegar_caminho(planilha) - workbook = openpyxl.load_workbook(tabela) - nomeTabela ="Diárias" - tituloStyle = "diarias" - sheet2 = workbook.create_sheet(title="Diárias") - workbook.save(tabela) - workbook.close() - maior = 20 - estiloGeral(tabela,maior,tituloStyle,nomeTabela) - -def auxilio(codigo,data1,data2,planilha): - tabela = pegar_caminho(planilha) - nomeTabela ="Auxílio Financeiro Estudante" - tituloStyle = "auxilioEstudante" - workbook = openpyxl.load_workbook(tabela) - sheet2 = workbook.create_sheet(title="Auxílio Financeiro Estudante") - workbook.save(tabela) - workbook.close() - tamanho = 20 - estiloGeral(tabela,tamanho,tituloStyle,nomeTabela) - -def bolsaExtensao(codigo,data1,data2,planilha): - tabela = pegar_caminho(planilha) - workbook = openpyxl.load_workbook(tabela) - nomeTabela ="Bolsa Extensão" - tituloStyle = "bolsaExtensao" - sheet2 = workbook.create_sheet(title="Bolsa Extensão") - workbook.save(tabela) - workbook.close() - tamanho = 20 - estiloGeral(tabela,tamanho,tituloStyle,nomeTabela) - -def estagiario(codigo,data1,data2,planilha): - tabela = pegar_caminho(planilha) - workbook = openpyxl.load_workbook(tabela) - nomeTabela ="Estagiário" - tituloStyle = "estagiario" - sheet2 = workbook.create_sheet(title="Estagiário") - workbook.save(tabela) - workbook.close() - tamanho = 20 - estiloGeral(tabela,tamanho,tituloStyle,nomeTabela) - -def custoIndireto(codigo,data1,data2,planilha): - tabela = pegar_caminho(planilha) - workbook = openpyxl.load_workbook(tabela) - nomeTabela ="Custos Indiretos - FUB" - tituloStyle = "custosIndiretos" - sheet2 = workbook.create_sheet(title="Custos Indiretos - FUB") - workbook.save(tabela) - workbook.close() - tamanho = 20 - estiloGeral(tabela,tamanho,tituloStyle,nomeTabela) - -def relacaodeBens(codigo,data1,data2,planilha): - tabela = pegar_caminho(planilha) - workbook = openpyxl.load_workbook(tabela) - nomeTabela ="Relação de Bens" - tituloStyle = "relacaoBEns" - sheet2 = workbook.create_sheet(title="Relação de Bens") - workbook.save(tabela) - workbook.close() - tamanho = 20 - estiloRelacaoBens(tabela,tamanho,tituloStyle,nomeTabela) - -def materialDeConsumo(codigo,data1,data2,planilha): - tabela = pegar_caminho(planilha) - workbook = openpyxl.load_workbook(tabela) - nomeTabela ="Material de Consumo" - tituloStyle = "materialDeConsumo" - sheet2 = workbook.create_sheet(title="Material de Consumo") - workbook.save(tabela) - workbook.close() - tamanho = 20 - estiloGeral(tabela,tamanho,tituloStyle,nomeTabela) - -def equipamentoMaterialPermanente(codigo,data1,data2,planilha): - tabela = pegar_caminho(planilha) - workbook = openpyxl.load_workbook(tabela) - nomeTabela ="Equipamento Material Permanente" - tituloStyle = "equipamentoMaterialPermanente" - sheet2 = workbook.create_sheet(title="Equipamento Material Permanente") - workbook.save(tabela) - workbook.close() - tamanho = 20 - estiloGeral(tabela,tamanho,tituloStyle,nomeTabela) - -def demonstrativo(codigo,data1,data2,planilha): - tabela = pegar_caminho(planilha) - workbook = openpyxl.load_workbook(tabela) - sheet2 = workbook.create_sheet(title="Demonstrativo de Receita") - workbook.save(tabela) - workbook.close() - tamanho = 20 - estilo_demonstrativoDeReceita(tabela,tamanho) - -def preencher_fub_teste(codigo,data1,data2,keys,tabela): - criaout(tabela,codigo,data1,data2) - preencherCapa(codigo,tabela) - pessoa_fisica(codigo,data1,data2,keys,tabela) - pessoa_juridica(codigo,data1,data2,keys,tabela) - #iss(codigo,data1,data2,keys,tabela) - passagem_locomção(codigo,data1,data2,keys,tabela) - terclt(codigo,data1,data2,keys,tabela) - obricacao_tributaria(codigo,data1,data2,keys,tabela) - conciliacao_bancaria(codigo,data1,data2,tabela) - rendimentodeaplicacao(codigo,data1,data2,tabela) - diaria(codigo,data1,data2,tabela) - auxilio(codigo,data1,data2,tabela) - bolsaExtensao(codigo,data1,data2,tabela) - estagiario(codigo,data1,data2,tabela) - custoIndireto(codigo,data1,data2,tabela) - materialDeConsumo(codigo,data1,data2,tabela) - equipamentoMaterialPermanente(codigo,data1,data2,tabela) - demonstrativo(codigo,data1,data2,tabela) - relacaodeBens(codigo,data1,data2,tabela) - - -# keys = ['NOME_FAVORECIDO','CNPJ_FAVORECIDO','TIPO_LANCAMENTO','HIS_LANCAMENTO','DATA_EMISSAO','DATA_PAGAMENTO', 'VALOR_PAGO'] -# tabela = pegar_caminho("Modelo_Fub.xlsx") -# preencher_fub_teste(6411,'2020-01-01','2024-01-31',keys,tabela) - -# pessoa_fisica(6858,'2022-09-09','2022-12-09',keys) diff --git a/project/app/preenche_fundep.py b/project/app/preenche_fundep.py deleted file mode 100644 index 302b7a31..00000000 --- a/project/app/preenche_fundep.py +++ /dev/null @@ -1,157 +0,0 @@ -import oracledb -from datetime import datetime,date -import openpyxl -import os -from .estilo_fundep import estilo_fundep -from .oracle_cruds import consultaPorID -from openpyxl.styles import Font,Alignment -def check_format(time_data, format='%Y-%m-%d'): - try: - # Try to parse the time_data using the specified format - datetime.strptime(time_data, format) - return True # The time_data matches the format - except ValueError: - return False # The time_data does not match the format - -def pegar_caminho(nome_arquivo): - - # Obter o caminho absoluto do arquivo Python em execução - caminho_script = os.path.abspath(__file__) - - # Obter o diretório da pasta onde o script está localizado - pasta_script = os.path.dirname(caminho_script) - - # Combinar o caminho da pasta com o nome do arquivo Excel - caminho = os.path.join(pasta_script, nome_arquivo) - - return caminho - -def convert_datetime_to_string(value): - if isinstance(value, datetime): - return value.strftime('%d/%m/%Y') - return value -#connection string in the format -#/@:/ a[87] - - -def preenche_fundep(codigo,data1,data2,keys,planilha): - dados_db = get_values_from_dict(codigo,data1,data2) - input_date = [] - output_date_str = [] - input_date2 = [] - output_date_str2 = [] - if check_format(data1): - input_date = datetime.strptime(data1, "%Y-%m-%d") - # Format the datetime object to a string in dd/mm/yyyy format - output_date_str = input_date.strftime("%d/%m/%Y") - else : - return None - if check_format(data2): - input_date2 = datetime.strptime(data2, "%Y-%m-%d") - # Format the datetime object to a string in dd/mm/yyyy format - output_date_str2 = input_date2.strftime("%d/%m/%Y") - else : - return None - - string_periodo = f"{output_date_str} a {output_date_str2}" - - - #dados_gerais = retornavalores(dados_db,keys) - tamanho = [] - for j in keys: - lj = [j] - valores_dboracle = retornavalores(dados_db,lj) - size = len(valores_dboracle) - tamanho.append(size) - maior = max(tamanho) - print(tamanho) - tabela = pegar_caminho(planilha) - estilo_fundep(tabela,maior) - - workb = openpyxl.load_workbook(tabela) - worksheet5 = workb['Relação de despesas'] - worksheet5['I5'] = string_periodo - worksheet5['I5'].font= Font(name="Calibri", size=10, color="000000") - worksheet5['I5'].alignment = Alignment(horizontal="left",vertical="bottom",wrap_text=True) - - for i in range(1,maior+1): - valor_coluna = 6 + i - worksheet5.cell(row=valor_coluna, column=2, value=i) # column index starts from 1 - - for i in range(1,maior+1): - valor_coluna = 6 + i - worksheet5.cell(row=valor_coluna, column=1, value=1) # column index starts from 1 - - coluna = 3 - for i in keys: - li = [i] - valores_preenchimento = retornavalores(dados_db,li) - for rowkek, cell_data in enumerate(valores_preenchimento, start=7): - worksheet5.cell(row=rowkek, column=coluna, value=cell_data) - if coluna == 5 or coluna == 7 : - coluna = coluna + 1 - - coluna = coluna + 1 - - - workb.save(tabela) - workb.close() - \ No newline at end of file diff --git a/project/app/static/css/cadastro.css b/project/app/static/css/cadastro.css deleted file mode 100644 index 98ecf9fb..00000000 --- a/project/app/static/css/cadastro.css +++ /dev/null @@ -1,192 +0,0 @@ -* { - font-family: "Montserrat", sans-serif; -} - -body { - background-image: linear-gradient(#021842 50%, #253E6C); - flex-direction: column; - display: flex; - margin: 0; - height: 100vh; - width: 100vw; -} -header { - display: flex; - align-items: center; - justify-content: space-between; - background-color: #021842; - color: #ffffff; - height: 100px; - box-shadow: 10px 5px 5px #021233; -} - -.navButton{ - display: flex; - align-items: center; - justify-content: space-between; - margin-right: 100px; -} -.navButton p, a{ - text-decoration: none; - margin-left: 10px; -} - -/* .navButton .link.highlighted { - background-color: yellow; -} */ -img { - height: 20px; -} -.finatecLogo{ - margin-left: 100px; -} - -.profile{ - height: 38px; -} - -.logo { - width: 100px; - height: 100px; -} - -h1 { - font-size: 18px; -} - -/* estilizacao */ - -.content { - height: 100%; - width: 100%; - display: flex; - justify-content: center; - align-items: center; - flex-direction: column; - /* background-image: url('{% static "imagem/fundoLogo.svg" %}'); - background-size: cover; - background-repeat: no-repeat; */ -} - -.footer { - padding: 20px 0px; - color: #ffffff; - align-self: center; -} - -.container { - display: flex; - align-items: center; - padding: 24px 72px; - width: 600px; - flex-direction: column; - flex-shrink: 0; - border-radius: 20px; - border: 1px solid #bcbcbc; - color: #000000; - background-color: #ffffff; - gap: 1em; -} - -.form { - display: flex; - flex-direction: column; - gap: 4em; - width: 100%; -} - -.inputGroup { - display: flex; - flex-direction: column; - gap: 1em; -} - -.input { - margin-left: 10px; - margin-right: 10px; - display: flex; - flex-direction: column; - gap: 0.5em; - width: 100%; -} -.button-submit { - color: #ffffff; - background: #021842; - border: none; - border-radius: 20px; - padding: 10px 20px; - width: 50%; - font-weight: 600; - transition: 0.3s; - cursor: pointer; -} -.cardSubmit{ - display: flex; - justify-content: center; -} - -.button-submit:hover { - background: #F39B00; -} - -.placeholder { - flex-shrink: 0; - border-radius: 20px; - border: 1px solid #bcbcbc; - background: rgba(0, 0, 0, 0); - padding: 10px 20px; - color: #323232; -} - -.name { - font-size: 12px; - font-weight: 600; -} - -.placeholder::placeholder { - color: #323232; -} - -.link { - color: #bcbcbc; -} - -.linkS{ - color: #f39b00; - } - -.otherLogin { - font-size: 12px; -} - -.placeholder option { - color: black; -} - -.button-logout { - color: #004661; - background: #ffffff; - border: none; - border-radius: 20px; - padding: 10px 20px; - width: 10%; - font-weight: 600; - transition: 0.3s; - cursor: pointer; - position: absolute; - right: 150px; - display: flex; - align-items: center; - justify-content: center; - margin-top: 30px; -} - -.button-logout:hover { - background: #ff3838; - color: #fff; -} - -.together{ - display: flex; - justify-content: space-between; -} \ No newline at end of file diff --git a/project/app/static/css/home.css b/project/app/static/css/home.css deleted file mode 100644 index befcc660..00000000 --- a/project/app/static/css/home.css +++ /dev/null @@ -1,262 +0,0 @@ -* { - font-family: "Montserrat", sans-serif; -} - -body { - background: linear-gradient(#021842, #213A68); - flex-direction: column; - display: flex; - margin: 0; - height: 100vh; - width: 100vw; -} -header { - display: flex; - align-items: center; - justify-content: space-around; - background-color: #ffffff; - color: #004661; - height: 100px; -} - -img { - width: 203px; - height: 58px; -} - -.logo { - width: 100px; - height: 100px; -} - -h1 { - font-size: 18px; -} - -h2 { - font-size: 60px; - font-weight: bold; - margin: 0; -} -h3 { - font-size: 20px; - font-weight: 400; - margin-top: 10px; - margin-bottom: 30px; -} -/* estilizacao */ - -.content { - height: 100%; - width: 100%; - display: flex; - justify-content: center; - align-items: center; - flex-direction: column; -} - -.footer { - padding: 20px 0px; - color: #8a8989; - align-self: center; -} - -.container { - display: flex; - align-items: center; - padding: 24px 72px; - width: 280px; - flex-direction: column; - flex-shrink: 0; - border-radius: 20px; - border: 1px solid #bcbcbc; - color: #ffffff; - gap: 1em; -} - -.form { - display: flex; - flex-direction: column; - gap: 4em; - width: 100%; -} - -.inputGroup { - display: flex; - flex-direction: column; - gap: 1em; -} - -.input { - display: flex; - flex-direction: column; - gap: 0.5em; - width: 100%; -} - -.button-submit { - color: #004661; - background: #ffffff; - border: none; - border-radius: 20px; - padding: 10px 20px; - width: 100%; - font-weight: 600; - transition: 0.3s; - cursor: pointer; -} - -.button-submit:hover { - background: #bcbcbc; -} - -.placeholder { - flex-shrink: 0; - border-radius: 20px; - border: 1px solid #bcbcbc; - background: rgba(0, 0, 0, 0); - padding: 10px 20px; - color: #ffffff; -} - -.name { - font-size: 12px; - font-weight: 600; -} - -.placeholder::placeholder { - color: #ffffff; -} - -.link { - color: #bcbcbc; -} - -.otherLogin { - font-size: 12px; -} - -.placeholder option { - color: black; -} - -.button-logout{ - color: #004661; - background: #ffffff; - border: none; - border-radius: 20px; - padding: 10px 20px; - width: 10%; - font-weight: 600; - transition: 0.3s; - cursor: pointer; - position: absolute; - right: 150px; - display: flex; - align-items: center; - justify-content: center; - margin-top: 30px; -} - -.button-logout:hover { - background: #FF3838; - color: #FFF; -} - -/* navbar */ -.navButton { - display: flex; - align-items: center; - justify-content: space-between; - margin-right: 100px; -} -.navButton p, -a { - text-decoration: none; - margin-left: 10px; -} - -.otherLogin { - font-size: 12px; -} - -.finatecLogo { - margin-left: 100px; -} - - -/* home */ - -.content2 { - height: 100%; - display: flex; - justify-content: center; - align-items: center; - flex-direction: column; -} - -.div-lado-a-lado { - display: flex; - align-items: center; - color: #ffffff; - gap: 1em; -} - -.div1 { - flex: 1; - justify-content: center; - align-items: center; - flex-direction: column; - width: 500px; - padding-left: 60px; -} -.div2 { - flex: 1; - display: flex; - justify-content: center; - align-items: center; - flex-direction: column; -} - -.logo2 { - width: 400px; - height: auto; - align-items: center; -} - -.button-submit3 { - flex: 1; - color: #021842; - background: #ffffff; - border: none; - border-radius: 20px; - width: 200px; - height: 60px; - font-weight: 600; - font-size: 20px; - transition: 0.3s; - cursor: pointer; -} - -.button-submit3:hover { - background: #F39B00; -} - -.button-submit4 { - flex: 1; - color: #ffffff; - background: #021842; - border: none; - border-radius: 20px; - width: 200px; - height: 60px; - font-weight: 600; - font-size: 20px; - transition: 0.3s; - cursor: pointer; -} - -.button-submit4:hover { - background: #F39B00; -} - diff --git a/project/app/static/css/style.css b/project/app/static/css/style.css deleted file mode 100644 index 79fb97cf..00000000 --- a/project/app/static/css/style.css +++ /dev/null @@ -1,273 +0,0 @@ -* { - font-family: "Montserrat", sans-serif; -} - -body { - background-image: linear-gradient(#021842 50%, #253e6c); - flex-direction: column; - display: flex; - margin: 0; - height: 100vh; - width: 100vw; -} -header { - display: flex; - align-items: center; - justify-content: space-between; - background-color: #021842; - color: #ffffff; - height: 100px; - box-shadow: 10px 5px 5px #021233; -} - -.navButton { - display: flex; - align-items: center; - justify-content: space-between; - margin-right: 100px; -} -.navButton p, -a { - text-decoration: none; - margin-left: 10px; -} - -/* .navButton .link.highlighted { - background-color: yellow; -} */ -img { - height: 20px; -} - -.finatecLogo { - margin-left: 100px; -} - -.profile { - height: 38px; -} - -.logo { - width: 100px; - height: 100px; -} - -h1 { - font-size: 18px; -} - -/* estilizacao */ - -.content { - height: 100%; - width: 100%; - display: flex; - justify-content: center; - align-items: center; - flex-direction: column; -} - -.footer { - padding: 20px 0px; - color: #ffffff; - align-self: center; -} - -.container { - display: flex; - align-items: center; - padding: 24px 72px; - width: 280px; - flex-direction: column; - flex-shrink: 0; - border-radius: 20px; - border: 1px solid #bcbcbc; - color: #000000; - background-color: #ffffff; - gap: 1em; -} -.containerProject { - display: flex; - align-items: center; - padding: 24px 72px; - width: 280px; - flex-direction: column; - flex-shrink: 0; - border-radius: 20px; - border: 1px solid #bcbcbc; - color: white; - gap: 1em; -} - -.form { - display: flex; - flex-direction: column; - gap: 4em; - width: 100%; -} - -.inputGroup { - display: flex; - flex-direction: column; - gap: 1em; -} - -.input { - display: flex; - flex-direction: column; - gap: 0.5em; - width: 100%; -} -.inputExport { - display: flex; - justify-content: end; -} - -.button-submit { - color: #ffffff; - background: #021842; - border: none; - border-radius: 20px; - padding: 10px 20px; - width: 50%; - font-weight: 600; - transition: 0.3s; - cursor: pointer; -} - -.button-submit:hover { - background: #f39b00; -} -.cardSubmit { - display: flex; - justify-content: center; -} - -.placeholder { - flex-shrink: 0; - border-radius: 20px; - border: 1px solid #bcbcbc; - background: rgba(0, 0, 0, 0); - padding: 10px 20px; - color: #323232; -} -.placeholderProject { - flex-shrink: 0; - border-radius: 20px; - border: 1px solid #bcbcbc; - background: rgba(0, 0, 0, 0); - padding: 10px 20px; - color: white; -} - -.name { - font-size: 12px; - font-weight: 600; -} - -.placeholder::placeholder { - color: #323232; -} -.placeholderProject::placeholder { - color: white; -} - -.link { - color: #bcbcbc; -} - -.linkS{ - color: #f39b00; - } - -.otherLogin { - font-size: 12px; -} - -.placeholder option { - color: black; -} -.placeholderProject option { - color: white; -} - -.placeholderProject .option-model{ - color: black; -} - -.button-logout { - color: #004661; - background: #ffffff; - border: none; - border-radius: 5px; - /* padding: 10px 20px; */ - width: 80px; - height: 30px; - font-weight: 600; - transition: 0.3s; - cursor: pointer; - /* position: absolute; */ - /* right: 150px; */ - display: flex; - align-items: center; - justify-content: center; - /* margin-top: 30px; */ -} - -/* .button-logout:hover { - background: #ff3838; - color: #fff; -} */ - -/* ul { - list-style: none; -} -ul li { - display: inline-block; - position: relative; -} -ul li a { - display: block; - text-decoration: none; - text-align: center; -} -ul li ul.dropdown li { - display: block; -} -ul li ul.dropdown { - width: 100%; - z-index: 999; - display: none; -} -ul li a:hover { - background-color: red; -} -ul li:hover ul.dropdown { - display: block; -} */ - -.dropdown { - position: relative; - display: inline-block; -} - -.dropdown-content { - display: none; /* Removido o display: block; */ - position: absolute; - background-color: #f9f9f9; - width: 70px; - height: 20px; - /* box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2); */ - /* padding: 12px 16px; */ - z-index: 1; -} - -.sairImagem { - width: 20px; - margin-right: 10px; -} - -input[type="date"]::-webkit-calendar-picker-indicator { - cursor: pointer; - filter: invert(0.8) brightness(100%) sepia(0%) saturate(10000%) hue-rotate(0deg); -} diff --git a/project/app/static/imagem/finateclogo.svg b/project/app/static/imagem/finateclogo.svg deleted file mode 100644 index 801b0b43..00000000 --- a/project/app/static/imagem/finateclogo.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/project/app/static/imagem/fundoLogo.svg b/project/app/static/imagem/fundoLogo.svg deleted file mode 100644 index 8573006b..00000000 --- a/project/app/static/imagem/fundoLogo.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/project/app/static/imagem/logo.svg b/project/app/static/imagem/logo.svg deleted file mode 100644 index d58c868e..00000000 --- a/project/app/static/imagem/logo.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/project/app/static/imagem/logoFinatec.png b/project/app/static/imagem/logoFinatec.png deleted file mode 100644 index 9a4887155eaef91d4de6945f3a2833e1f7cf3cd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10833 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 bM|$A@_-R|P@C~X(00000NkvXXu0mjf;1P-T diff --git a/project/app/static/imagem/perfil.svg b/project/app/static/imagem/perfil.svg deleted file mode 100644 index 202307e3..00000000 --- a/project/app/static/imagem/perfil.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/project/app/static/imagem/perfilC.svg b/project/app/static/imagem/perfilC.svg deleted file mode 100644 index 1d47b4d7..00000000 --- a/project/app/static/imagem/perfilC.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/project/app/static/imagem/sairImg.svg b/project/app/static/imagem/sairImg.svg deleted file mode 100644 index d17a0924..00000000 --- a/project/app/static/imagem/sairImg.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/project/app/templates/base.html b/project/app/templates/base.html deleted file mode 100644 index d9efb18c..00000000 --- a/project/app/templates/base.html +++ /dev/null @@ -1,30 +0,0 @@ -{% load static %} - - - - AutomaTEC - - - - - - - - - - - - - {% block conteudo %} - - {% endblock %} -

- - \ No newline at end of file diff --git a/project/app/templates/cadastro.html b/project/app/templates/cadastro.html deleted file mode 100644 index 1c9ef4b5..00000000 --- a/project/app/templates/cadastro.html +++ /dev/null @@ -1,120 +0,0 @@ -{% extends 'base.html' %} -{% block conteudo %} -{% load static %} - - - -
- - -
- -
-

Cadastro

- -
- {% csrf_token %} -
-
-
- - -
-
- - -
-
-
-
- - -
-
- - -
-
-
-
- - -
-
- - -
-
-
-
- -
-
- {% if error_messages %} -
    - {% for message in error_messages %} -
  • {{ message }}
  • - {% endfor %} -
- {% endif %} -

Possui uma conta? Logar

-
-
- -{% endblock %} \ No newline at end of file diff --git a/project/app/templates/cadastro_legado.html b/project/app/templates/cadastro_legado.html deleted file mode 100644 index 3cc2e497..00000000 --- a/project/app/templates/cadastro_legado.html +++ /dev/null @@ -1,99 +0,0 @@ -{% load static %} - - - - AutomaTEC - - - - - - - - - - - - -
- finatec -

Sistema de prestação automático

-
- -
- -

Cadastrar

-
- {% csrf_token %} -
-
- - -
-
- - -
-
- -
- {% if error_messages %} -
    - {% for message in error_messages %} -
  • {{ message }}
  • - {% endfor %} -
- {% endif %} -

Possui uma conta? Logar

-
-
-
Copyright BRISA 2021©. Todos direitos reservados.
- - - \ No newline at end of file diff --git a/project/app/templates/home.html b/project/app/templates/home.html deleted file mode 100644 index d9b73d42..00000000 --- a/project/app/templates/home.html +++ /dev/null @@ -1,37 +0,0 @@ -{% extends 'base.html' %} -{% block conteudo %} -{% load static %} - - - - -
- - -
- - -
-
-

Automatec

-

Sistema de prestação de contas automático.
Facilidade no dia a dia da FINATEC.

- -
-
- logo -
-
-
- -{% endblock %} \ No newline at end of file diff --git a/project/app/templates/login.html b/project/app/templates/login.html deleted file mode 100644 index 113ccda8..00000000 --- a/project/app/templates/login.html +++ /dev/null @@ -1,94 +0,0 @@ -{% extends 'base.html' %} -{% block conteudo %} -{% load static %} - - - -
- - -
- -
-

Login

- -
- {% csrf_token %} -
-
- - -
-
- - -
-
-
- -
-
- {% if error_message %} -

{{ error_message }}

- {% endif %} -

Não possui uma conta? criar

-
-
- -{% endblock %} \ No newline at end of file diff --git a/project/app/templates/login_legado.html b/project/app/templates/login_legado.html deleted file mode 100644 index a157f4a9..00000000 --- a/project/app/templates/login_legado.html +++ /dev/null @@ -1,95 +0,0 @@ -{% load static %} - - - - AutomaTEC - - - - - - - - - - - - -
- finatec -

Sistema de prestação automático

-
- - -
- -

Login

-
- {% csrf_token %} -
-
- - -
-
- - -
-
- -
- {% if error_message %} -

{{ error_message }}

- {% endif %} -

Não possui uma conta? criar

-
-
-
Copyright BRISA 2021©. Todos direitos reservados.
- - \ No newline at end of file diff --git a/project/app/templates/projeto.html b/project/app/templates/projeto.html deleted file mode 100644 index 0bc96c78..00000000 --- a/project/app/templates/projeto.html +++ /dev/null @@ -1,147 +0,0 @@ -{% extends 'base.html' %} {% block conteudo %} {% load static %} - - - -
- - -
- - -
- -

Selecione o projeto

-
- {% csrf_token %} -
-
- - -
-
- - -
-
- - -
-
- - -
-
-
- -
- -
-
-
- -{% endblock %} diff --git a/project/app/templates/projeto_legado.html b/project/app/templates/projeto_legado.html deleted file mode 100644 index 26cfb632..00000000 --- a/project/app/templates/projeto_legado.html +++ /dev/null @@ -1,101 +0,0 @@ -{% load static %} - - - - AutomaTEC - - - - - - - - - - -
- finatec -

Sistema de prestação automático

-
- -
- {% csrf_token %} - -
- - - -
- -

Selecione o projeto

-
- {% csrf_token %} -
-
- - -
-
- - -
-
- - -
-
-
-
Copyright BRISA 2021©. Todos direitos reservados.
- - \ No newline at end of file diff --git a/project/app/tests.py b/project/app/tests.py deleted file mode 100644 index 7ce503c2..00000000 --- a/project/app/tests.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.test import TestCase - -# Create your tests here. diff --git a/project/app/urls.py b/project/app/urls.py deleted file mode 100644 index d805c123..00000000 --- a/project/app/urls.py +++ /dev/null @@ -1,16 +0,0 @@ -from django.urls import path -from . import views -from django.contrib.auth import views as auth_views - -from .views import HomeView - -urlpatterns = [ - path('', HomeView.as_view(), name='home'), - path("cadastro/", views.cadastro, name="cadastro"), - path('login/', views.login, name='login' ), - path('projeto/', views.projeto, name='projeto'), - path('logout/', views.custom_logout, name='logout'), - # path('login_teste/', views.login_teste, name='login_teste'), - # path('cadastro_teste/', views.cadastro_teste, name='cadastro_teste'), - # path('projeto_teste/', views.projeto_teste, name='projeto_teste'), -] \ No newline at end of file diff --git a/project/app/views.py b/project/app/views.py deleted file mode 100644 index 04fd14e5..00000000 --- a/project/app/views.py +++ /dev/null @@ -1,379 +0,0 @@ -from django.shortcuts import render -from django.contrib.auth.models import User -from django.contrib.auth import authenticate -from django.contrib.auth import login as login_a -from django.contrib.auth.decorators import login_required -from django.http import HttpResponseRedirect,HttpResponse -from django.shortcuts import redirect -from django.contrib.auth import logout -from django.contrib.auth.password_validation import validate_password -from django.views.generic import TemplateView -from .models import Template -from .oracle_cruds import consultaPorID -from .new_dev import preenche_planilha,extrair,pegar_caminho -from .preenche_fub import preencher_fub_teste -from .preenche_fundep import preenche_fundep -import os -import datetime -import re - -from .capa import inserir_round_retangulo -def convert_datetime_to_string(value): - if isinstance(value, datetime.datetime): - return value.strftime('%d/%m/%Y') - return value -def extract_strings(input_string): - # Use regular expressions to find the text before and after '@@' - matches = re.findall(r'(.*?)@@(.*?)@@', input_string) - - if matches: - return tuple(matches[0]) - else: - - return (input_string, '') - -class HomeView(TemplateView): - template_name = 'home.html' - - -def cadastro(request): - if request.method == "GET": - return render(request, 'cadastro.html') - else: - usuario = request.POST.get('usuario') - senha = request.POST.get('senha') - senha_confirmacao = request.POST.get('senhaConfirm') - email = request.POST.get('email') - first_name = request.POST.get('nome1') - last_name = request.POST.get('nome2') - - try: - validate_password(senha, user=User) - except Exception as e: - error_messages = e.messages - return render(request, 'cadastro.html', {'error_messages': error_messages}) - - user = User.objects.filter(username=usuario).first() - - if user: - error_messages = ['Usuário já existe'] - return render(request, 'cadastro.html', {'error_messages': error_messages}) - - if senha != senha_confirmacao: - error_messages = ['A senha e a confirmação da senha não coincidem.'] - return render(request, 'cadastro.html', {'error_messages': error_messages}) - - user = User.objects.create_user(username=usuario, password=senha, email=email) - user.is_active = True - user.first_name = first_name - user.last_name = last_name - user.save() - - return HttpResponseRedirect('/login/') - -def login(request): - if request.method =="GET": - return render(request, 'login.html') - else: - usuario = request.POST.get('usuario') - senha = request.POST.get('senha') - - user = authenticate(username=usuario, password=senha) - - if user: - login_a(request, user) - return HttpResponseRedirect ('/projeto/') - else: - error_message = 'Usuário ou senha inválido.' - return render(request, 'login.html', {'error_message': error_message}) - -@login_required(login_url="/login/") -def projeto(request): - # if request.user.is_authenticated: - # return HttpResponse('Projetos') - # else: - - global tabe - lista_append_db_sql = [] - result = {} - current_key = None - mapeamento = None - coduaigo = request.POST.get('usuario') - template_id = request.POST.get('template') - download = request.POST.get('Baixar') - data1 = request.POST.get('inicio') - data2 = request.POST.get('fim') - print(type(data1)) - print(data2) - try: - db_fin = consultaPorID(coduaigo) - except: - return render(request,'projeto.html',{ - "templates":Template.objects.all(), - }) - - - - # nome = Template.objects.get(pk=template_id) - # nome = Template.objects.get(pk=template_id) - try: - nome = Template.objects.get(pk=template_id) - except: - return render(request,'projeto.html',{ - "templates":Template.objects.all(), - }) - mapeamento = nome.mapeamento - #print(nome.mapeamento) - attribute_names = [ - #"id_mapeamento", - "codigo", - "nome", - "saldo", - "data_assinatura", - "data_vigencia", - "data_encerramento", - "tipo_contrato", - "instituicao_executora", - "processo", - "subprocesso", - "cod_proposta", - "proposta", - "objetivos", - "valor_aprovado", - "nome_tp_controle_saldo", - "grupo_gestores", - "gestor_resp", - "coordenador", - "procedimento_compra", - "tab_frete", - "tab_diarias", - "custo_op", - "nome_financiador", - "departamento", - "situacao", - "banco", - "agencia_bancaria", - "conta_bancaria", - "centro_custo", - "conta_caixa", - "categoria_projeto", - "cod_convenio_conta", - "cod_status", - "ind_sub_projeto", - "tipo_custo_op", - "projeto_mae", - "id_coordenador", - "id_financiador", - "id_instituicao", - "id_departamento", - "nome_instituicao", - "id_instituicao_executora", - "id_tipo" - ] - - # Check for non-empty attributes and print their names - for attribute_name in attribute_names: - attribute_value = getattr(mapeamento, attribute_name) - if attribute_value: - lista_append_db_sql.append(f"{attribute_value}@@{attribute_name}@@") - - print(lista_append_db_sql) - print('\n') - print(mapeamento.id_mapeamento) - print('\n') - print(mapeamento.data_vigencia) - output = [] - result = {} - current_key = None - current_subkey = None - - for line in lista_append_db_sql: - parts = line.strip().split(";") - i = 0 - - while i < len(parts): - if i + 2 < len(parts): - key = parts[i] - subkey = parts[i + 1] - subsubkey = parts[i + 2] - value = extrair(parts) - #print(value) - - if key == current_key: - - result[key].append((subkey,f"{subsubkey}@@{value[0].upper()}@@")) - - - else: - # If the key is different, create a new list - current_key = key - if key in result: - result[key].append((subkey,f"{subsubkey}@@{value[0].upper()}@@")) - else: - result[key]= [(subkey, f"{subsubkey}@@{value[0].upper()}@@")] - i += 3 - - output_dict = {key: value for key, value in result.items()} - - - #print(output_dict) - - # for key, value_list in output_dict.items(): - # for i, (position, template) in enumerate(value_list): - # placeholder = None - # if "'" in template: - # placeholder = template.split("'")[1] - # if placeholder in db_fin: - # value_to_insert = db_fin[placeholder] - # # Convert datetime objects to strings if necessary - # if isinstance(value_to_insert, datetime.datetime): - # value_to_insert = value_to_insert.strftime('%Y-%m-%d') - # if value_to_insert is not None: - # # Replace the template with the actual value - # value_list[i] = (position, template.replace(f"'{placeholder}'", value_to_insert)) - - # Crie um novo dicionário para armazenar os resultados - novo_dicionario = {} - - # Itere sobre o primeiro dicionário - for chave, lista_de_tuplas in output_dict.items(): - nova_lista_de_tuplas = [] - for tupla in lista_de_tuplas: - chave_do_segundo_dicionario = tupla[1] - #print(chave_do_segundo_dicionario) - #print(type(chave_do_segundo_dicionario)) - string_before, string_between = extract_strings(chave_do_segundo_dicionario) - valor_do_segundo_dicionário = db_fin.get(string_between, '') - #print(valor_do_segundo_dicionário) - valor_formatado = convert_datetime_to_string(valor_do_segundo_dicionário) - #print(valor_formatado) - #nova_tupla = (tupla[0],f"{strings[0]} {valor_formatado}") - nova_tupla = (tupla[0],f"{string_before}{valor_formatado}") - nova_lista_de_tuplas.append(nova_tupla) - novo_dicionario[chave] = nova_lista_de_tuplas - - #print(novo_dicionario) - - - dict_final = {} - for key, values in novo_dicionario.items(): - combined_values = {} - for item in values: - if item[0] in combined_values: - combined_values[item[0]] += ' ' + item[1] # Add a space before appending - else: - combined_values[item[0]] = item[1] - - dict_final[key] = [(k, v) for k, v in combined_values.items()] - - #print(dict_final) - tabe = None - if nome.nome_template == "fundep": - tabe = preenche_planilha("planilhas/ModeloFUNDEP.xlsx",dict_final) - if nome.nome_template == "fub": - tabe = preenche_planilha("planilhas/Modelo_Fub.xlsx",dict_final) - if nome.nome_template == "opas": - tabe = preenche_planilha("planilhas/ModeloOPAS.xlsx",dict_final) - if nome.nome_template == "fap": - tabe = preenche_planilha("planilhas/ModeloFAP.xlsx",dict_final) - if nome.nome_template == "finep": - tabe = preenche_planilha("planilhas/ModeloFINEP.xlsx",dict_final) - - - - - - - file_path = None - print(f"download{template_id}") - if template_id == '1': - keys = ['NOME_FAVORECIDO','CNPJ_FAVORECIDO','TIPO_LANCAMENTO','HIS_LANCAMENTO','DATA_EMISSAO','DATA_PAGAMENTO', 'VALOR_PAGO'] - file_path = pegar_caminho('planilhas_preenchidas/planilhas/Modelo_Fub.xlsx') - # data_obj = datetime.strptime(data1, "%Y-%m-%d") - # data1 = data_obj.strftime("%d/%m/%Y") - # data_obj2 = datetime.strptime(data2, "%Y-%m-%d") - # data2 = data_obj2.strftime("%d/%m/%Y") - preencher_fub_teste(coduaigo,convert_datetime_to_string(data1),convert_datetime_to_string(data2),keys,file_path) - inserir_round_retangulo(file_path,data1,data2,db_fin) - elif template_id == '2': - keys = ['NOME_FAVORECIDO','CNPJ_FAVORECIDO','NOME_RUBRICA','DATA_EMISSAO','DATA_PAGAMENTO', 'VALOR_PAGO'] - file_path = pegar_caminho('planilhas_preenchidas/planilhas/ModeloFUNDEP.xlsx') - preenche_fundep(coduaigo,convert_datetime_to_string(data1),convert_datetime_to_string(data2),keys,file_path) - elif template_id == '3': - - file_path = pegar_caminho('planilhas_preenchidas/planilhas/ModeloOPAS.xlsx') - elif template_id == '4': - - file_path = pegar_caminho('planilhas_preenchidas/planilhas/ModeloFAP.xlsx') - elif template_id == '5': - - file_path = pegar_caminho('planilhas_preenchidas/planilhas/ModeloFINEP.xlsx') - else: - # Handle cases where 'download' doesn't match any expected values - return HttpResponse("Invalid download request", status=400) - #print(file_path) - # Check if the file exists - - #print(os.path.exists(file_path)) - if os.path.exists(file_path): - with open(file_path, 'rb') as f: - response = HttpResponse(f.read(), content_type='application/octet-stream') - #print(f'aaaa{os.path.basename(file_path)}') - response['Content-Disposition'] = f'attachment; filename="{os.path.basename(file_path)}"' - return response - else: - print("Invalid aaaaaaaaaaa request") - - return render(request,'projeto.html',{ - "templates":Template.objects.all(), - - }) - -def custom_logout(request): - logout(request) - return redirect('/') - -# def login_teste(request): -# if request.method =="GET": -# return render(request, 'login_teste.html') -# else: -# usuario = request.POST.get('usuario') -# senha = request.POST.get('senha') - -# user = authenticate(username=usuario, password=senha) - -# if user: -# login_a(request, user) -# return HttpResponseRedirect ('http://127.0.0.1:8000/projeto/') -# else: -# error_message = 'Usuário ou senha inválido.' -# return render(request, 'login_teste.html', {'error_message': error_message}) - -# def cadastro_teste(request): -# if request.method == "GET": -# return render(request, 'cadastro_teste.html') -# else: -# usuario = request.POST.get('usuario') -# senha = request.POST.get('senha') - -# try: -# validate_password(senha, user=User) -# except Exception as e: -# error_messages = e.messages -# return render(request, 'cadastro_teste.html', {'error_messages': error_messages}) - -# user = User.objects.filter(username=usuario).first() - -# if user: -# error_messages = ['Usuário já existe'] -# return render(request, 'cadastro_teste.html', {'error_messages': error_messages}) - -# user = User.objects.create_user(username=usuario, password=senha) -# user.save() - -# @login_required(login_url="/") -# def projeto_teste(request): -# # if request.user.is_authenticated: -# # return HttpResponse('Projetos') -# # else: -# return render(request, 'projeto_teste.html') \ No newline at end of file diff --git a/project/backend/__init__.py b/project/backend/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/project/backend/__pycache__/__init__.cpython-38.pyc b/project/backend/__pycache__/__init__.cpython-38.pyc deleted file mode 100644 index 4804c0aff3e46c0d0d5433c3f2f6a957f534340f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167 zcmWIL<>g`k0^{pJsUZ3>h(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o6v9KO;XkRlhW; zG_Ryo-zBv;yClCrKO;3aF)u$gN8i9SJ|MFoH77GK)h#nGu_QHFzn~~TD>b=9KPfRe kJ2fvwKR!M)FS8^*Uaz3?7Kcr4eoARhsvXFd&p^xo0MDB#!~g&Q diff --git a/project/backend/__pycache__/admin.cpython-38.pyc b/project/backend/__pycache__/admin.cpython-38.pyc deleted file mode 100644 index 176c5f79051e9eec3d6dacf20b07f9557362d489..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 208 zcmYjKu?oU46iiwK5i0&hmqrjbQ3nxRL==}Uk~R;Uwn<8w41SVdBy@Fhc60L8$%DJ& zZn!%~(TE^sk0Y$mpMCg8fMJbnCn$mlS`$T6N{I+gBo1HLl9+Y_E|k>!I7r8$RJ;6^S)VjD*+_Y6~h%6#}tjvE2CDrgdzSp8-~Q0^WirLdwd- zD==|xD$$ef^Zk7Oe7>jQut(6&zaHQN&u^dXTZqXBy*x!wL{Uw0novq^i3${ZCyD`m zV@aUGM-p{@kVPWe9FCp4wq}tnQ(xIPipdDQJVpSLP(|=IO_&OjP%%^qo8d&J8!)Ps zcs)^TX_hut^EkH(bQw>w<+!fwGy|=ggL%uIMV+QAgpoN2(e#8sa;<$l5aPL(de=Ep zu#mN`ghUCk*lL8n_el!BjV=7%@s-Vi*Yny`HNSy!Q(4DXkV|7h^Ro+apE=N(foW!B z1u1uhT|-*&-8fu2SH|w8V5sT$SbFHvkZvoph&BD)$2_wL{L`NMKSUe#vDS1i+uvOI J{gs|OV1J5WaEJf^ diff --git a/project/backend/__pycache__/consultas_oracledb.cpython-38.pyc b/project/backend/__pycache__/consultas_oracledb.cpython-38.pyc deleted file mode 100644 index 25eb4e34ec1739ec0c1914a1ea399b10a82df904..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1767 zcma)+&2Jk;6u@U@KfGRlD5MlM2$dB=D()dhLP0_bh{|!Gh&rv4CczT2Hl9hc$$HnB z9hb(M?Zuop0C$9BOI+a0|AI7EE+Fw2}r5Ti7#aPG;_$^w=I*BacXz z>=W*A_iNHC36GbiloIaoGK|aI=N0IEPPa*;`X~4%oyltRI30@S_+Xr$uo>zPDD;;NZMdvRS{-I0NYN3=+2oJOuZqnqWkd2TZDDO{Q#veA&xA@Lg8Es%Y>r zrC?jnea*DLLb$y`@``q~w?c57S9L{~PhC0FWnEbzv#PG*9%r$xqGcVmvZmStZ69JF zb3(};Nmgy5*h%fwmw!=`*C?6PA!bL{rVQuT5Q^Hf+CKS$By7L1XzP0_J@~`I2dswJ zD9~Hr;dU-=?Hr5Xd99-~38E|*#Azn@#m&}&0Ko&520T>ZL70ij2mhO=VDHm*w;go1 z_BxLr1nVD4EX~F3%`gJO(5Dn3FB}JO3Wfn}5Q|3LI7I-)8ObP7(t(epi=u?WLxJ@- z-l0%~<1mgFrLS<24P-P@@E69BVR9sl6^q2U;b;V88K*5}D#5>g`k0^{pJsg^+cF^Gc(44TX@fuanW zjJMcw^HWlDiv2X1ZgHk$CFZ5)>!lzSM+R04n zah7f5*-JQa0PYAWk+{H_6Mu@YTtMP4=!y3x?QV-eVn*}){Ooyte(z^LsnvV}&+czs z(W(&gJ9e%=W$1hiU$zT^6Ha5&Bb@apw|Y!if^vJxzFY3u!k#&EGIQso$M(n?c}%)w zpKyn}Uz1)*c)T>FlyHxipwcyL%2Ej>A6q!-Q<}@do%&a-dsirfV z(>a8rae3CcXl%DXZ?|@Wd%tXOqwdyc?VYXderv0<+wMHL-)%U? zOJz8S1wSyQL7F6Dpo|O3wvy0}WtK`)63@h7tVDwu8|N4c27V^83Nc-D|8<+kVi+c= zh@0=N^&dqe5l4yGjFM1^L31S26IiBs5Drd7!kbEDO7t(S+3M)r)Q^N}rExqScEX{^ zuxeRRSj%QU^Qg~c9c+gB0}AccgEpL2B&-f25v1pc9Ve@kXcn%agDQBSJASLT3J)=fwm7ZkU61b zk0h%$QS794>dU_<$!nBM>JYP|Yg2~fYY0T`d2OG3K@zrKShV#$l^*P{@By7pp1@K9j=jdv*2 z;5dxqMd>SCWCIzE6zsw{GE9zyv0{-JHyn+CD&w@JOeOfYlkxDtc(Cbg9IMdK(D*Mi zP^@5XWoK~&5N09}Va&*J91X!U@1|d6Z-6a(9|WOx@%q$**Js$e)Ma&M(kk~Xu+%MT48)B44{NXc?=`jTObG|e^HRD zwhE);0MY{4#h$Q+68&5Y hsR*tB##o69@a$xmAJ0Nms`NGHRlSn8_BZ{+rY`^h diff --git a/project/backend/__pycache__/urls.cpython-38.pyc b/project/backend/__pycache__/urls.cpython-38.pyc deleted file mode 100644 index 3f07f82fa896750f246123e9e517db551e265e14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 309 zcmYjLJ5Izf5VhkZEbNARq=}Ib9YPccQ6U7PakKKqqfN5@$sZ7h;2@j`DJ|7rfd*_X z1tZOyd7AfT=DBH3P>S=PmUXlmtP)30s9o%n2eo)EEf2#UA4v5w!mFPVtL>EAJl9;oeOu2$>$U3AjBBI#Ye z@5%(MvCd4;hxNg~Oq#SdfYbg1x#O(M@O?)IqkzUu)FILv@Vj6v9YAqyK+>~|^}}dE pjv8)9%>(rGZ!z8Qeg|66e7&=8^Wst&5hYyZ&wZU>g;(VC=NA?{QP2PY diff --git a/project/backend/__pycache__/views.cpython-38.pyc b/project/backend/__pycache__/views.cpython-38.pyc deleted file mode 100644 index 5c469dca51552b8670d44f79eebbb816fad83143..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2540 zcmZ{m+iu%N5QcdYMIEg;an9$noW#ljZBrm9LQ9OxAQlCRa#NuJp@>^sHbu%yDuDwE zDBwPTA0QX@W#6IKeS@OF-WDj}7wAQ9+8N4OJ4GskzrUH;ot>SfweFNkc>z9;{;^?gvs|mUItY4k zNLkJpj^Zt_39Fzs!&nc@ASSDX_A%MV&kVo37ROD3RROU3pslw?P zr&&(NIi27%$LS=eQ=Cq7I>YHKr*oXnbGpFkBBx87E_1rV=_;pdoUU`a!RaQaTbyol zs&bm=bO*`1`+k0+Ci1S5sC)1ZZk|nqbv(Cw7@cI3?2bg=!TD;5+z?*6A&qInCGLYzyqq_8bbiU$?f_QXl)T{$W4=93a|`8y$ast9pm zBM%vW!x}^ZquzatelG-9AzDnMe;r1X;(9t8;?heYE+>NbAju|W@8NrCTZX^7M@^>I zt%kW|F@Y&fYuR9#w*I1Fv6+VM=&s&wn@!#6*g7kvjumssXx2@g9ZOAM!?yKhqv=?z zH9Z(OR}uH`;BB722IeZWN&m7p#`mcBX@- zR9?|vShlM}Xhny*PGXU+)0(bhy)fKqz2zml1FJ6?ZCJ%b9x3nO5&WLf2}sO1khfXb0{e6BQdqOShea z-D_>ws}6f*nMD|4v5G!zm5U~3V`c1(erOl#&^H@ehHGGv7_IB(OK5LhcZ?+qW?@sF z8xWtx4#AieqiIgttg}4&pkYp@&1TFdaA%QEI5>}w8z>wka+h_3l}*fb*c7yn?hWlD z=Lg9f?kC%ww&UoK)1OW`a^zWv;JZGT^(p*S-D*TxGQp4cAE=Mhk24(1#nX zIGx~bjtSjjir0&K)ft+>gbL=!z+E?tm<$&kQ+uNkRh*^4a5r6D!%SK9<%01r^+gmf>go*3QUc3Hkk}`|YP?1tgTGs%#3yfhLF{5N zOx_?{-TWX32z9+dKRyy41V4uKE1Xk4*aaog*pDNYAwdk=$-L?LW6~|BdvHgP0c&D8 z(CIx*zl7QJYmi?A`YrtWVAj^cA*qdDkArwzYmjIo4o9^$GVBE*@oV?La9e{B@dp8U zhABvY+R=Vo``F<(1M)Un7;Ujq+UtJorXK7|v;!iDs;EhdI4kAF&;I \n {consulta['OBJETIVOS']} \n") - #consulta[0]['OBJETIVOS'] = str(consulta[0]['OBJETIVOS']) - - cursor.close() - - except oracledb.Error as error: - print("Failed to read data from table", error) - finally: - if connection: - connection.close() - print("The connection is closed") - - # return records - return consulta - - -# a = int(input("")) -# lul = getlimitedRows(a) -# print("\n") -# print(type(lul)) - -def getallRows(): - - try: - connection = oracledb.connect(conStr) - cursor = connection.cursor() - print("Connected to database") - sqlite_select_query = f"SELECT * FROM IDEA.STG_PROJETOS_CONVENIAR" - cursor.execute(sqlite_select_query) - records = cursor.fetchall() - length = len(records) - print(len(records)) - cursor.execute(sqlite_select_query) - - cursor.close() - - except oracledb.Error as error: - print("Failed to read data from table", error) - finally: - if connection: - connection.close() - print("The connection is closed") - - # return records - return length - - - diff --git a/project/backend/migrations/__init__.py b/project/backend/migrations/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/project/backend/migrations/__pycache__/__init__.cpython-38.pyc b/project/backend/migrations/__pycache__/__init__.cpython-38.pyc deleted file mode 100644 index 9cba528b7161540307f0f9279dcf7484717f7d69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 178 zcmWIL<>g`k0^{pJsUZ3>h(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o10eKO;XkRlhW; zG_Ryo-zBv;yClCrKO;3aF)u$gN8i9SJ|MFoH77GK)h#nGu_QHFzn~~TD>b=9KPfRe vJ2fvwKQ}YID6u3nKd)FnK0Y%qvm`!Vub}c4hfQvNN@-529mvAZK+FID+omo% diff --git a/project/backend/models.py b/project/backend/models.py deleted file mode 100644 index 71a83623..00000000 --- a/project/backend/models.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.db import models - -# Create your models here. diff --git a/project/backend/templates/backend/base.html b/project/backend/templates/backend/base.html deleted file mode 100644 index 58d9a66e..00000000 --- a/project/backend/templates/backend/base.html +++ /dev/null @@ -1,26 +0,0 @@ -{% load static %} - - - - AutomaTEC - - - - - - - - - - - -
- finatec -

Sistema de prestação automático

-
- {% block conteudo %} - - {% endblock %} -
Copyright BRISA 2021©. Todos direitos reservados.
- - \ No newline at end of file diff --git a/project/backend/templates/backend/projetos.html b/project/backend/templates/backend/projetos.html deleted file mode 100644 index f6a28c4c..00000000 --- a/project/backend/templates/backend/projetos.html +++ /dev/null @@ -1,180 +0,0 @@ -{% extends 'base.html' %} -{% block conteudo %} -{% load static %} - -
-
- - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {% for entry in data %} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {% endfor %} - -
CODIGONOMESALDODATA ASSINATURADATA VIGENCIADATA ENCERRAMENTOTIPO DO CONTRATOINSTITUICAO EXECUTORAPROCESSOSUBPROCESSOCOD_PROPOSTAPROPOSTAVALOR_APROVADONOME_TP_CONTROLE_SALDOGRUPO_GESTORESGESTOR_RESPCOORDENADORPROCEDIMENTO_COMPRATAB_FRETETAB_DIARIASCUSTO_OPNOME_FINANCIADORDEPARTAMENTOSITUACAOBANCOAGENCIA_BANCARIACONTA_BANCARIACENTRO_CUSTOCONTA_CAIXACATEGORIA_PROJETOCOD_CONVENIO_CONTACOD_STATUSIND_SUB_PROJETOTIPO_CUSTO_OPPROJETO_MAEID_COORDENADORID_FINANCIADORID_INSTITUICAOID_DEPARTAMENTONOME_INSTITUICAOID_INSTITUICAO_EXECUTORAID_TIPO
{{ entry.CODIGO }}{{ entry.NOME }}{{ entry.SALDO }}{{ entry.DATA_ASSINATURA }}{{ entry.DATA_VIGENCIA }}{{ entry.DATA_ENCERRAMENTO }}{{ entry.TIPO_CONTRATO }}{{ entry.INSTITUICAO_EXECUTORA }}{{ entry.PROCESSO }}{{ entry.SUBPROCESSO }}{{ entry.COD_PROPOSTA }}{{ entry.PROPOSTA }}{{ entry.VALOR_APROVADO }}{{ entry.NOME_TP_CONTROLE_SALDO }}{{ entry.GRUPO_GESTORES }}{{ entry.GESTOR_RESP }}{{ entry.COORDENADOR }}{{ entry.PROCEDIMENTO_COMPRA }}{{ entry.TAB_FRETE }}{{ entry.TAB_DIARIAS }}{{ entry.CUSTO_OP }}{{ entry.NOME_FINANCIADOR }}{{ entry.DEPARTAMENTO }}{{ entry.SITUACAO }}{{ entry.BANCO }}{{ entry.AGENCIA_BANCARIA }}{{ entry.CONTA_BANCARIA }}{{ entry.CENTRO_CUSTO }}{{ entry.CONTA_CAIXA }}{{ entry.CATEGORIA_PROJETO }}{{ entry.COD_CONVENIO_CONTA }}{{ entry.COD_STATUS }}{{ entry.IND_SUB_PROJETO }}{{ entry.TIPO_CUSTO_OP }}{{ entry.PROJETO_MAE }}{{ entry.ID_COORDENADOR }}{{ entry.ID_FINANCIADOR }}{{ entry.ID_INSTITUICAO }}{{ entry.ID_DEPARTAMENTO }}{{ entry.NOME_INSTITUICAO }}{{ entry.ID_INSTITUICAO_EXECUTORA }}{{ entry.ID_TIPO }}

- - - -{% endblock %} \ No newline at end of file diff --git a/project/backend/tests.py b/project/backend/tests.py deleted file mode 100644 index 7ce503c2..00000000 --- a/project/backend/tests.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.test import TestCase - -# Create your tests here. diff --git a/project/backend/urls.py b/project/backend/urls.py deleted file mode 100644 index 64705d83..00000000 --- a/project/backend/urls.py +++ /dev/null @@ -1,6 +0,0 @@ -from django.urls import path -from . import views - -urlpatterns = [ - path('', views.project_views, name='pjview'), -] \ No newline at end of file diff --git a/project/backend/views.py b/project/backend/views.py deleted file mode 100644 index bd30d4c8..00000000 --- a/project/backend/views.py +++ /dev/null @@ -1,86 +0,0 @@ -from django.shortcuts import render -from .consultas_oracledb import getlimitedRows,getallRows -from django.core.paginator import Paginator,EmptyPage, PageNotAnInteger -# Create your views here. - -def project_views(request): - length = getallRows() - data = getlimitedRows(length) - - relevant_data = [] - for key, inner_dict in data.items(): - relevant_info = { - 'CODIGO': inner_dict.get('CODIGO', ''), - 'NOME': inner_dict.get('NOME', ''), - 'SALDO': inner_dict.get('SALDO', ''), - 'DATA_ASSINATURA': inner_dict.get('DATA_ASSINATURA', ''), - 'DATA_VIGENCIA': inner_dict.get('DATA_VIGENCIA', ''), - 'DATA_ENCERRAMENTO': inner_dict.get('DATA_ENCERRAMENTO', ''), - 'TIPO_CONTRATO': inner_dict.get('TIPO_CONTRATO', ''), - 'INSTITUICAO_EXECUTORA': inner_dict.get('INSTITUICAO_EXECUTORA', ''), - 'PROCESSO': inner_dict.get('PROCESSO', ''), - 'SUBPROCESSO': inner_dict.get('SUBPROCESSO', ''), - 'COD_PROPOSTA': inner_dict.get('COD_PROPOSTA', ''), - 'PROPOSTA': inner_dict.get('PROPOSTA', ''), - #'OBJETIVOS': inner_dict.get('OBJETIVOS', ''), - 'VALOR_APROVADO': inner_dict.get('VALOR_APROVADO', ''), - 'NOME_TP_CONTROLE_SALDO': inner_dict.get('NOME_TP_CONTROLE_SALDO', ''), - 'GRUPO_GESTORES': inner_dict.get('GRUPO_GESTORES', ''), - 'GESTOR_RESP': inner_dict.get('GESTOR_RESP', ''), - 'COORDENADOR': inner_dict.get('COORDENADOR', ''), - 'PROCEDIMENTO_COMPRA': inner_dict.get('PROCEDIMENTO_COMPRA', ''), - 'TAB_FRETE': inner_dict.get('TAB_FRETE', ''), - 'TAB_DIARIAS': inner_dict.get('TAB_DIARIAS', ''), - 'CUSTO_OP': inner_dict.get('CUSTO_OP', ''), - 'NOME_FINANCIADOR': inner_dict.get('NOME_FINANCIADOR', ''), - 'DEPARTAMENTO': inner_dict.get('DEPARTAMENTO', ''), - 'SITUACAO': inner_dict.get('SITUACAO', ''), - 'BANCO': inner_dict.get('BANCO', ''), - 'AGENCIA_BANCARIA': inner_dict.get('AGENCIA_BANCARIA', ''), - 'CONTA_BANCARIA': inner_dict.get('CONTA_BANCARIA', ''), - 'CENTRO_CUSTO': inner_dict.get('CENTRO_CUSTO', ''), - 'CONTA_CAIXA': inner_dict.get('CONTA_CAIXA', ''), - 'CATEGORIA_PROJETO': inner_dict.get('CATEGORIA_PROJETO', ''), - 'COD_CONVENIO_CONTA': inner_dict.get('COD_CONVENIO_CONTA', ''), - 'COD_STATUS': inner_dict.get('COD_STATUS', ''), - 'IND_SUB_PROJETO': inner_dict.get('IND_SUB_PROJETO', ''), - 'TIPO_CUSTO_OP': inner_dict.get('TIPO_CUSTO_OP', ''), - 'PROJETO_MAE': inner_dict.get('PROJETO_MAE', ''), - 'ID_COORDENADOR': inner_dict.get('ID_COORDENADOR', ''), - 'ID_FINANCIADOR': inner_dict.get('ID_FINANCIADOR', ''), - 'ID_INSTITUICAO': inner_dict.get('ID_INSTITUICAO', ''), - 'ID_DEPARTAMENTO': inner_dict.get('ID_DEPARTAMENTO', ''), - 'NOME_INSTITUICAO': inner_dict.get('NOME_INSTITUICAO', ''), - 'ID_INSTITUICAO_EXECUTORA': inner_dict.get('ID_INSTITUICAO_EXECUTORA', ''), - 'ID_TIPO': inner_dict.get('ID_TIPO', ''), - } - relevant_data.append(relevant_info) - # Number of items to display per page - - search_query = request.GET.get('search', '') - if search_query: - search_results = [] - for entry in relevant_data: - for key, value in entry.items(): - if key == 'CODIGO' and str(search_query) == str(value): - search_results.append(entry) - break - elif key != 'CODIGO' and isinstance(value, str) and search_query.lower() in value.lower(): - search_results.append(entry) - break - else: - search_results = relevant_data - - items_per_page = 10 - paginator = Paginator(search_results, items_per_page) - - page = request.GET.get('page') - try: - items = paginator.get_page(page) - except PageNotAnInteger: - items = paginator.get_page(1) - except EmptyPage: - items = paginator.get_page(paginator.num_pages) - - return render(request, "backend/projetos.html", {"search_query": search_query, - "data":items}) diff --git a/project/db.sqlite3 b/project/db.sqlite3 deleted file mode 100644 index 883e6bb4617eb6d1e044d684e5ac4c05dfe0592a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 147456 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 diff --git a/project/project/__pycache__/__init__.cpython-311.pyc b/project/project/__pycache__/__init__.cpython-311.pyc deleted file mode 100644 index 4e6e02808a0b4363d0a98c9295e0060d66691958..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 181 zcmZ3^%ge<81n<{~rGn_kAOZ#$p^VRLK*n^26oz01O-8?!3`I;p{%4TnFAry{n9$s)a00gqWrAX diff --git a/project/project/__pycache__/__init__.cpython-38.pyc b/project/project/__pycache__/__init__.cpython-38.pyc deleted file mode 100644 index f50d301d87daf1c4bf888fa723bf7d90b2ad9677..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167 zcmWIL<>g`k0*&iIsUZ3>h(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o6v9KO;XkRlhW; zG_Ryo-zBv;yClCrKO;3aF)u$gN8i9SJ|MFoH77GK)h#nGu_QHFzn~~TD>b^z*fMYBm!wJ?=;vM5s1B4rDaL_wtDmK%cNjHOZdP&h+B zxb1Ib5ogyw={L-_s{;LkqNsZ*DUKi;s3mY7_i^sMXYNc?DisCzb@+39vMLCFWSiMv z4mLaR(cfV}0up^85N%P+){-yT5*G2oui{7fOc*W>7wsHcu=7Z^3w^=9(HGF-C($m# zoP&7@cmGU+828YYeIH4tQ2y#q zs75G@TyDE;&`NjF&<*?1HVG;Ak{EBZ(CNKc$Pdlanf)7 zqu#4z@N|3og?svPXYeHQJ!+Nn>8%Nj;zc2gNl$T6K*DrmUYf8$x-}=vTyV(P=?K&G z?wpchN=X!6Rs^7M``~eZ-h;V}c!$KtlrOlW5hS-gH3{Kzcs$tQ* z(527j5vMsQGydj8Hse*k9K?%)APSZ0c={hx8XqcE7~T?mJY)KDE*BRVoXtapJ&;E{ zC^`yf9OsMp%-5`QbHd?_*NZEP@QL?s=z8x+*jIk8#cqI&Q5KBO_$`m(Xox+gB(YD^ z$`pm+VC1_DD?M<>A)?Aup^baanyM*ZANRlsa{$JJq@tLX<@CFGn9EiQ!o8%Qet!+i z7{5<2W$6!7+lx-k7`*~HV>*30XMDlp6%L~gglS%p_};ZqOno$3xD*zPZ)lh7C|^&mnELlTYL4E&gGWc z)Z-<%-|7Bb;^V#;PvpP+F#rAu+Fvh2<#44Wh%zMEZ#w-bvfPG4UasYyZ- zBtZj*eKz>w|I>B-C)cDs&G8Gs&UFD=Nq}SGT}D_OvF%>W7rIt8%>zDWw8EF@%tMiz zY|^i%v4GwnLfEIuF6qM^i)sY>sJzAVBX~7^(u*ZvnM)Dn1;@!A8^_`K7}LleY^JIdAk|_@buocK3KmZ8VGnU32yg(=z!=y=7V;0s(Z3$&1ap zrZw~fwWIUpj$v3%x6`N^ts1{!>CJXSwRDrO9hiId%)U{ts##<48=7jVSy+>As$FZ} zX{)ArV01L+t=g!A(tv&}HPqH#SKZT{s-fusSa0f%Z9oSVx{z@F@v9ckWh={u%q>8! zX3@Ev70=~iL_)qam1n8(waKPdZ|LTv(bqM-rgj^a14$T8t*$q;--Ngfq>YEaTa`f+ z;0jJWXg9Z_MIIbp$Rb+VBW#fLDvzE!Z8E|>32}{t@Q8So>6N*d;T#z}N>mx0^1_dB zUWt!iix7ggVOSOl;@X0omltHIuvjR{MM;)KNi0axx%`iOF0V;>Nz94zzp(xWWO?`s V)A=v?fehyG&#j2dl6+ps{RdYp&no}` diff --git a/project/project/__pycache__/settings.cpython-311.pyc b/project/project/__pycache__/settings.cpython-311.pyc deleted file mode 100644 index 59d6431d8e92e666016c5ac5a088154a44eb2b43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2528 zcma(TTW`}=*v|c4Hv}3An?S&}fNCx+&>_^-P24sjO|m$lo7K&7a!ykhUxMw>)=$wi zX%``lxADLO;(=-6&$LseReq|pr@dL?ji-Iir40dTb?xtb_uKi-N&kq)BLqC(-}@3r zDT4UNB?eERkG$ncg7}?41R`ZZA$gK?agXfbJstv+*!vpfZ{X`aFMR`Sczq4Tn%2U4@YFq|LeNSkhZTZnj1xH0d0zEQ=5`h z12@__o-$RT{^-j572TY_efNfv!8d2NwiRWjeQR5=K9ir+XWJXoQ&V@uoxAfJw=}t7 zR5L*<)pJ8PG}Y9lIxQkaQms>?+_t%4of~1gCRjDiofbB%i4mcJ4MWn@4+RPc#3oow zj#`+aDK*w585_1&Y_%Y{slJLLAtd81QO9(*SjpU>Ik##+R*q!W%&5nH4)l;c*W(RY zWj+kj&=f^e>1=oTA5}wNr?UVaN_cBX_3lV6B6M+dyxp45P%HFd~vw1`2!hK*Nx zJsh&S^N}KCsqtu2Y&??GCjHH#E-JXxa)TK|cCnVOZQ_PWw{_XDuJ^r|SZT?kiRn6+ zV-*>6Uy$q0T(vJY>|}QawoL)tG$1KWH!?o!i%~ZpYS9SS+fD202{d*5xQz|dy4Ke{ znpC%=AMxyV+L|6wKI-B}3tb6rj|LmnkNamlmL(HUTM=OP@r=g~u*Ic(k+pqAW`)&baK5eO zk;J=m(-IA1OVg3?M3g1e4M*1utTU#2X4@v_Bt?=%_c%Q4X=u7NcT!I)k}4@}rGV9@ zxp8d&)k*Dp$E4iP@z}xqNgWj13f85@haUVbbE>Y}-dZ(l1;IZyjq7&Q7`i9|J;M5= z9}C*6Xb8&&y&yH=jA@G!mQm)M9c;m^DNA+T3thH7nqh|o!M$t*!4B%!(BvoB4z%Ek zQB6Cvz;LX)@pgn`vlX@~JYc`I{W*4_wq(bdLZP(E=7i-ESLN(PzQ|R91q_%L&W^0) zbGZV$%2Zf8Rw@-uW zE(>Lb<5o+RobZq-n4nM%63*Y8E!qJWtMZU} z6+CC%=(f)--u7*3l4?i$d^a_l>Jf|i0?YLVJ(*({nOdPLKoTWkG0zrqe-dxqpPqNi z*?Vj5)ER4>wr=9>wVc*~ol{L??Z$1PEVZyKsd!OR;pS+p_0P%C3Y%xbO=Qrmop+)8 zut{wh&*@X(*!`ctFaSDUk|Ym^^zQrb0TJ$W|C|63qkf)w7W!rG>D=GZi+@Eg?nN){ zyYJQg=*>>ZNf3z&*@=K+INtFeQprx-iG-3KhZulP!byb^E~5`XJ4H~Rc4AJ5NU`Jr zl{`qL4`UY`!hb0-1iZmi#0kgz0f%sbHxc)A!p;REMeh<61okHmlJo(Uetv(C`rPq* zDNuBQ*WXo~Bf?|56b~dAC%Q!0@dkjPy2RJRl1h)rOrG~ZFPwRj7*BWNhq3Wa_%J%w z2^~Up0VhTzCOVOW1ogD}oBXT%eD>vcdx`1&#B?Wm=nMR~^i$!7!n5@A**)Loecxrr V>q&t(3e3*j-X)T~SHA|${}0YBE2RJc diff --git a/project/project/__pycache__/urls.cpython-310.pyc b/project/project/__pycache__/urls.cpython-310.pyc deleted file mode 100644 index 72eefe696a0074cac0d8ce5e39dcc8380c65bfcf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 348 zcmYk2zfQw25XNoC`6JpQUL#A)(yc-a2qXrCV9SEs_|!Uz?Z|Nky7p0+cqOk)yaEH_ zTp`3s{_gJ6r=Kmm)#{93J;gP=VgE?W|Khk@Q*J?eo4kvK?znRXmfr{6qq&Y0RZE+SV+V+IGXNAo5X$eI$oUj$VBcdqH24PI|OLrPrynknovbbNYfw8t6iV`SFZRxW zfVq=iOL616*?xWSAy?ei&_u+Yud)Kr>1orcJ%EpktM6>(c; z7>io+BwsdUpBMxq2{A%th%zN3jL;Z-Vc zg)Jz^oB+bbLoyOO3CIaFD?kL@gz+H$KuZ{-RsFVRKE{m4W+Qw_SjVh~cIvYriOtLE z(}NQ+&k5L_6Icne&4`CCvy;CpWGm6@O1<(!ntJS-AA_j)p|}lUA!Cf^s5sfbb96rW z?=DoN9Q5k_lYX<`92irrIMa$#Qks#{oTxB38&rq2;mwqkXQaGP=)^+ Bg9`uv diff --git a/project/project/__pycache__/wsgi.cpython-310.pyc b/project/project/__pycache__/wsgi.cpython-310.pyc deleted file mode 100644 index 742a38bc2d42e1bde34df1dd994824f4a9294127..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 574 zcmYk4!EO^V5Qe=@+LVQ&9uQ|=Bf+{t^nws7QrajLq=*zD<>I*O$;Oe_vs!yo+G`Je z4LI^dNWOC76*%EdT9lDIqw#3w|1>u4@24c%=Wqmf2_e7RWZSwiIgZC2MyJS>s68_#^(%-%Lm42NJM=VD>*9Dtn&8ixgko$+2 zrRm5s_*S6<$NU1=ra>AbFAXs1m}DiY#=uJhD==&&YrQU6S%PA-nXD?KbLlnO*(}aG zjVdM9z_g8m<+{Mo#^Ktrxi;{EIe>KGedXS8t}u6*T1s2sJzJJz$-(m1*(<)lE00`3 zW$?NL>-m){G*AD;b&zpC3C{}fqP-Ja7~%Qg?EQFnE+!`z7o+iTB0ioEzI-^jIe1WT z;Jvnm>-R!Wh=?FWpy`K>YLmC?u%w=PIc)X?flho})uHE0W zNL>PlCT~~82bec4Iyyeoe$ia=!z1xYS75Y-Q*EV(oZo}}kF9oAU5CB5o8`ZYzk|3| Oqf7Q4J)uu&O8)^K2D91# diff --git a/project/project/__pycache__/wsgi.cpython-311.pyc b/project/project/__pycache__/wsgi.cpython-311.pyc deleted file mode 100644 index e6149ab56e733bfe4b468d044db5d5b16ab9bec3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 703 zcmY*X&ubJh6n>d$yE?T?5xeJ5dMW5k6}=P@bhlk9x)ruXSr%r;$=ls5nPixxKTkdQ zKlJLUBK42iN}({Pf+tTd^wyJ^Zdd9{@?Mgc_kCYNzRk^fVC~P33LX=HU&Uf#Q@4|= zzMUKcgBCEt96?&dMprnA+j0pY8B9*X*Xc>|-N>fc^oav-YRA|JIDqbnU7Sv~pf$ss zCM?e!UU(my^$i*;+2uXjRT)h)HNeN^qIu>u;vLq@)%B3YtZW2^U3(hs|a)FPjM)dl| zqb~bdLw#@8YVBWs*PYp$Ut< z@Q#eUQhWQlQQr)kYg=0zje0YDzggRUw{|!`VbEv{mp#2)%1dErC4^z_D4oxbg;)g{ z`UPy}TB5v!a+haH=AJEN*o}6C$!G5{eut|<(RHo5+TPZf>2_0f4eqyVD&8q{>-Nfv z@B>d#aEa?&Mh4^dt(t$aAoSCN>w7Q9Fa9bkTTuI#K!37s6@R$$<_xOmP#r?`vb;DfFP@c`&dWXa%EfWllZ}JFwDzVS*B<&B zaO@LR+AAksffL@OMH$I68joiFKaG95vy-A|FYdmy=TjEt0@@zCVNfi_B>cB zz$tsF!328l3rW*IaUE#XOX_C@1lHWK4UGDE|MREO;Fyi~PfmuT!I*tH?w=m*U+q39 zcnCq7!uL9Lhp~vjSdFc(ch?}1poFX$TjD5Gcfc%VX-%ERMgcQksZc-OP`pKD^N=g| z_b^gxpw(GrLPh)Fe+29395go;6y1BvzDfs58aR-K2gvC?*8kWjXYR7@zF)8YL;M@a OccW`R>f$H(DgFoZud@mO diff --git a/project/project/asgi.py b/project/project/asgi.py deleted file mode 100644 index c9e4e67f..00000000 --- a/project/project/asgi.py +++ /dev/null @@ -1,16 +0,0 @@ -""" -ASGI config for project project. - -It exposes the ASGI callable as a module-level variable named ``application``. - -For more information on this file, see -https://docs.djangoproject.com/en/4.2/howto/deployment/asgi/ -""" - -import os - -from django.core.asgi import get_asgi_application - -os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project.settings') - -application = get_asgi_application() diff --git a/project/project/populando_banco.py b/project/project/populando_banco.py deleted file mode 100644 index 05c75224..00000000 --- a/project/project/populando_banco.py +++ /dev/null @@ -1,50 +0,0 @@ -from app.models import Mapeamento - -# fundep -mapa = Mapeamento( - CODIGO = "", - NOME = "'Receita x Despesa';'Título do Projeto: ';A3", - SALDO = "", - DATA_ASSINATURA = "", - DATA_VIGENCIA = "", - DATA_ENCERRAMENTO = "", - TIPO_CONTRATO = "", - INSTITUICAO_EXECUTORA = "", - PROCESSO = "", - SUBPROCESSO = "", - COD_PROPOSTA = "", - PROPOSTA = "", - OBJETIVOS = "", - VALOR_APROVADO = "", - NOME_TP_CONTROLE_SALDO = "", - GRUPO_GESTORES = "", - GESTOR_RESP = "", - COORDENADOR = "", - PROCEDIMENTO_COMPRA = "", - TAB_FRETE = "", - TAB_DIARIAS = "", - CUSTO_OP = "", - NOME_FINANCIADOR = "", - DEPARTAMENTO = "", - SITUACAO = "", - BANCO = "", - AGENCIA_BANCARIA = "", - CONTA_BANCARIA = "", - CENTRO_CUSTO = "", - CONTA_CAIXA = "", - CATEGORIA_PROJETO = "", - COD_CONVENIO_CONTA = "", - COD_STATUS = "", - IND_SUB_PROJETO = "", - TIPO_CUSTO_OP = "", - PROJETO_MAE = "", - ID_COORDENADOR = "", - ID_FINANCIADOR = "", - ID_INSTITUICAO = "", - ID_DEPARTAMENTO = "", - NOME_INSTITUICAO = "", - ID_INSTITUICAO_EXECUTORA = "", - ID_TIPO = "" -) - -mapa.save() \ No newline at end of file diff --git a/project/project/settings.py b/project/project/settings.py deleted file mode 100644 index 72b26e9c..00000000 --- a/project/project/settings.py +++ /dev/null @@ -1,160 +0,0 @@ -from pathlib import Path -import os - -# Build paths inside the project like this: BASE_DIR / 'subdir'. -BASE_DIR = Path(__file__).resolve().parent.parent - - -# Quick-start development settings - unsuitable for production -# See https://docs.djangoproject.com/en/4.2/howto/deployment/checklist/ - -# SECURITY WARNING: keep the secret key used in production secret! -SECRET_KEY = 'django-insecure-tn_bk%@%rt@570m)e14wxmm4u2x_z&lvb8uh3--6ay7@h2olcs' - -# SECURITY WARNING: don't run with debug turned on in production! -DEBUG = True - -ALLOWED_HOSTS = [] - - -# Application definition - -INSTALLED_APPS = [ - 'django.contrib.admin', - 'django.contrib.auth', - 'django.contrib.contenttypes', - 'django.contrib.sessions', - 'django.contrib.messages', - 'django.contrib.staticfiles', - 'app', - 'backend', - -] - -MIDDLEWARE = [ - 'django.middleware.security.SecurityMiddleware', - 'django.contrib.sessions.middleware.SessionMiddleware', - 'django.middleware.common.CommonMiddleware', - 'django.middleware.csrf.CsrfViewMiddleware', - 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'django.contrib.messages.middleware.MessageMiddleware', - 'django.middleware.clickjacking.XFrameOptionsMiddleware', -] - -ROOT_URLCONF = 'project.urls' - -TEMPLATES = [ - { - 'BACKEND': 'django.template.backends.django.DjangoTemplates', - 'DIRS': [], - 'APP_DIRS': True, - 'OPTIONS': { - 'context_processors': [ - 'django.template.context_processors.debug', - 'django.template.context_processors.request', - 'django.contrib.auth.context_processors.auth', - 'django.contrib.messages.context_processors.messages', - ], - }, - }, -] - -WSGI_APPLICATION = 'project.wsgi.application' - - -# Database -# https://docs.djangoproject.com/en/4.2/ref/settings/#databases -file_path = "/home/ubuntu/Desktop/devfront/devfull/postgre.txt" -with open(file_path, 'r') as file: - password_database = file.readline().strip() - -DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.postgresql', - 'NAME': 'automatec', - 'USER': 'automauser', - 'PASSWORD': password_database, - 'HOST': 'localhost', - 'PORT': '', - }, - # 'default': { - # 'ENGINE': 'django.db.backends.sqlite3', - # 'NAME': BASE_DIR / 'db.sqlite3', - # } -} - -# DATABASES = { -# 'default': { -# 'ENGINE': 'django.db.backends.postgresql', -# 'NAME': 'automatec', -# 'USER': 'automauser', -# 'PASSWORD': '', -# 'HOST': 'localhost', -# 'PORT': '', -# }, -# 'finatec': { -# 'ENGINE': 'sql_server.pyodbc', -# 'HOST': '(LocalDB)\ProjectLocalDB', -# 'PORT': '', -# 'NAME': 'my_db', -# 'USER': 'my_user', -# 'PASSWORD': 'my_password', -# } -# } - -# Password validation -# https://docs.djangoproject.com/en/4.2/ref/settings/#auth-password-validators - -AUTH_PASSWORD_VALIDATORS = [ - { - 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', - # 'OPTIONS': { - # 'message': "A senha é similar as informações do usuário.", - # }, - }, - { - 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', - # 'OPTIONS': { - # 'min_length': 8, - # 'message': "A senha deve ter pelo menos %(min_length)d caracteres.", - # }, - }, - { - 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', - # 'OPTIONS': { - # 'message': "A senha é muito simples.", - # }, - }, - { - 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', - # 'OPTIONS': { - # 'message': "A senha não pode conter apenas números.", - # }, - }, -] - - -# Internationalization -# https://docs.djangoproject.com/en/4.2/topics/i18n/ - -LANGUAGE_CODE = 'pt-br' - -TIME_ZONE = 'UTC' - -USE_I18N = True - -USE_TZ = True - - -# Static files (CSS, JavaScript, Images) -# https://docs.djangoproject.com/en/4.2/howto/static-files/ - -STATIC_URL = 'assets/' -STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles") -STATICFILES_DIRS = [ - os.path.join(BASE_DIR, "static") -] -# Default primary key field type -# https://docs.djangoproject.com/en/4.2/ref/settings/#default-auto-field - -DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' diff --git a/project/project/urls.py b/project/project/urls.py deleted file mode 100644 index aa668f2d..00000000 --- a/project/project/urls.py +++ /dev/null @@ -1,9 +0,0 @@ -from django.contrib import admin -from django.urls import include, path - - -urlpatterns = [ - path('', include('app.urls')), - path('admin/', admin.site.urls), - path('projetos/',include('backend.urls')), -] diff --git a/project/project/wsgi.py b/project/project/wsgi.py deleted file mode 100644 index 6f61a78e..00000000 --- a/project/project/wsgi.py +++ /dev/null @@ -1,16 +0,0 @@ -""" -WSGI config for project project. - -It exposes the WSGI callable as a module-level variable named ``application``. - -For more information on this file, see -https://docs.djangoproject.com/en/4.2/howto/deployment/wsgi/ -""" - -import os - -from django.core.wsgi import get_wsgi_application - -os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project.settings') - -application = get_wsgi_application() diff --git a/project/tabela b/project/tabela deleted file mode 100644 index 618551cd94b2d905261f7f8f2804bab3f14bbe13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 127104 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 z%0Av=Y5)?s;6uR&*Z_ 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

}@ zH-lz_vOIo}*gY*E;!#i=WKvT+To?baPa3*S>G(l}8To+VxT@hmqCv{F^3pHv725BSuukNMnO zJf$8{>Xz4Q%b)n=?1|QLUPN1Yr2~1Wd67UpTQK=qzIAFgo`cdN;m&Urd|!fz<%_;eaQ%5^NvpS-!~%t*6jzReXMISiXB#`r_bM(lD(3Y)$sMc z2S>b33HT)R!Bm82d-$Df%!lEp#|Ki#K4P@o1(xU_GcD6SMI_&Id-~5fHy9u_=OqHL zDRn#Wd&1A8CHg%%joKpej1~Iwj23Jm=-%`K{--)N)}y8ow~LP_CvHB#6qlI|IWo<@ z++hCP{j&FBtaLStHfeL!(V6cT;@mG}EUjV});MK~TBmjSG-GUOl!i{pLCI!xZuG@K zQP=YeFAhaLf})(5A=ybAi@AF{~AsVuaeZDtR!#k!x!l zW)jh>-d#x6COQd&DX*qhb}zhMlYtAA&kjK_D^ue!$J#dBE9NktRyz|ax0{@vJwQ<- z7psI=9e0)zl)@^?F5_I$3srU+lC;4TC(q zI?iP7yDRW;;hE;5%n8vP<gu zz5P#S*C#n1&{K7-mQIG#%{rX20|$?1ETRR@HAsJ0M@}Aa){4}PCR3E4)=h$JXN4HWeqD{XcS|MTcyl+)cNz6CKayHz) z8&tJT_t2J+!|pQO%&fOu3y~2VXj$2j5SP~8xl+1wK2ADc z@!J{GV)i;JJ&@cP*u?E|FYqgd@VfgFHt#J=!Txla+3bF|H*(q}HMhKGFr(?t*5Sd=GGl1J-c=|a`$U!*DxAK*&gb^0 z+6+!bUWfk3qfu=fR!@)Cs7|Sx^BUf){&-%=@)gO)h(sf{$F|7do%*sW(I3b?`{ocqz9JN|sdy);x$ns2mf7 zDu4H`1#$_@#oh`CV&%Y_BUDRdDd|maLU8RWh^Xp1Q zCweP#21=IX{@2^QLZ+7Cvoh4Lq=jEy4d61pb?f42XT(v7tLmPNu__#@^4~p$Rh9!W zjlO+pMkmr$;^w_`uPEy)GbaYED8&0|49Lt+$6Zy>F$34V*1XC8fj!N%#*XU9&FA20 zb19PJ*-_cvLhe!S=hlL`SC^yDAC%^yknFgSFJ04&Wl=l0cy9HJEY14&9Je}Q)2TV` z_a}}!F!|{)+hnXP%Y!Eqd@NnGLU4|DHg08(Y%2T)0ljwS11n2{{^Nt)Vai)6_F+$o zCUd?_%om?>-y8@qTs*7hEflpZSx)wdlb-bEfAWqwem>A>N%^E|X zECnE3pR*oMg^3K|=EYf_tT`)xxZe@&+st#mVXzg!(~>N|oc8^>8KTIhe47$%R92TX z)N%Y#o@}G%!fH+Q1o`LJH}l+YNOfH5%(;8(27^Sy_?^bqE8DS#!{%0897V7IrPxtl zfmmsk{$Z88yi&s&r)s64FopP2*ych*u4Tm(HKV|rlQY-W?@+dleg73&{sRFN@5V=y)9W{%Z}(vD7q6SpM6V5M*l|t^eS|JCDDN z8BmzSgiwAaoewQGtvzt=WWM(afn%v(J?)f8bPC)LRd3Mfm2v6?XtF)w=$`&?(-1+% z9sN-^UN6Sv@*(xFEQ&eP2M!+LVky9iq&$nF)M`mL`!G*u%gs5}Fs(Sl{6|&QBA{>{2rD^@UShiXXK~RF zmCA}{jAy?`*Nd4?&eW*OZ~Ab2ZuDSN9m<~tF`0k9RuCaHc(_fF`7N1RZcWMi&Pd5E zL+`t`=^_-RvbWW!uhqAY`cU5ObV!Ll5}KU7U-qV^{SlA^WklRD!~Q36+@7axY?@~F zB?psDb46?^Z)(4nYiDeE}_OXcHwifC>ebMmKwdHF$esuRz8()%URxMqhTMFUw3v+obv;B;O!}*zx?j^C) z3N!5rFF#!`vc0wO<)$8O%A6`_D5+QVp?-vzs4~Oo#OXL{ona5n!^#4M(vxr9A~JKf z?o7sl@0K8*zxr6%_whVx^y)Xkh$^Ag^X@{$R9@1k@G5B z_?SFh;u zo=oOTv%Gjj<2|n3(}H{gM60YPO(UqRAliC0`Q<^1c<(RtR;sr9>u67VRGwk+7mb-X zlBkO~8mg!pk^0_GAa=uT|GVnYlh-?w!x@@PbJT*13|DSVdS>fsUQo|QJU(An>-P0{ z=Gx?QO3`kL%idS+^{^P-t}#QnlfG4_5DyJ9HLZe>DV1m#PBe4W>`;9Fa`lvTK+E)6 z{J|mk?dyQ%@^OknFjOAFI zo1-TpWPQUIyVcs~aebM2k2g51D7~Gh)jN3=8a`0Hc*A(Mc=KNSG-AR;zv9v96IZ%2 z&!q(mhq$n3ug!7TAhknXmOd5qYaP4ncA=wmnMB~+bhq(3->Pj~ysFddXtAsH*Vu$C z6^{p+>t6`CplOjCwJaK9Af$0_B)|IIF^*TP50!j46JLP7UUNK{C&74z=6GrA$(OSF z9Fjn{l+tijzc&cb2rz2Q3760$&bZpWyZuhe(d zd)`7diF!6&hqH5@@@ZW;N}le&yzl&osfD}ke z`7Y5&`LyemwD?WOnJ`_rPHX$oPRW6N0ZfuRClp$u{E8y+py?$)mcGD_C>?z!YaJizg88Ly@2s5zvD-zW1Hcw%Sh+)fE;fVU|ZP!GiP%zx0r z2Wabhq8Tsa#Xo4i)-k#Z|f=J4$jx6O?ThcW_olaH>8R_uc5pEF55Pb_EZ}& zWhgu+FF4^w;S&z3rB_s&--oCQ$v-sBm7Ynm7G`z%=Ka^2E~3we624u{JaH~$sqf90 z0`g#1F&p^BAr}IkhRLipXxJl8VeJfTBqVLty(8Ed zQI4d+G}-Y^LnJ0TzMS+^I+stXY~OI$f4hkGdxCHIrO0yj$a2<5mw*pOeRKNn%BgAZ z`q25vR&0{!26&!iJIhDOd&jC^A{U7PCroMUd&9#V&TkU)a zSSR(lN|94Z%yI0C?Au(0pe1&`?J|VGesjqiGBvARhaktwL>l-sBObQQtnYi5%N-h0 zS><6ibAE#D#=Bd-B$u!Ig~=J%EKf$v%5d##p$-00k_uXFrTbk!*)dd_SW|Eh>7vIPR)gx#|6xen!$wQ+66k zd3^^eVVNLjnOnkatU;P0Px?|tI8=FW9jbZ=Mw(@{wOkTq@275{md$l9y0><7sm^oL zODkU`>6T6N*h3%r!K`X*MD+`G|FJa|eL9@D76ftzVwQ&x*0yJXKhn}KQV?I{Xb4zJ zN28c@D5-inro~N?g##i;{Zr4n-TFMUDU7((;jFhEl-D-e{_Qnmkl#S*%?88oD`fBi z*IYNHT&asNme3*QHTOYE5&-;xbxgRG^Q;ODdiGxefBpc^EFMC+=BfR#>h4+ej+T)KN9z^9ybtR(%(` zm3NrAZBZJA!mieN*c6!O%4_7bxxc-t$jSYeRickwK?rslAMQ$ZA=Rh7Gkm;ST#82} zI$+~bKK9yV)#1dqq7meUbQQ6vuHY@-je62KYwH90>{ji~Y_mt2Y40jqANd%0;AM&} z#r{sph}y3&ck0O*O{9aq9!`I9QdO&!p#qk)>O>hh{e4Af-}&lbv*n};OP%3VgyrBV z)u6dUo(k{JkSx&-`wnk{-=u6Y#EE%AT&8=D4yY>4Oj07JDekDIz}TKjxvN=t=qg`- zrOVL92JUxTdM7!%fc`jCh%0wJUNgUq`;{|@^e>~U!gB?u@x5g~+4Cg_W4q z@EpJ9Ue_MaL)w1fCBM<~8IrAi_matbC=U8d$HAa|?=3@)opqEDrx>7ra&1BQU17jS z8tlnCPc%D=_sJD92R~^Iy^;N$gI>`0+qIkh52bQ6Il$Mr&OR!tFg%lL{Z8Yhc6Z!+ ziGFUC>*gL%QANuePvjK%$(CBax$~h`j|)mq-n#Tg>zqT!{K)+7ZN_|)(`Tz)Y?KB8P z{(~H`H@A9bU~c}5K#x@1uQux!K8dAz!Oocait~XT#U-*3rC23@God+>g`~?Qnsog) zneQ;p^eqf?I8A?qgfjGpY71J;Hs*37r7752V^X6>FMZ65{>I>Y%av(WIP8NgYZuF) zOpVX!m(e13j>x(2-w}OuCdO%i$L~;m3rSV|?V4v-#a=}nk#B3W$`n(&Q8#)bAW0To zpDXqv(nCs5kT&;m^5by~$N8;$RbRx&D|_T51{D z(uUU|yvN+13M%=~rJC^2yt*Nf+dhSo)-5f)_2~O!rW?g~Mg~}& zyLnwdc$gk`WrZ|+bR4Eh3Aeq~XuF}a6&7F1#Jn-wZ&jT9Gy?55DAEfXYPCBUB zGPU-o21s9He~XzsWPgt0L+_(U^l$Z9o~m=Xj7prT)X0Gh3t1D5*#O+m4>cl1Bo)Ma0uy=1H>@D%4!P(0j$apSi{Blj`6> zGP0|DN2WppgL!Pe9ilF-NnyG(!*!)Qk>yctvAM9g1s7e>+*({v8GmuW2+U-k6*-g+ z=U_}u@8qB_*oGYt%?e*{3TN-+$8=>s4^qo8YfRqgd{uGMdp51L>WS@gE;zjHk@;Y4 z6)rG+MU{)a&7HVacVR0>XE$_Z+@=Z{i#HEc>a{?U`1m+@qVmnpvdW z(NQ}Q0Rx3RMjc6fa!-0SWZ1ZoC-ihVikoQWjy1bC;o3Tsbqdz^+fA-$wpGS)O=YM^ z2LxO6i@8ge1kXRrKJSitY@1tAbIdnwpySoJ_HId+>cN3k8iA>Kg+~#ue$FoW}kVE zlP+m|TmcnRUhcmsVtKvq$nyT%mXhBE{0vms&0+g}yE@3q?utkUg~Qxg8Mqz`6t&*z zaJuzk=>CQi1;|Z5T&1rhOaL!OZsJ} z_fe>1V`jguFjOxs+>kwSF=HZK>Xr6onlCm=OX6J_ybqWWT1lU`3h$kyeSJjr3`72@ zL?xH@dme?$*Twer)sar_f89X3aPTpV@i1wE-1q%7tt*T((_bKlZL*sdNQa#I$0teCmqGk-|n zmMLzSLF;xs!!z=z%)mlndG?FA%Oq1&G=9;mdLnm9^_Z5get910$cbQl;ax2^(MoZD zR_(i7>bUXc$s1}bxnsj=v2pMA34DNeu<+)xd|cDb(57gp`*sF)8OwQLyorUBeezSo zk&nW+UWUT<^_QZUeG-q#J>qMR5r}2Jr^%QlsMp11S)0PH@J4EM<@spXaaYg-y@S_e zjA_5>ibWUKt19fncD97q&SW&Jk9*2!AB|4&#qE{m%>@`)Ke9@iLyxVyep(_$THNHwZ-Y=V<(^ zhv&>;Vgkaa%lfgAk&QJs@#VK!;zF3;FyJ4$?q|ERWZ-WJ{xWuF;rrcWhAMKBGme8m zB;egyKuo{Q!vDK02)LIB>MjTr_;uf|8IAJ%HjBXTvV5tzde9DkV-4_MHNV~$vKPP2 zBKW&3?>1y&syRR)9CY`!lm`Ab%hlak2L^Z(L~q#!LNEiEA--JJ_dce5bf-6dUu2uP!J3rLqpcXu~R{T6wAd|sdT z`~LMi*Tuc;b>=f?&YU?jbI+`TGz=^<;C_5bMpys&&tDIC$fqvY*vjF#!e2CqKWQvl z8avk^b5hU%0LtGqO!t%}ajjBcm@$HMsro&6=Ws=gD%>&kZOPA|I*q0ot=XPFsk%BB zdt{)Ghx;z9p@RH-Ah>%&6)`ftoJP_M-@}N5U zWn5yc$F3n~Am*pQ9E(QL{{3$3H7W97@Q75ZL?6p*{2sJX7MtxK1S8Jy3@LfpqaT5X z%Or7MB5({<&Gb^0R~L*VXU?MzzBI`Yoyt%i7Zbg_Qe{9&uY5k&->M~n;0<^ACicx2 zZ{>Pz(r0SN?@uN9o>kV-ut#4~o4Y)Ia(fk=_`F$roRq0{(sz#cmpcBfG9-vPjBE`R zz_xb3wf1i^7zmk*)!%CUH^Dt02!W%Sv9H->Yt& zEbj7UmgMB?{fM9>9`rcmXHX_DpMp%q-aFh(t2UOBV`0ZH;)m2c!`{Yb@0CD@4h_}r z0zFfr1381XV2JzrUQ!|T%hrZ`^vgz^6I`VDio;f;SX4EKKk`Krk(BvTD!w0)AN%Sy zPAn1)eS1oH(C97FmvWWET^^1b`>#(;KnU@$*JdIlG+j+jV<2W0<2B-K`M{b*dVD|s zpmppeF2m8qtW(o%Zt%EFl|rPm=U|nWR@9H_O2j&oi?jeKlXUrRZoZEs>3W}cUC7hf z83#t2$xzmdMtvoTZXJi~3i`ZqVs91uvD{%1F^0+xN8bW&K2_gj5uWbT%0BW3JD5od z`ghf&p#|@#4m(eq=e`gRYDS}sWbD!CEDf?Fp{>oN&~na_bOz(j8CZ0n<c!1x6k>N;WoN3dR+?sGA+DtDnTKfNbQcJ`ox;d2VZk z0CsbNDWUKI%ZQg&|L(bsVfLo4@2q~sWZ3K~!VO|qfp1eNca4ES974GW%k)|=dlL0< z*jai&3_^Okj5DWw^QUI%o-pm_kGqKp#FQ0385z3s4Nk&h3tytOi4HH&XYl0pm|LeQ zZq6Jy%*^{(hi7DKzWsdjR_l~Hlez(R{3;mzCR?~An)rtZ-f0Aast8u zlChQU0Dc|qYwV;&D`wbtBxZRX+yaq{rrD)_C~)H~v5VW-h3{?<^Rx0wIRZXm5KF~_ zk!ny(bFDl@a~CV}Tz|YPfO-0Hdg+y%&G@?G1V)Z{Haji{86_LiZyQQ ze1RW`!cKuX#=c)7rUPeb7fq;Xj+rsdbdkJ5u?GIb{7XY0o;#wqN}6--yvC+IVg=SE zRYGabPietPeNj|nm~9L)^-*P6jFr7Et1Fc|GK*PjSrp7OmM()+VQTUsTx5am znPUsnQr`3gN>9hA6BP$@^Ve-baSq7~hrkn@CdrZSNyTPP+jypd?yMC?tWTSPuV{li zh~CnXpXV$h!l?+tRfnnDjaw4+!@fWdXl! zKRXCSb2CcbC@sGsw(D^B2KA^hrCX%=HtV$|(}rgOW8s6Qc-(j@rzwGTtOIWi z!4i`+^n*_8E&lIZD`=pz?Vr6_pDwf{LSI;dk+bZ8+BnU5RnV;=WvXCeRnRF{e(pq_ zZkuC0No?a{I&Y?2o0_$Y@`DGLpI-hWMKeN=c(?J+OrJj-nl2lg5=wnaf0r8zg_J)reRrC z$9`Cn!op@DI7mGQMDB=BZ!a$J!lS;Mb(w0Ef9vq0I@S7hnn%u~-qh69CsarT`njw- zsf|nyV{DeFN(>xe?!(@F=>E+Z-7fPn(hVec%%feg-qoK<`XLG_n`>pps|$ zsqRjIj)r_(o}WO=+%@2rM*kgG(H{b)vn|-t!OYm$@pq7Z(7uXOb8r|U05HZ50O0?N z_9x_Lge^(4wq33z2)aXFzJm5j7ZkKsR|XPl0nMu#HqwW1zCA{Zp_9xX@osUYiaLnl z$vMeYW?FESupz2dVR_MV_mWs#ppA=LWMhUUt-mwpurd5R_@r;|Qs6FR!S9GhvS#Dv z96zId=EyWT!n>v6d&u%Zk0pLy&hDiHnAb~oq-M-9byuf-gfm6Nc8OcdHEMZ;bAY7t z`N%3Gdd<~x)`-1S#gvEJG|Au!xQ)&!1(Q#J)M-h$(p?~Mqml?KxXU^Z^tpxyA)o;Ncx-}%Lew3T;v zDVKMwnEj;(?`@~rw4v*JiR%jtFUrn?oa-~!uy+UFVXB7mBfss9EG)6i=IWm(bBqia ziYm%EF*S_43&9Q-FYCs0gZceIth94o8u9`S>D)m?5XB#lomjFj2cIkRrScA)71eo7XmeT)y%v~r z<#3wk9=}_2!W)|v-OxVobMUvYv0L--{upG;;WWjaC~v~H;QBai?4osdB44)8y{MLt zw0i4&pE`=abT%}n7GD9qakh3v@%GUXxngO;g{!OoxV^m93rdz3}z09ce@C^s7Z`n^N>vvCp>q@(nhx zj~OngG}zU({IcqRgfFKBCj}GrrnE~k6r6;TdN}qsTxf7l|e^H^cPbVY` zgS*uEYLtI7I}Bedi@ez$!nUQ|F&oqr3n;*~!#MdSYXvXR@~#OgG|IP>gmpnefpmb+bF>td63A zb-a4g(YRPPi)ekb6qU4c2v7ImMD#o5==bWGn%dIGX${|(uv&Jl$e=@tLykV8Jb`-x z!rYLbU)-VdYo-H+j~CTJh~#&J0fhi^pKd^*PlR6tI=tG)>-sQbUEC7U9X_+B0J=m4 zI1DHerflSHn(ocD&vaml+rsd+)Uw23ovL}QiL*jQaR))eJRewcO^Olur@73zmaFr< z9Ih|4^qWd5)jS(;gG!jK;9>+REsd(7X#;6N6c=ixy$!?2XVu?;RRY`Fsuj3xY5*jW zPhuwYF-pnbIKZ}RsViwEhx2N{B9sQ)s1mzB@kF!fuJ_zw8gL(J9hKt>LdO=zP9eX? z$#aaH)v`adS-*fV2Thk;W>F46$$?nVsw~ga43Ed zZ~QOufJCbaXVXPh7FU){R^xu~;SywVs8o-Yk(E=?&NSA^J{30xdtIKaU(LFA(vKJ5He*iVG%Hq`$|Bbc{q9OXdK#LX6SmdSV|Rb8Cn^0g2LL>tlH6{TF8R60a4PMwIQ(NlAE>35G}Hg+V`~D7fjffsA_?c zsFD=Gm`EaV3Sbt<37LObjq_hsDq95>Rj-ZrnJ}8w-2=_)9)RGUR&c=tc&6xF*JL6f zQTqRyC5`=GvkMFVW7bHEDSHhI_;a7YhkaIQ@9Why-Y*N86z^O6xoXewPl3NH^sS*M z_PI0GG)dh{+_|8|^%D%P{HX~3QE;9A+ObZbby=Ks9T8(v&f2}|#ry76zb?#}#H+z{ zP&Io_H)O(5!&6g-0U;PIQ|AhAALM zL_STX6yk`&&0(hs)Iwvn0(`9(>#Xs!G~xt6j5>rf1c!W1$QVX>MQb#l*$Zi6=_onE zY1mx{?xYjm=Ju_qJ>gWkT53I)?%WA_^LkM*6VrE#kq%tlEvDN6tvPqlNmIh+^1}64 z(?Y_9`nzyx@2aikUdU{wr(5yy#ad~CUT$wqr}@a)+`!B^)wLmE3(;WDCO$u&7PEU& zWFMdUb*7kYhwW6SN7y$j@$qP#_C5ZH6Y&&TesM*hK=<3#W8Jv@Tex4j&O`oU@zJC* z9u@!)Vg&%u9`Y9lM^`Ijho5BuElASBg>g$C+cHAgSgC-iCfy)Gzo(i{|7=eE4Oc6$ zMI_2xU;biYXb>e}2Ob*f=^lv$R=`!&T<|_2Q5dL|V!w|tN%_qcztgbR`&e$)?6jxD zHOvCp!r7P2$h^p$0a(wOTfx{B(D1JhTHqs4YRP)nlJS!xrosk4M4%>>B|G}S_4iC} zSgErr!B+0xICtt!$*31l!-d9MRFHO}P!@g}Pi1;&T4i6eXff6Yu0mSR4#uJt#0yqZflpA!P%~A#CH~ip{>Zw5w2B3 zw|9x>OysMYD>rKg;}^)U_Xv9&Ld!C}DD^iRKJ2Q@;k?gBk^yHQotPmxp;vn+EtcM> zxDN@E6n;+ClqC*&I^{vlrH5l|)3*D~1(!KJr%J|_b)ZVus3b{}cF=A9rMiYT`^em*tN$A6CDA$ahrCCJVIT=Oj z`aPH$e*dCC=PAuqH&p4WJ>L*B$(d<{#~6XayT!bHsq0}gY8RKj0k8R%jWg+pLq;3O zmzzu|s`SGoKUuT1it)7c5Pd~1#7i;M`u4db3pnBLpC_~ww{s}{K5%;a;xnZO$9!%Q z(w?4+9=9EbAMTsa<*Jg4{ls-I696ofWZVV1X>3|1S)7dn$KDG~ES7m!!*#L;O^gTD zTTyccfuUa*R*=uUW8ONl#op}M1a6hw+_W4@-#owbq(^QS=GVsLUQpxFbH3HOE~^_> z+jhQgGp4KJy~}GDk9zTaY@)+Cg-cglPuNlSlyMm7hr(+@uO%?S9BuEDH3 zW>1gw$l}to!|3_oXkD5RM5kB@$vm;Q&c^87AW9PlTU8a8d~z=V;hHS+%O1KFbYH5V#|h$)m)|Ie3%jpvY6;ugI2zkH>Z-Wf89RXPomiDhpIkdL#&trsdVKAg z4~E4wOf-ecI}e|aFCtZ2R_7AW52h$pgj8b$EAd)PoK41$-KrV?SGj2MCDgnVRBENcgBe{0&^$hw+KvIB45Dd-C(_JGhStNCm4_igQ^@w~VA`Gl zsdHagpdGuh*2VI``w3FLCNki6_Yt!u#=U5F6$hat#8m(>XW|<4D9*xybf$LH>lZY#A{BrLc8t(S`ieriZq?2E9v)Up;iM{L1RM+>YS)1 zNpvF>$Nh8{a$a8=U8C)lK{74Mn-c;(7i7I&shJ}PM=L%oVr z73x%<^wS&L6xhQoz}&8_OycsG&?uX*zacJ2&0u;WIt77 zO!GgQpDHexsNOY~xFjaIjJd_HAl!2j?m&qnT?ad^_jhb>f2}u&rkz=o{+K)<>N_9M z`vXL4Q*-cqK8zgu5?T9DBaFhtK6i{KFeH>=-4Dq_XTJakO;KAaMb@8j^$EqxXFD-K zGN%!_p!#a~GJjXA;Wv%xLkrz>$x)08*3q#&@*a26K?p*+`mZs?eT9mgS$HgcYQ=Bb zy=>ce7mr`{m}|2P!w(pKavXJ_$}gS9x2rXf0{QoSSalGbBXb-9`paq-@iAVQ(Y#+K zG};Byb&$lt$-k7idNU_&@0aneY0n_<{eiGsHyXJyRhOQv+(+e^=J9Zn&z;-~Q9_ga zNwrn0%-#hPF`J}eSKs{S1C!0J!_YIm1a6Q;1Fu=jP<48Vk?&Nu*<2>|FIUt%#BEKa(2>r1egu0E)+`Yq27i2uFqY>VfNN`^-G{I6Vpal7>^0`IpwFSF zLtTGW%j*d>AduA(-l~55ee{g<*BSo1%<)(I;J-C*5IGi}u0W2s7E)g#c*qbQ$nI+* z2DY}A_vigrFQ?Dq3mJ}}x9EOzT~B4aQfG=RZGW|_fZ*wRD<$3hjQDLcXZTk^7?4p; zh|AzBzRZ@+SDp&X{4Qv!ihks_{yUyUOC?^-u7D1MMmFKY_xj{PCtH_7{;?hb4g8;a zQHKb4VlP9wt8<3!Fv-6+js&n1^z@Ayu%BB1+k`de4Sx*ya43&aS5Xr13)h3iDI-o) zaGxL*W|H5CG|wXQ@|NH8jiKcg!=G>qFW3TQZL%-bDFdB#%Sm&L@NiP zqJrDmrbB>OG^)?61v@ujc{IH@V+3GKzXX10FFpImx|xl{e;INwRYn z5wZ4CKb)WFS;3>s`ef}oD}^wrEde~)oA9{od4Uh@xq;H%2`7_OrSEY&i#{i4oo-*C zm*1ft?wr=T?uA@tMN<`RehMZwd2IkxtVeQcH&a+3M>16;=m;&6$YjVaYa7{RT+`eY z)gC$yV2i#DVlwr#8&o4X2$TsoeS)O=faDm`Ot-Rp&Cw`baM z%Z$X5NGaJt#kmcwl1vdcdz?9d%4~xTNRm3pIH+lgM-r_;1vwxFM;T(a21X^)($r9~ zkfpS*T9dO%Uo~k+)Xt9!_p@G=1wggjsBI5iMLz-E5q+t^t2)qQj~u8YU=hae=}N zIERhho~O}ENdux`$=7OeSCx0`7F;}AuDnHWXWSOQO#url`3aG>K5H{~t@jIwE{^p2 z$;n&z0~@riv@Kik&6!DVYdws0uqoox&<-n`nR3N4l`2jQ;s;3IXNKZzv;rwp19hVx zH^uF2Hmwx;d2@O_!YSrJYPS=2yW_fraag$|8mlg_!zx5Ss)%f_zVVJ~ykU8jXJ#PL z7=KKWnzS8m(lNRAMs*(UrbR&-3K|FSe>ch@RstFK!SjCn^1Qz=f4!ak(Kvsgy?;{v zjrr+%|JP#ozWrg`FUAJ3(!Zni|AIk$+F#=y286(VHlTkA_}^p51L7Xw{s8#Zkp2aG z*w>#e>Ax0&e7yT7?019ux1bLU{%m^uX5fqPkNy2>f&7O5TkQJ^|HHT!djwL;hwSq| z>iz#I`=1s6UuXc}?qAs7_5a@z{B^Q_ym$ZR(gJDXKqUD67XByn&z$!+)a&to&4B-8 z@MrS&o54BWKa}@ZD)$@xZ{7W;Y1KdZDfxdlk_rGd^+*1rdC*(>zBfbCj{{Wt>lg|JE diff --git a/src/codigo-inicial/antigo_dev.py b/src/codigo-inicial/antigo_dev.py deleted file mode 100644 index 4f9a3390..00000000 --- a/src/codigo-inicial/antigo_dev.py +++ /dev/null @@ -1,351 +0,0 @@ -import openpyxl as op -import datetime -import os - -def pegar_caminho(nome_arquivo): - - # Obter o caminho absoluto do arquivo Python em execução - caminho_script = os.path.abspath(__file__) - - # Obter o diretório da pasta onde o script está localizado - pasta_script = os.path.dirname(caminho_script) - - # Combinar o caminho da pasta com o nome do arquivo Excel - caminho = os.path.join(pasta_script, nome_arquivo) - - return caminho - -def preenche_planilha(planilha, dicionario): - - # color = op.styles.PatternFill("solid", start_color="5cb800") # <--- teste com cores - - caminho = pegar_caminho(planilha) - - # carrega a planilha de acordo com o caminho - workbook = op.load_workbook(caminho) - - # planilha_preenchida = pegar_caminho('preenchido-' + planilha) - - for nomePlanilha, entradaDados in dicionario.items(): - planilhaAtual = workbook[nomePlanilha] - - for intervaloCelula, entradaCelula in entradaDados: - if ":" in intervaloCelula: - inicioCelula, fimCelula = intervaloCelula.split(":") - planilhaAtual = workbook[nomePlanilha] - planilhaAtual[inicioCelula] = entradaCelula - # planilhaAtual[inicioCelula].fill = color <--- teste com cores - else: - planilhaAtual[intervaloCelula] = entradaCelula - # planilhaAtual[intervaloCelula].fill = color <--- teste com cores - - workbook.save("modified_ModeloFub.xlsx") - - print('arquivo salvo como ' + "modified_ModeloFub.xlsx") - - - -# workbook = op.load_workbook('Modelo_Fub.xlsm') -# number = 3108 - -# value = datetime.datetime.strptime("2014-06-23", "%Y-%m-%d") - -planilha_local_dados = { - "Receita x Despesa": [ - ("A3:J3", "Título do Projeto:String 1 A3:J3"), - ("A4:J4", "Executora: String 2 A4:J4"), - ("A5:J5", "Partícipe: String 3 A5:J5"), - ("A6:J6", "Período de Execução Físico-Financeiro: String 4 A6:J6"), - ("A7:J7", "Período que abrange esta prestação: String 5 A7:J7"), - ("A16:A25",datetime.datetime.strptime("2014-06-23", "%Y-%m-%d")), - ("B16:B25","STRINGB16B25"),# intervalo nao interfere - ("C16:C25","STRINGC16C25"),#intervalo nao interfere - ("E16:E25",200), - #("I16:I21",223), - ("I16", 23), - ("I17", 213), - ("I18", 223), - ("I19", 233), - ("I20", 243), - ("I21", 253), - ("I24", 263), - ("I26", 23787), - ("I27", 10), - ("I32", 100), - ("I33", 1000), - ("I38", 10000), - ("H45", "COORDENADORA_TESTE") - ], - "Exec. Receita e Despesa":[ - ("B16",200), - ("B17",201), - ("B18",202), - ("B19",203), - ("B20",204), - ("B21",205), - ("B22",206), - ("B23",207), - ("C16",205), - ("C17",206), - ("C18",207), - ("C19",208), - ("C20",209), - ("C21",210), - ("C22",211), - ("C23",212), - ("C24",213), - ("C25",214), - ("F16",2051), - ("F17",2061), - ("F18",2071), - ("F19",2081), - ("F20",2091), - ("F21",2101), - ("F22",2111), - ("F23",2121), - ("G16",20351), - ("G17",20361), - ("G18",20371), - ("G19",20381), - ("G20",20391), - ("G21",21301), - ("G22",21311), - ("G23",21321), - ("I26",2011), - ("I28",2001), - ("I29",2001), - ("B26",3011), - ("B28",3001), - ("B29",3001), - ("B31",3011), - ("C26",4011), - ("C29",4011), - ("C31",4011), - ("F26",5011), - ("F28",5001), - ("F29",5001), - ("F31",5011), - ("G26",6011), - ("G28",6001), - ("G29",6001), - ("G31",6011) - ], - "Pessoa Jurídica":[ - ("B11","TESTE_NOME"), - ("C11","TESTE_CPF"), - ("D11","TESTE_ESPECIFICACAO"), - ("E11","TESTE_DESCRICAO"), - ("F11","TESTE_DESCRICAO"), - ("F11","TESTE_RECIBO"), - ("G11",110101), - ("H11","TESTE_CHEQUE"), - ("I11",98765431), - ("J11",3000) - - ], - "Conciliação Bancária":[ - ("F10",5000), - ("F11",5000), - ("A15",120623), - ("A15",120623), - ("B15",9777), - ("C15","DOCUMENTO_TESTE"), - ("D15","DESCRIÇÃO_TESTE"), - ("B38",9777), - ("B39",7878), - ("C38","TESTESTRALEATORIOC38"), - ("C39",'TESTESTRALEATORIOC39'), - ("D38","TESTESTRALEATORIOD38"), - ("D39",'TESTESTRALEATORIOD39') - - ], - "Rendimento de Aplicação":[ - ("B12",2023), - ("C12",2024), - ("D12",2025), - ("E12",2026), - ("F12",2027), - ("G12",2028), - ("H12",2029) - ] - - -} - -model_fundep = { - "Relação e despesas" : [ - # campos cadastrais - ("C3", "Instituição Gestora"), - ("F3", "0000*XX"), - ("I3", "n_acordo"), - ("C4", "Titulo_Projeto"), - ("C5", "Nome_Coordenador"), - - # item beneficiarios - ("I5", "Dt_PeriodoPrestacao"), - ("C7", "Nome_Beneficiario"), - ("D7", "CNPJ-CPF-Baneficiario"), - ("E7", "Rubrica-Beneficiario"), - ("F7", "CH-OB-Beneficiario"), - ("G7", "dt-inicial-Beneficiario"), - ("H7", "NF-DOC.FISCAL-Beneficiario"), - ("I7", "dt-final-Beneficiario"), - ("J7", "valor-Beneficiario"), - ] -} - -modelo_fundep = { - "Relação e despesas" : [ - ("C3", {INSTITUICAO_EXECUTORA}), - ("F3", {}), #Talvez seja outra - ("I3", {SUBPROCESSO}), - ("C4", {NOME}), - ("C5", {COORDENADOR}), - ("I5", {}), #Datas diferentes do banco - #Não achei novos campos - ] -} - -modelo_fub = { - "Receita x Despesa": [ - ("A3", f"Título do Projeto: {NOME}"), - ("A4", f"Executora: {INSTITUICAO_EXECUTORA}"), - ("A5", "Partícipe: FINATEC - Fundação de Empreendimentos Científicos e Tecnológicos"), #Não achei correspondente da consulta - ("A6", f"Período de Execução Físico-Financeiro: {DATA_ASSINATURA} a {DATA_VIGENCIA}"), - ("A7", f"Período que abrange esta prestação: {x} a {DATA_VIGENCIA}"), #SEM INFORMAÇÃO DA PRIMEIRA DATA - - ("H46", {COORDENADOR}), #Acredito que pode variar o valor - ], - "Exec. Receita e Despesa":[ - #mesmo campos - ], - - "Passagens e Locomoção" : [ - #mesmo campo - ], - - "Pessoa Jurídica":[ - #mesmo campo - ], - - "Obrigaçoes tributárias" : [ - #mesmo campo - ], - - "Pessoa Fisica" : [ - #mesmo campo - ], - - "Serv. Terceiro CLT" : [ - #mesmo campo - ], - - "Conciliação Bancária":[ - #mesmo campo - ], - "Rendimento de Aplicação":[ - #mesmo campo - ] - - -} - -modelo_opas = { - "Relatório Consolidado" : [ - ("C3", {NOME}), - ("C4", {NOME_FINANCIADOR}), - ("C5", {}), #não achei o nome do representante - ("C6", {NOME}), - ("C7", f"{DATA_ASSINATURA} a {DATA_VIGENCIA}"), - ], - - "Relatório Detalhado" : [ - #mesmo anterior - ] -} - -#Modelo inconscistente -modelo_fap = { - "ANEXO I" : [ - ("E7", f"{SUBPROCESSO} \n {PROCESSO}") - - #Questões cadastrais - ("A14",{}), #instituição gestora diferente do banco - ("A20", {NOME}), - ("C22", f"Período da Prestação de Contas: {DATA_ASSINATURA} a {DATA_VIGENCIA}") - - ("D46", {COORDENADOR}), - - ], - "ANEXO II" : [ - ("I3", f"{SUBPROCESSO} \n {PROCESSO}") - ("A5", f"Coordenador: {COORDENADOR}"), - ("A6", f"Concedente: {NOME_FINANCIADOR}"), - ("A7", f"Convenente: {NOME_INSTITUICAO}"), - ("A8", f"Executora: {ID_INSTITUICAO_EXECUTORA}"), - - ], - "ANEXO III" : [ - ("A6", f"Título do Projeto: {NOME}"), - ("A7", f"Instituição Gestora: {NOME_INSTITUICAO}"), - ("A8", f"Instituição Executora: {ID_INSTITUICAO_EXECUTORA}") - - ], - "ANEXO IV" : [ - ("A14", {NOME_INSTITUICAO}), - ("A16", {NOME}), - ("F16", {DATA_VIGENCIA}), - ], - "Conciliação" : [ - ("A10", {NOME_INSTITUICAO}) - ] -} - -modelo_finep = { - "Relatório de Exec Financ A.1" : [ - ("B5", {NOME_INSTITUICAO}), #Diferente da consulta - ("B6", f"de {DATA_ASSINATURA} a {DATA_VIGENCIA}"), #Datas diferentes - ("B7", f"de {DATA_ASSINATURA} a {DATA_VIGENCIA}"), #datas diferentes - - ("F33", {COORDENADOR}) - ], - "DEMOSTR. RECEITA E DESPESA A.2" : [ - ("C5", {NOME_INSTITUICAO}), - ("C6", {DATA_ASSINATURA}), - ("C7", {DATA_VIGENCIA}), - ], - "Elemento de Despesa 39a" : [ - #Semelhante ao anterior - ], - "Elemento de Despesa 39B" : [ - #Semelhante ao anterior - ], - #Varios elementos semelhantes - "Rend. APL" : [ - ("A4", {NOME_INSTITUICAO}), - ("A6", {NOME}), - - #? - ("G6", {DATA_VIGENCIA}), - ("G7", {DATA_ENCERRAMENTO}), - ], - "Conciliação Bancária A.3" : [ - #Titulo igual o da maioria - ] -} - -# for nomePlanilha, entradaDados in planilha_local_dados.items(): -# planilhaAtual = workbook[nomePlanilha] - -# for intervaloCelula, entradaCelula in entradaDados: -# if ":" in intervaloCelula: -# inicioCelula, fimCelula = intervaloCelula.split(":") -# planilhaAtual = workbook[nomePlanilha] -# planilhaAtual[inicioCelula] = entradaCelula -# else: -# planilhaAtual[intervaloCelula] = entradaCelula - - -# workbook.save("modified_ModeloFub.xlsx") - -preenche_planilha('Modelo_Fub.xlsm', planilha_local_dados) diff --git a/src/codigo-inicial/app.py b/src/codigo-inicial/app.py deleted file mode 100644 index ec42521a..00000000 --- a/src/codigo-inicial/app.py +++ /dev/null @@ -1,78 +0,0 @@ -import os -import openpyxl as op - -# Adicionando o nome da gestora do projeto para FINATEC - -# ------------------------------------------------------------- - -# workbook = op.load_workbook('teste-template/FUNDEP.xlsx') - -# sheet = workbook.active - -# gestora = sheet['C3'] -# gestora.value = "Finatec" - - -# nome_projeto = sheet['C4'] -# nome_projeto.value = "Projeto X" - -# coordenador = sheet['C5'] -# coordenador.value = "Suellen" - -# referencia = sheet['F3'] -# referencia.value = "Suellen" - -# DÚVIDA: -# Nº Acordo de Parceria -# Nº Acordo - -# print(cell.value) - -# workbook.save('FUNDEP-preenchido.xlsx') - -# ------------------------------------------------------------- - -def pegar_caminho(nome_arquivo): - - # Obter o caminho absoluto do arquivo Python em execução - caminho_script = os.path.abspath(__file__) - - # Obter o diretório da pasta onde o script está localizado - pasta_script = os.path.dirname(caminho_script) - - # Combinar o caminho da pasta com o nome do arquivo Excel - caminho = os.path.join(pasta_script, nome_arquivo) - - return caminho - -def preenche_planilha(planilha, celulas): - - caminho = pegar_caminho(planilha) - - # carrega a planilha de acordo com o caminho - workbook = op.load_workbook(caminho) - - sheet = workbook.active - - for celula, text in celulas: - cell = sheet[celula] - cell.value = f'{text}' - - planilha_preenchida = pegar_caminho('preenchido-' + planilha) - - workbook.save(planilha_preenchida) - - print('arquivo salvo em ' + planilha_preenchida) - - - -celulas_preenchidas = [['C3', 'Fundep'], ['C4', 'Projeto X'], ['C5', 'Suellen'], ['F3', 'Suellen'], ['C7', 'Testando Item']] - -preenche_planilha('FUNDEP.xlsx', celulas_preenchidas) - - - - - - - diff --git a/src/codigo-inicial/index.py b/src/codigo-inicial/index.py deleted file mode 100644 index ec944264..00000000 --- a/src/codigo-inicial/index.py +++ /dev/null @@ -1,70 +0,0 @@ -import oracledb - -#connection string in the format -#/@:/ - -conStr = '' - -def getNomeColunas(): - - #inicializando o objeto que ira conectar no db - conn = None - #criando o objeto de conexão das - conn = oracledb.connect(conStr) - #criar um objeto cursor necessario para fazer as consultas - cur = conn.cursor() - cur.execute("SELECT * FROM IDEA.STG_PROJETOS_CONVENIAR") - - return cur - -def consultaPorID(IDPROJETO): - try: - connection = oracledb.connect(conStr) - cursor = connection.cursor() - print("Connected to database") - - # idProjeto = 6411 - sqlite_select_query = f"SELECT * FROM IDEA.STG_PROJETOS_CONVENIAR WHERE CODIGO='{IDPROJETO}'" - - cursor.execute(sqlite_select_query) - - records = cursor.fetchall() - - collums = getNomeColunas() - # print(records) - - # print(len(collums.description)) - # print(len(records[0])) - - consulta = {} - - for i in range(len(collums.description)): - # print(f"{collums.description[i][0]}: {records[0][i]}") - consulta[collums.description[i][0]] = records[0][i] - - print(consulta) - - # print(f"\n \n {consulta['OBJETIVOS']} \n") - consulta['OBJETIVOS'] = str(consulta['OBJETIVOS']) - - cursor.close() - - except oracledb.Error as error: - print("Failed to read data from table", error) - finally: - if connection: - connection.close() - print("The connection is closed") - - # return records - return consulta - -# executando -a = input("Digite o id do projeto: ") -print("\n\n") -resultado = consultaPorID(a) - -print(f"\n {resultado} \n") - - - diff --git a/src/codigo-inicial/inicial.py b/src/codigo-inicial/inicial.py deleted file mode 100644 index e9a00401..00000000 --- a/src/codigo-inicial/inicial.py +++ /dev/null @@ -1,50 +0,0 @@ -import os -import openpyxl as op - -# Adicionando o nome da gestora do projeto para FINATEC -# Ajustando caminho -------------------------------------- - - # Obter o caminho absoluto do arquivo Python em execução -caminho_script = os.path.abspath(__file__) - - # Obter o diretório da pasta onde o script está localizado -pasta_script = os.path.dirname(caminho_script) - - # Nome do arquivo Excel -nome_arquivo_excel = 'FUNDEP.xlsx' - - # Combinar o caminho da pasta com o nome do arquivo Excel -caminho_arquivo_excel = os.path.join(pasta_script, nome_arquivo_excel) - - # Carregar o arquivo Excel - - - - -# Código inicial------------------------------------------ - -workbook = op.load_workbook(caminho_arquivo_excel) - -sheet = workbook.active - -gestora = sheet['C3'] -gestora.value = "Finatec" - - -nome_projeto = sheet['C4'] -nome_projeto.value = "Projeto X" - -coordenador = sheet['C5'] -coordenador.value = "Suellen" - -referencia = sheet['F3'] -referencia.value = "27193*14" - -# DÚVIDA: -# Nº Acordo de Parceria -# Nº Acordo - -# Salvando arquivo na mesma pasta -nome_novo_excel = 'FUNDEP-inicial.xlsx' -caminho_novo_excel = os.path.join(pasta_script, nome_novo_excel) -workbook.save(caminho_novo_excel) \ No newline at end of file diff --git a/src/scripts/modeloTemplates.py b/src/scripts/modeloTemplates.py deleted file mode 100644 index 74dfd7b3..00000000 --- a/src/scripts/modeloTemplates.py +++ /dev/null @@ -1,318 +0,0 @@ -import datetime - -class ModeloTemplate(): - def fundep(self): - modelo_fundep = { - "Relação e despesas" : [ - # campos cadastrais - ("C3", f"{records.NOME_INSTITUICAO_EXECUTORA}"), - ("F3", "0000*XX"), - ("I3", "n_acordo"), - ("C4", f"{records.NOME_PROJETO}"), - ("C5", f"{records.NOME_COORDENADOR}"), - - # item beneficiarios - ("I5", "Dt_PeriodoPrestacao"), - ("C7", "Nome_Beneficiario"), - ("D7", "CNPJ-CPF-Baneficiario"), - ("E7", "Rubrica-Beneficiario"), - ("F7", "CH-OB-Beneficiario"), - ("G7", "dt-inicial-Beneficiario"), - ("H7", "NF-DOC.FISCAL-Beneficiario"), - ("I7", "dt-final-Beneficiario"), - ("J7", "valor-Beneficiario"), - ] - } - return modelo_fundep - - def fub(self): - modelo_fub = { - "Receita x Despesa": [ - ("A3:J3", f"Título do Projeto: {records.NOME}"), #AJEITAR - ("A4:J4", f"Executora: {NOME_INSTITUICAO_EXECUTORA}"), - ("A5:J5", f"Partícipe: {NOME_INSTITUICAO}"), # o que eh participe? - ("A6:J6", f"Período de Execução Físico-Financeiro: {DATA_ASSINATURA} a {DATA_VIGENCIA}"), - ("A7:J7", f"Período que abrange esta prestação: {DATA_VIGE}"), #VAZIO - ("A16:A25", datetime.datetime.strptime("2014-06-23", "%Y-%m-%d")), - ("B16:B25", "STRINGB16B25"),# intervalo nao interfere - ("C16:C25", "STRINGC16C25"),#intervalo nao interfere - ("E16:E25", 200), - #("I16:I21",223), - ("I16", 23), - ("I17", 213), - ("I18", 223), - ("I19", 233), - ("I20", 243), - ("I21", 253), - ("I24", 263), - ("I26", 23787), - ("I27", 10), - ("I32", 100), - ("I33", 1000), - ("I38", 10000), - ("H45", f"NOME_COORDENADOR") - ], - "Exec. Receita e Despesa":[ - ("B16",200), - ("B17",201), - ("B18",202), - ("B19",203), - ("B20",204), - ("B21",205), - ("B22",206), - ("B23",207), - ("C16",205), - ("C17",206), - ("C18",207), - ("C19",208), - ("C20",209), - ("C21",210), - ("C22",211), - ("C23",212), - ("C24",213), - ("C25",214), - ("F16",2051), - ("F17",2061), - ("F18",2071), - ("F19",2081), - ("F20",2091), - ("F21",2101), - ("F22",2111), - ("F23",2121), - ("G16",20351), - ("G17",20361), - ("G18",20371), - ("G19",20381), - ("G20",20391), - ("G21",21301), - ("G22",21311), - ("G23",21321), - ("I26",2011), - ("I28",2001), - ("I29",2001), - ("B26",3011), - ("B28",3001), - ("B29",3001), - ("B31",3011), - ("C26",4011), - ("C29",4011), - ("C31",4011), - ("F26",5011), - ("F28",5001), - ("F29",5001), - ("F31",5011), - ("G26",6011), - ("G28",6001), - ("G29",6001), - ("G31",6011) - ], - "Pessoa Jurídica":[ - ("B11","TESTE_NOME"), - ("C11","TESTE_CPF"), - ("D11","TESTE_ESPECIFICACAO"), - ("E11","TESTE_DESCRICAO"), - ("F11","TESTE_DESCRICAO"), - ("F11","TESTE_RECIBO"), - ("G11",110101), - ("H11","TESTE_CHEQUE"), - ("I11",98765431), - ("J11",3000) - - ], - "Conciliação Bancária":[ - ("F10",5000), - ("F11",5000), - ("A15",120623), - ("A15",120623), - ("B15",9777), - ("C15","DOCUMENTO_TESTE"), - ("D15","DESCRIÇÃO_TESTE"), - ("B38",9777), - ("B39",7878), - ("C38","TESTESTRALEATORIOC38"), - ("C39",'TESTESTRALEATORIOC39'), - ("D38","TESTESTRALEATORIOD38"), - ("D39",'TESTESTRALEATORIOD39') - - ], - "Rendimento de Aplicação":[ - ("B12",2023), - ("C12",2024), - ("D12",2025), - ("E12",2026), - ("F12",2027), - ("G12",2028), - ("H12",2029) - ] - } - - return modelo_fub - - def opas(self): - modelo_opas = { - "Relatório Consolidado" : [ - # campos cadastrais - ("C4","numero_loa"), - ("C5","nome_beneficiario"), - ("C6","nome_representante_legal"), - ("C7","titulo_loa"), - ("C8","periodo_despesas"), - ("C9","montante_recebido"), - ("C10","balanco_pagtos_anteriores"), - - # atividade 1 - ("A15","atividade_1"), - - # montante previsto/executado atividade 1 - ("D15","passagens_diarias_previsto"), - ("E15","passagens_diarias_executado"), - - ("D16","equipamentos_previsto"), - ("E16","equipamentos_executado"), - - ("D17", "construcao_previsto"), - ("E17", "construcao_executado"), - - ("D18", "pessoa_fisica_previsto"), - ("E18", "pessoa_fisica_executado"), - - ("D19", "servicoes_materiais_previsto"), - ("E19", "servicoes_materiais_executado"), - - ("D20", "treinamento_capacitacao_previsto"), - ("E20", "treinamento_capacitacao_executado"), - - # atividade 2 - ("A21","atividade_2"), - - # montante previsto/executado atividade 2 - ("D21","passagens_diarias_previsto"), - ("E21","passagens_diarias_executado"), - - ("D22","equipamentos_previsto"), - ("E22","equipamentos_executado"), - - ("D23", "construcao_previsto"), - ("E23", "construcao_executado"), - - ("D24", "pessoa_fisica_previsto"), - ("E24", "pessoa_fisica_executado"), - - ("D25", "servicoes_materiais_previsto"), - ("E25", "servicoes_materiais_executado"), - - ("D26", "treinamento_capacitacao_previsto"), - ("E26", "treinamento_capacitacao_executado"), - - # atividade 3 - ("A27","atividade_3"), - - # montante previsto/executado atividade 3 - ("D27","passagens_diarias_previsto"), - ("E27","passagens_diarias_executado"), - - ("D28","equipamentos_previsto"), - ("E28","equipamentos_executado"), - - ("D29", "construcao_previsto"), - ("E29", "construcao_executado"), - - ("D30", "pessoa_fisica_previsto"), - ("E30", "pessoa_fisica_executado"), - - ("D31", "servicoes_materiais_previsto"), - ("E31", "servicoes_materiais_executado"), - - ("D32", "treinamento_capacitacao_previsto"), - ("E32", "treinamento_capacitacao_executado"), - - # atividade 4 - ("A33","atividade_4"), - - # montante previsto/executado atividade 4 - ("D33","passagens_diarias_previsto"), - ("E33","passagens_diarias_executado"), - - ("D34","equipamentos_previsto"), - ("E34","equipamentos_executado"), - - ("D35", "construcao_previsto"), - ("E35", "construcao_executado"), - - ("D36", "pessoa_fisica_previsto"), - ("E36", "pessoa_fisica_executado"), - - ("D37", "servicoes_materiais_previsto"), - ("E37", "servicoes_materiais_executado"), - - ("D38", "treinamento_capacitacao_previsto"), - ("E38", "treinamento_capacitacao_executado"), - - ], - - "Relatório Detalhado" : [ - # campos cadastrais - ("C4","numero_loa"), - ("C5","nome_beneficiario"), - ("C6","nome_representante_legal"), - ("C7","titulo_loa"), - ("C8","periodo_despesas"), - - # despesas - ("B13:B42", "nome_fornecedor"), - ("C13:C42", "categoria_despesa"), - ("D13:D42", "data_despesa"), - ("E13:E42", "montante_despesa"), - - ] - } - return modelo_opas - - def fap(self): - modelo_fap = { - "" : [], - } - return modelo_fap - - def fup(self): - modelo_fup = { - "" : [], - } - return modelo_fup - - def ceb(self): - modelo_ceb = { - "" : [], - } - return modelo_ceb - - def finep(self): - modelo_finep = { - "" : [], - } - return modelo_finep - - def ibitic(self): - modelo_ibitic = { - "Capa Finatec" : [], - "Receita x Despesa" : [], - "Exec. Receita e Despesa" : [], - "Diárias" : [], - "Passagens e Desp. Locomoção" : [], - "Material de Consumo" : [], - "Serviços de Terceiros PF" : [], - "Obrig Tribut e Contributivas" : [], - "Bolsas de Pesquisa" : [], - "Outros Serviços de Terceiros PJ" : [], - "Equip. Material Permanente" : [], - "Relação de Bens" : [], - "Rendimento de Aplicação" : [], - "Conciliação Bancária" : [], - } - return modelo_ibitic - - def anp(self): - modelo_anp = { - "" : [], - } - return modelo_anp