diff --git a/src/data_test.py b/src/data_test.py index 2d63f82..e0e67b5 100644 --- a/src/data_test.py +++ b/src/data_test.py @@ -10,7 +10,14 @@ def test_validate_existence_mppi_2021(self): dados = data.Data("2021", "01", "MPPI", "src/output_test/sheets/") dados.validate() self.assertEqual(cm.exception.code, STATUS_DATA_UNAVAILABLE) - + + def test_validate_existence_mpsp_2021(self): + # Sem dados para o MPSP em 2021 + STATUS_DATA_UNAVAILABLE = 4 + with self.assertRaises(SystemExit) as cm: + dados = data.Data("2021", "01", "MPSP", "src/output_test/sheets/") + dados.validate() + self.assertEqual(cm.exception.code, STATUS_DATA_UNAVAILABLE) if __name__ == "__main__": unittest.main() \ No newline at end of file diff --git a/src/headers_keys.py b/src/headers_keys.py index 397a1b6..02740f9 100644 --- a/src/headers_keys.py +++ b/src/headers_keys.py @@ -15,6 +15,10 @@ INDENIZACOES_MPPI = "indenizacoes-mppi" CONTRACHEQUE_MPSP = "contracheque-mpsp" INDENIZACOES_MPSP = "indenizacoes-mpsp" +INDENIZACOES_MPSP_02_2022 = "indenizacoes-mpsp-02-2022" +INDENIZACOES_MPSP_03_2022 = "indenizacoes-mpsp-03-2022" +INDENIZACOES_MPSP_08_2022 = "indenizacoes-mpsp-08-2022" +INDENIZACOES_MPSP_01_2023 = "indenizacoes-mpsp-01-2023" CONTRACHEQUE_MPAC = "contracheque-mpac" INDENIZACOES_MPAC = "indenizacoes-mpac" CONTRACHEQUE_MPAL = "contracheque-mpal" @@ -388,6 +392,21 @@ }, }, INDENIZACOES_MPSP: { + "Auxílio Alimentação": 4, + "Férias em Pecúnia": 5, + "Assistência Saúde": 6, + "Gratificação Cumulativa": 7, + "Gratificação de Natureza Especial": 8, + "Gratificação de Grupo de Atuação Especial": 9, + }, + INDENIZACOES_MPSP_02_2022: { + "Auxílio Alimentação": 4, + "Assistência Saúde": 5, + "Gratificação Cumulativa": 6, + "Gratificação de Natureza Especial": 7, + "Gratificação de Grupo de Atuação Especial": 8, + }, + INDENIZACOES_MPSP_03_2022: { "Auxílio Alimentação": 4, "Férias em Pecúnia": 5, "Licença Prêmio em Pecúnia": 6, @@ -396,6 +415,20 @@ "Gratificação de Natureza Especial": 9, "Gratificação de Grupo de Atuação Especial": 10, }, + INDENIZACOES_MPSP_08_2022: { + "Auxílio Alimentação": 4, + "Férias em Pecúnia": 5, + "Licença Prêmio em Pecúnia": 6, + "Assistência Saúde": 7, + "Gratificação Cumulativa": 8, + "Gratificação de Natureza Especial": 9, + }, + INDENIZACOES_MPSP_01_2023: { + "Auxílio Alimentação": 4, + "Assistência Saúde": 5, + "Gratificação Cumulativa": 6, + "Gratificação de Natureza Especial": 7, + }, CONTRACHEQUE_MPAC: { "REMUNERAÇÃO BÁSICA": { "Remuneração do Cargo Efetivo": 5, diff --git a/src/output_test/expected/expected_mpsp_01_2022.json b/src/output_test/expected/expected_mpsp_01_2022.json new file mode 100644 index 0000000..1c1bdda --- /dev/null +++ b/src/output_test/expected/expected_mpsp_01_2022.json @@ -0,0 +1,87 @@ +{ + "idContraCheque": "mpsp/01/2022/1", + "chaveColeta": "mpsp/01/2022", + "nome": "ABNER CASTORINO", + "matricula": "3725", + "funcao": "PROMOTOR DE JUSTICA (ENTRANCIA FINAL)", + "localTrabalho": "PROMOTORIA DE JUSTICA DE SAO BERNARDO DO CAMPO", + "ativo": true, + "remuneracoes": { + "remuneracao": [ + { + "categoria": "REMUNERAÇÃO BÁSICA", + "item": "Remuneração Cargo Efetivo", + "valor": 33689.1 + }, + { + "categoria": "REMUNERAÇÃO BÁSICA", + "item": "Outras Verbas Remuneratórias, Legais ou Judiciais" + }, + { + "categoria": "REMUNERAÇÃO EVENTUAL OU TEMPORÁRIA", + "item": "Função de Confiança ou Cargo em Comissão" + }, + { + "categoria": "REMUNERAÇÃO EVENTUAL OU TEMPORÁRIA", + "item": "Gratificação Natalina" + }, + { + "categoria": "REMUNERAÇÃO EVENTUAL OU TEMPORÁRIA", + "item": "Férias (1/3 Constitucional)" + }, + { + "categoria": "REMUNERAÇÃO EVENTUAL OU TEMPORÁRIA", + "item": "Abono de Permanência" + }, + { + "natureza": "D", + "categoria": "OBRIGATÓRIOS/LEGAIS", + "item": "Contribuição Previdenciária", + "valor": -5166.9 + }, + { + "natureza": "D", + "categoria": "OBRIGATÓRIOS/LEGAIS", + "item": "Imposto de Renda", + "valor": -6974.24 + }, + { + "natureza": "D", + "categoria": "OBRIGATÓRIOS/LEGAIS", + "item": "Retenção por Teto Constitucional" + }, + { + "categoria": "VERBAS INDENIZATÓRIAS E OUTRAS REMUNERAÇÕES TEMPORÁRIAS", + "item": "Auxílio Alimentação", + "valor": 960.0, + "tipoReceita": "O" + }, + { + "categoria": "VERBAS INDENIZATÓRIAS E OUTRAS REMUNERAÇÕES TEMPORÁRIAS", + "item": "Férias em Pecúnia", + "tipoReceita": "O" + }, + { + "categoria": "VERBAS INDENIZATÓRIAS E OUTRAS REMUNERAÇÕES TEMPORÁRIAS", + "item": "Assistência Saúde", + "valor": 1712.49, + "tipoReceita": "O" + }, + { + "categoria": "VERBAS INDENIZATÓRIAS E OUTRAS REMUNERAÇÕES TEMPORÁRIAS", + "item": "Gratificação Cumulativa", + "tipoReceita": "O" + }, + { + "categoria": "VERBAS INDENIZATÓRIAS E OUTRAS REMUNERAÇÕES TEMPORÁRIAS", + "item": "Gratificação de Natureza Especial", + "tipoReceita": "O" + }, + { + "categoria": "VERBAS INDENIZATÓRIAS E OUTRAS REMUNERAÇÕES TEMPORÁRIAS", + "item": "Gratificação de Grupo de Atuação Especial", + "tipoReceita": "O" + } + ] + } +} \ No newline at end of file diff --git a/src/output_test/expected/expected_mpsp_01_2023.json b/src/output_test/expected/expected_mpsp_01_2023.json new file mode 100644 index 0000000..462ab93 --- /dev/null +++ b/src/output_test/expected/expected_mpsp_01_2023.json @@ -0,0 +1,77 @@ +{ + "idContraCheque": "mpsp/01/2023/1", + "chaveColeta": "mpsp/01/2023", + "nome": "ABNER CASTORINO", + "matricula": "3725", + "funcao": "PROMOTOR DE JUSTICA (ENTRANCIA FINAL)", + "localTrabalho": "PROMOTORIA DE JUSTICA DE SAO BERNARDO DO CAMPO", + "ativo": true, + "remuneracoes": { + "remuneracao": [ + { + "categoria": "REMUNERAÇÃO BÁSICA", + "item": "Remuneração Cargo Efetivo", + "valor": 33689.1 + }, + { + "categoria": "REMUNERAÇÃO BÁSICA", + "item": "Outras Verbas Remuneratórias, Legais ou Judiciais" + }, + { + "categoria": "REMUNERAÇÃO EVENTUAL OU TEMPORÁRIA", + "item": "Função de Confiança ou Cargo em Comissão" + }, + { + "categoria": "REMUNERAÇÃO EVENTUAL OU TEMPORÁRIA", + "item": "Gratificação Natalina" + }, + { + "categoria": "REMUNERAÇÃO EVENTUAL OU TEMPORÁRIA", + "item": "Férias (1/3 Constitucional)" + }, + { + "categoria": "REMUNERAÇÃO EVENTUAL OU TEMPORÁRIA", + "item": "Abono de Permanência" + }, + { + "natureza": "D", + "categoria": "OBRIGATÓRIOS/LEGAIS", + "item": "Contribuição Previdenciária", + "valor": -5152.62 + }, + { + "natureza": "D", + "categoria": "OBRIGATÓRIOS/LEGAIS", + "item": "Imposto de Renda", + "valor": -6978.17 + }, + { + "natureza": "D", + "categoria": "OBRIGATÓRIOS/LEGAIS", + "item": "Retenção por Teto Constitucional" + }, + { + "categoria": "VERBAS INDENIZATÓRIAS E OUTRAS REMUNERAÇÕES TEMPORÁRIAS", + "item": "Auxílio Alimentação", + "valor": 1100.0, + "tipoReceita": "O" + }, + { + "categoria": "VERBAS INDENIZATÓRIAS E OUTRAS REMUNERAÇÕES TEMPORÁRIAS", + "item": "Assistência Saúde", + "valor": 3368.91, + "tipoReceita": "O" + }, + { + "categoria": "VERBAS INDENIZATÓRIAS E OUTRAS REMUNERAÇÕES TEMPORÁRIAS", + "item": "Gratificação Cumulativa", + "tipoReceita": "O" + }, + { + "categoria": "VERBAS INDENIZATÓRIAS E OUTRAS REMUNERAÇÕES TEMPORÁRIAS", + "item": "Gratificação de Natureza Especial", + "tipoReceita": "O" + } + ] + } +} \ No newline at end of file diff --git a/src/output_test/expected/expected_mpsp_02_2022.json b/src/output_test/expected/expected_mpsp_02_2022.json new file mode 100644 index 0000000..01293e2 --- /dev/null +++ b/src/output_test/expected/expected_mpsp_02_2022.json @@ -0,0 +1,82 @@ +{ + "idContraCheque": "mpsp/02/2022/1", + "chaveColeta": "mpsp/02/2022", + "nome": "ABNER CASTORINO", + "matricula": "3725", + "funcao": "PROMOTOR DE JUSTICA (ENTRANCIA FINAL)", + "localTrabalho": "PROMOTORIA DE JUSTICA DE SAO BERNARDO DO CAMPO", + "ativo": true, + "remuneracoes": { + "remuneracao": [ + { + "categoria": "REMUNERAÇÃO BÁSICA", + "item": "Remuneração Cargo Efetivo", + "valor": 33689.1 + }, + { + "categoria": "REMUNERAÇÃO BÁSICA", + "item": "Outras Verbas Remuneratórias, Legais ou Judiciais" + }, + { + "categoria": "REMUNERAÇÃO EVENTUAL OU TEMPORÁRIA", + "item": "Função de Confiança ou Cargo em Comissão" + }, + { + "categoria": "REMUNERAÇÃO EVENTUAL OU TEMPORÁRIA", + "item": "Gratificação Natalina" + }, + { + "categoria": "REMUNERAÇÃO EVENTUAL OU TEMPORÁRIA", + "item": "Férias (1/3 Constitucional)" + }, + { + "categoria": "REMUNERAÇÃO EVENTUAL OU TEMPORÁRIA", + "item": "Abono de Permanência" + }, + { + "natureza": "D", + "categoria": "OBRIGATÓRIOS/LEGAIS", + "item": "Contribuição Previdenciária", + "valor": -5166.9 + }, + { + "natureza": "D", + "categoria": "OBRIGATÓRIOS/LEGAIS", + "item": "Imposto de Renda", + "valor": -6974.24 + }, + { + "natureza": "D", + "categoria": "OBRIGATÓRIOS/LEGAIS", + "item": "Retenção por Teto Constitucional" + }, + { + "categoria": "VERBAS INDENIZATÓRIAS E OUTRAS REMUNERAÇÕES TEMPORÁRIAS", + "item": "Auxílio Alimentação", + "valor": 960.0, + "tipoReceita": "O" + }, + { + "categoria": "VERBAS INDENIZATÓRIAS E OUTRAS REMUNERAÇÕES TEMPORÁRIAS", + "item": "Assistência Saúde", + "valor": 1712.49, + "tipoReceita": "O" + }, + { + "categoria": "VERBAS INDENIZATÓRIAS E OUTRAS REMUNERAÇÕES TEMPORÁRIAS", + "item": "Gratificação Cumulativa", + "tipoReceita": "O" + }, + { + "categoria": "VERBAS INDENIZATÓRIAS E OUTRAS REMUNERAÇÕES TEMPORÁRIAS", + "item": "Gratificação de Natureza Especial", + "tipoReceita": "O" + }, + { + "categoria": "VERBAS INDENIZATÓRIAS E OUTRAS REMUNERAÇÕES TEMPORÁRIAS", + "item": "Gratificação de Grupo de Atuação Especial", + "tipoReceita": "O" + } + ] + } +} \ No newline at end of file diff --git a/src/output_test/expected/expected_mpsp_03_2022.json b/src/output_test/expected/expected_mpsp_03_2022.json new file mode 100644 index 0000000..4a3ed50 --- /dev/null +++ b/src/output_test/expected/expected_mpsp_03_2022.json @@ -0,0 +1,93 @@ +{ + "idContraCheque": "mpsp/03/2022/1", + "chaveColeta": "mpsp/03/2022", + "nome": "ABNER CASTORINO", + "matricula": "3725", + "funcao": "PROMOTOR DE JUSTICA (ENTRANCIA FINAL)", + "localTrabalho": "PROMOTORIA DE JUSTICA DE SAO BERNARDO DO CAMPO", + "ativo": true, + "remuneracoes": { + "remuneracao": [ + { + "categoria": "REMUNERAÇÃO BÁSICA", + "item": "Remuneração Cargo Efetivo", + "valor": 33689.1 + }, + { + "categoria": "REMUNERAÇÃO BÁSICA", + "item": "Outras Verbas Remuneratórias, Legais ou Judiciais" + }, + { + "categoria": "REMUNERAÇÃO EVENTUAL OU TEMPORÁRIA", + "item": "Função de Confiança ou Cargo em Comissão" + }, + { + "categoria": "REMUNERAÇÃO EVENTUAL OU TEMPORÁRIA", + "item": "Gratificação Natalina" + }, + { + "categoria": "REMUNERAÇÃO EVENTUAL OU TEMPORÁRIA", + "item": "Férias (1/3 Constitucional)" + }, + { + "categoria": "REMUNERAÇÃO EVENTUAL OU TEMPORÁRIA", + "item": "Abono de Permanência" + }, + { + "natureza": "D", + "categoria": "OBRIGATÓRIOS/LEGAIS", + "item": "Contribuição Previdenciária", + "valor": -5166.9 + }, + { + "natureza": "D", + "categoria": "OBRIGATÓRIOS/LEGAIS", + "item": "Imposto de Renda", + "valor": -6974.24 + }, + { + "natureza": "D", + "categoria": "OBRIGATÓRIOS/LEGAIS", + "item": "Retenção por Teto Constitucional" + }, + { + "categoria": "VERBAS INDENIZATÓRIAS E OUTRAS REMUNERAÇÕES TEMPORÁRIAS", + "item": "Auxílio Alimentação", + "valor": 960.0, + "tipoReceita": "O" + }, + { + "categoria": "VERBAS INDENIZATÓRIAS E OUTRAS REMUNERAÇÕES TEMPORÁRIAS", + "item": "Férias em Pecúnia", + "valor": 7486.46, + "tipoReceita": "O" + }, + { + "categoria": "VERBAS INDENIZATÓRIAS E OUTRAS REMUNERAÇÕES TEMPORÁRIAS", + "item": "Licença Prêmio em Pecúnia", + "tipoReceita": "O" + }, + { + "categoria": "VERBAS INDENIZATÓRIAS E OUTRAS REMUNERAÇÕES TEMPORÁRIAS", + "item": "Assistência Saúde", + "valor": 3368.91, + "tipoReceita": "O" + }, + { + "categoria": "VERBAS INDENIZATÓRIAS E OUTRAS REMUNERAÇÕES TEMPORÁRIAS", + "item": "Gratificação Cumulativa", + "tipoReceita": "O" + }, + { + "categoria": "VERBAS INDENIZATÓRIAS E OUTRAS REMUNERAÇÕES TEMPORÁRIAS", + "item": "Gratificação de Natureza Especial", + "tipoReceita": "O" + }, + { + "categoria": "VERBAS INDENIZATÓRIAS E OUTRAS REMUNERAÇÕES TEMPORÁRIAS", + "item": "Gratificação de Grupo de Atuação Especial", + "tipoReceita": "O" + } + ] + } +} \ No newline at end of file diff --git a/src/output_test/expected/expected_mpsp_07_2023.json b/src/output_test/expected/expected_mpsp_07_2023.json new file mode 100644 index 0000000..c04c926 --- /dev/null +++ b/src/output_test/expected/expected_mpsp_07_2023.json @@ -0,0 +1,93 @@ +{ + "idContraCheque": "mpsp/07/2023/1", + "chaveColeta": "mpsp/07/2023", + "nome": "ABNER CASTORINO", + "matricula": "3725", + "funcao": "PROMOTOR DE JUSTICA (ENTRANCIA FINAL)", + "localTrabalho": "PROMOTORIA DE JUSTICA DE SAO BERNARDO DO CAMPO", + "ativo": true, + "remuneracoes": { + "remuneracao": [ + { + "categoria": "REMUNERAÇÃO BÁSICA", + "item": "Remuneração Cargo Efetivo", + "valor": 35710.44 + }, + { + "categoria": "REMUNERAÇÃO BÁSICA", + "item": "Outras Verbas Remuneratórias, Legais ou Judiciais" + }, + { + "categoria": "REMUNERAÇÃO EVENTUAL OU TEMPORÁRIA", + "item": "Função de Confiança ou Cargo em Comissão" + }, + { + "categoria": "REMUNERAÇÃO EVENTUAL OU TEMPORÁRIA", + "item": "Gratificação Natalina" + }, + { + "categoria": "REMUNERAÇÃO EVENTUAL OU TEMPORÁRIA", + "item": "Férias (1/3 Constitucional)" + }, + { + "categoria": "REMUNERAÇÃO EVENTUAL OU TEMPORÁRIA", + "item": "Abono de Permanência" + }, + { + "natureza": "D", + "categoria": "OBRIGATÓRIOS/LEGAIS", + "item": "Contribuição Previdenciária", + "valor": -5475.86 + }, + { + "natureza": "D", + "categoria": "OBRIGATÓRIOS/LEGAIS", + "item": "Imposto de Renda", + "valor": -7429.54 + }, + { + "natureza": "D", + "categoria": "OBRIGATÓRIOS/LEGAIS", + "item": "Retenção por Teto Constitucional" + }, + { + "categoria": "VERBAS INDENIZATÓRIAS E OUTRAS REMUNERAÇÕES TEMPORÁRIAS", + "item": "Auxílio Alimentação", + "valor": 1200.0, + "tipoReceita": "O" + }, + { + "categoria": "VERBAS INDENIZATÓRIAS E OUTRAS REMUNERAÇÕES TEMPORÁRIAS", + "item": "Férias em Pecúnia", + "valor": 7935.65, + "tipoReceita": "O" + }, + { + "categoria": "VERBAS INDENIZATÓRIAS E OUTRAS REMUNERAÇÕES TEMPORÁRIAS", + "item": "Licença Prêmio em Pecúnia", + "tipoReceita": "O" + }, + { + "categoria": "VERBAS INDENIZATÓRIAS E OUTRAS REMUNERAÇÕES TEMPORÁRIAS", + "item": "Assistência Saúde", + "valor": 3571.04, + "tipoReceita": "O" + }, + { + "categoria": "VERBAS INDENIZATÓRIAS E OUTRAS REMUNERAÇÕES TEMPORÁRIAS", + "item": "Gratificação Cumulativa", + "tipoReceita": "O" + }, + { + "categoria": "VERBAS INDENIZATÓRIAS E OUTRAS REMUNERAÇÕES TEMPORÁRIAS", + "item": "Gratificação de Natureza Especial", + "tipoReceita": "O" + }, + { + "categoria": "VERBAS INDENIZATÓRIAS E OUTRAS REMUNERAÇÕES TEMPORÁRIAS", + "item": "Gratificação de Grupo de Atuação Especial", + "tipoReceita": "O" + } + ] + } +} \ No newline at end of file diff --git a/src/output_test/expected/expected_mpsp_08_2022.json b/src/output_test/expected/expected_mpsp_08_2022.json new file mode 100644 index 0000000..1ff957a --- /dev/null +++ b/src/output_test/expected/expected_mpsp_08_2022.json @@ -0,0 +1,89 @@ +{ + "idContraCheque": "mpsp/08/2022/1", + "chaveColeta": "mpsp/08/2022", + "nome": "ABNER CASTORINO", + "matricula": "3725", + "funcao": "PROMOTOR DE JUSTICA (ENTRANCIA FINAL)", + "localTrabalho": "PROMOTORIA DE JUSTICA DE SAO BERNARDO DO CAMPO", + "ativo": true, + "remuneracoes": { + "remuneracao": [ + { + "categoria": "REMUNERAÇÃO BÁSICA", + "item": "Remuneração Cargo Efetivo", + "valor": 33689.1 + }, + { + "categoria": "REMUNERAÇÃO BÁSICA", + "item": "Outras Verbas Remuneratórias, Legais ou Judiciais" + }, + { + "categoria": "REMUNERAÇÃO EVENTUAL OU TEMPORÁRIA", + "item": "Função de Confiança ou Cargo em Comissão" + }, + { + "categoria": "REMUNERAÇÃO EVENTUAL OU TEMPORÁRIA", + "item": "Gratificação Natalina" + }, + { + "categoria": "REMUNERAÇÃO EVENTUAL OU TEMPORÁRIA", + "item": "Férias (1/3 Constitucional)" + }, + { + "categoria": "REMUNERAÇÃO EVENTUAL OU TEMPORÁRIA", + "item": "Abono de Permanência" + }, + { + "natureza": "D", + "categoria": "OBRIGATÓRIOS/LEGAIS", + "item": "Contribuição Previdenciária", + "valor": -5405.889999999999 + }, + { + "natureza": "D", + "categoria": "OBRIGATÓRIOS/LEGAIS", + "item": "Imposto de Renda", + "valor": -7730.08 + }, + { + "natureza": "D", + "categoria": "OBRIGATÓRIOS/LEGAIS", + "item": "Retenção por Teto Constitucional" + }, + { + "categoria": "VERBAS INDENIZATÓRIAS E OUTRAS REMUNERAÇÕES TEMPORÁRIAS", + "item": "Auxílio Alimentação", + "valor": 1100.0, + "tipoReceita": "O" + }, + { + "categoria": "VERBAS INDENIZATÓRIAS E OUTRAS REMUNERAÇÕES TEMPORÁRIAS", + "item": "Férias em Pecúnia", + "valor": 7486.46, + "tipoReceita": "O" + }, + { + "categoria": "VERBAS INDENIZATÓRIAS E OUTRAS REMUNERAÇÕES TEMPORÁRIAS", + "item": "Licença Prêmio em Pecúnia", + "tipoReceita": "O" + }, + { + "categoria": "VERBAS INDENIZATÓRIAS E OUTRAS REMUNERAÇÕES TEMPORÁRIAS", + "item": "Assistência Saúde", + "valor": 3368.91, + "tipoReceita": "O" + }, + { + "categoria": "VERBAS INDENIZATÓRIAS E OUTRAS REMUNERAÇÕES TEMPORÁRIAS", + "item": "Gratificação Cumulativa", + "valor": 1608.98, + "tipoReceita": "O" + }, + { + "categoria": "VERBAS INDENIZATÓRIAS E OUTRAS REMUNERAÇÕES TEMPORÁRIAS", + "item": "Gratificação de Natureza Especial", + "tipoReceita": "O" + } + ] + } +} \ No newline at end of file diff --git a/src/output_test/sheets/MPSP-contracheques-01-2022.ods b/src/output_test/sheets/MPSP-contracheques-01-2022.ods new file mode 100644 index 0000000..3cb7ace Binary files /dev/null and b/src/output_test/sheets/MPSP-contracheques-01-2022.ods differ diff --git a/src/output_test/sheets/MPSP-contracheques-01-2023.ods b/src/output_test/sheets/MPSP-contracheques-01-2023.ods new file mode 100644 index 0000000..b31ee9e Binary files /dev/null and b/src/output_test/sheets/MPSP-contracheques-01-2023.ods differ diff --git a/src/output_test/sheets/MPSP-contracheques-02-2022.ods b/src/output_test/sheets/MPSP-contracheques-02-2022.ods new file mode 100644 index 0000000..7910fbf Binary files /dev/null and b/src/output_test/sheets/MPSP-contracheques-02-2022.ods differ diff --git a/src/output_test/sheets/MPSP-contracheques-03-2022.ods b/src/output_test/sheets/MPSP-contracheques-03-2022.ods new file mode 100644 index 0000000..f706877 Binary files /dev/null and b/src/output_test/sheets/MPSP-contracheques-03-2022.ods differ diff --git a/src/output_test/sheets/MPSP-contracheques-07-2023.ods b/src/output_test/sheets/MPSP-contracheques-07-2023.ods new file mode 100644 index 0000000..bced345 Binary files /dev/null and b/src/output_test/sheets/MPSP-contracheques-07-2023.ods differ diff --git a/src/output_test/sheets/MPSP-contracheques-08-2022.ods b/src/output_test/sheets/MPSP-contracheques-08-2022.ods new file mode 100644 index 0000000..625f6fd Binary files /dev/null and b/src/output_test/sheets/MPSP-contracheques-08-2022.ods differ diff --git a/src/output_test/sheets/MPSP-indenizacoes-01-2022.ods b/src/output_test/sheets/MPSP-indenizacoes-01-2022.ods new file mode 100644 index 0000000..859a2f0 Binary files /dev/null and b/src/output_test/sheets/MPSP-indenizacoes-01-2022.ods differ diff --git a/src/output_test/sheets/MPSP-indenizacoes-01-2023.ods b/src/output_test/sheets/MPSP-indenizacoes-01-2023.ods new file mode 100644 index 0000000..aa9dd7b Binary files /dev/null and b/src/output_test/sheets/MPSP-indenizacoes-01-2023.ods differ diff --git a/src/output_test/sheets/MPSP-indenizacoes-02-2022.ods b/src/output_test/sheets/MPSP-indenizacoes-02-2022.ods new file mode 100644 index 0000000..1e601fa Binary files /dev/null and b/src/output_test/sheets/MPSP-indenizacoes-02-2022.ods differ diff --git a/src/output_test/sheets/MPSP-indenizacoes-03-2022.ods b/src/output_test/sheets/MPSP-indenizacoes-03-2022.ods new file mode 100644 index 0000000..58f3632 Binary files /dev/null and b/src/output_test/sheets/MPSP-indenizacoes-03-2022.ods differ diff --git a/src/output_test/sheets/MPSP-indenizacoes-07-2023.ods b/src/output_test/sheets/MPSP-indenizacoes-07-2023.ods new file mode 100644 index 0000000..2e3fe64 Binary files /dev/null and b/src/output_test/sheets/MPSP-indenizacoes-07-2023.ods differ diff --git a/src/output_test/sheets/MPSP-indenizacoes-08-2022.ods b/src/output_test/sheets/MPSP-indenizacoes-08-2022.ods new file mode 100644 index 0000000..abd1a76 Binary files /dev/null and b/src/output_test/sheets/MPSP-indenizacoes-08-2022.ods differ diff --git a/src/parser.py b/src/parser.py index aa2a649..87e6f63 100644 --- a/src/parser.py +++ b/src/parser.py @@ -262,6 +262,38 @@ def update_employees_mpes(data, employees): employees[employee] = emp return employees +def update_employees_mpsp(data, employees): + header = "mpsp" + + if int(data.year) == 2022: + if (int(data.month) == 2): + header = "mpsp-02-2022" + elif (int(data.month) in [3, 4, 5, 6, 7]): + header = "mpsp-03-2022" + elif (int(data.month) in [8, 9, 10, 11, 12]): + header = "mpsp-08-2022" + elif int(data.year) == 2023: + if (int(data.month) == 1): + header = "mpsp-01-2023" + elif (int(data.month) in [2, 3, 4, 5, 6]): + header = "mpsp-08-2022" + elif (int(data.month) in [7, 8, 9, 10, 11, 12]): + header = "mpsp-03-2022" + + for row in data.indenizatorias: + registration = row[0] + + if type(registration) != str and not pd.isna(registration): + registration = str(int(registration)) + + if registration in employees.keys(): + emp = employees[registration] + remu = remunerations(row, header) + emp.remuneracoes.MergeFrom(remu) + employees[registration] = emp + + return employees + def parse(data, colect_key): employees = {} @@ -276,6 +308,8 @@ def parse(data, colect_key): update_employees_mpes(data, employees) elif data.court.casefold() == "mppe": update_employees_mppe(data, employees) + elif data.court.casefold() == "mpsp": + update_employees_mpsp(data, employees) else: update_employees(data.indenizatorias, employees, data.court.casefold()) diff --git a/src/parser_test.py b/src/parser_test.py index 4c8e2d7..a392b1e 100644 --- a/src/parser_test.py +++ b/src/parser_test.py @@ -228,3 +228,123 @@ def test_mppe_01_2023(self): result_to_dict = MessageToDict(result_data) self.assertEqual(expected_01_2023, result_to_dict["contraCheque"][0]) + + def test_mpsp_01_2022(self): + self.maxDiff = None + # Json com a saida esperada + with open("src/output_test/expected/expected_mpsp_01_2022.json", "r") as fp: + expected_01_2022 = json.load(fp) + + files = [ + "src/output_test/sheets/MPSP-contracheques-01-2022.ods", + "src/output_test/sheets/MPSP-indenizacoes-01-2022.ods", + ] + + dados = data.Data("2022", "01", "MPSP", "src/output_test/sheets") + dados = data.load(files, dados) + result_data = parse(dados, "mpsp/01/2022") + + # Converto o resultado do parser, em dict + result_to_dict = MessageToDict(result_data) + + self.assertEqual(expected_01_2022, result_to_dict["contraCheque"][0]) + + def test_mpsp_02_2022(self): + self.maxDiff = None + # Json com a saida esperada + with open("src/output_test/expected/expected_mpsp_02_2022.json", "r") as fp: + expected_02_2022 = json.load(fp) + + files = [ + "src/output_test/sheets/MPSP-contracheques-02-2022.ods", + "src/output_test/sheets/MPSP-indenizacoes-02-2022.ods", + ] + + dados = data.Data("2022", "02", "MPSP", "src/output_test/sheets") + dados = data.load(files, dados) + result_data = parse(dados, "mpsp/02/2022") + + # Converto o resultado do parser, em dict + result_to_dict = MessageToDict(result_data) + + self.assertEqual(expected_02_2022, result_to_dict["contraCheque"][0]) + + def test_mpsp_03_2022(self): + self.maxDiff = None + # Json com a saida esperada + with open("src/output_test/expected/expected_mpsp_03_2022.json", "r") as fp: + expected_03_2022 = json.load(fp) + + files = [ + "src/output_test/sheets/MPSP-contracheques-03-2022.ods", + "src/output_test/sheets/MPSP-indenizacoes-03-2022.ods", + ] + + dados = data.Data("2022", "03", "MPSP", "src/output_test/sheets") + dados = data.load(files, dados) + result_data = parse(dados, "mpsp/03/2022") + + # Converto o resultado do parser, em dict + result_to_dict = MessageToDict(result_data) + + self.assertEqual(expected_03_2022, result_to_dict["contraCheque"][0]) + + def test_mpsp_08_2022(self): + self.maxDiff = None + # Json com a saida esperada + with open("src/output_test/expected/expected_mpsp_08_2022.json", "r") as fp: + expected_08_2022 = json.load(fp) + + files = [ + "src/output_test/sheets/MPSP-contracheques-08-2022.ods", + "src/output_test/sheets/MPSP-indenizacoes-08-2022.ods", + ] + + dados = data.Data("2022", "08", "MPSP", "src/output_test/sheets") + dados = data.load(files, dados) + result_data = parse(dados, "mpsp/08/2022") + + # Converto o resultado do parser, em dict + result_to_dict = MessageToDict(result_data) + + self.assertEqual(expected_08_2022, result_to_dict["contraCheque"][0]) + + def test_mpsp_01_2023(self): + self.maxDiff = None + # Json com a saida esperada + with open("src/output_test/expected/expected_mpsp_01_2023.json", "r") as fp: + expected_01_2023 = json.load(fp) + + files = [ + "src/output_test/sheets/MPSP-contracheques-01-2023.ods", + "src/output_test/sheets/MPSP-indenizacoes-01-2023.ods", + ] + + dados = data.Data("2023", "01", "MPSP", "src/output_test/sheets") + dados = data.load(files, dados) + result_data = parse(dados, "mpsp/01/2023") + + # Converto o resultado do parser, em dict + result_to_dict = MessageToDict(result_data) + + self.assertEqual(expected_01_2023, result_to_dict["contraCheque"][0]) + + def test_mpsp_07_2023(self): + self.maxDiff = None + # Json com a saida esperada + with open("src/output_test/expected/expected_mpsp_07_2023.json", "r") as fp: + expected_07_2023 = json.load(fp) + + files = [ + "src/output_test/sheets/MPSP-contracheques-07-2023.ods", + "src/output_test/sheets/MPSP-indenizacoes-07-2023.ods", + ] + + dados = data.Data("2023", "07", "MPSP", "src/output_test/sheets") + dados = data.load(files, dados) + result_data = parse(dados, "mpsp/07/2023") + + # Converto o resultado do parser, em dict + result_to_dict = MessageToDict(result_data) + + self.assertEqual(expected_07_2023, result_to_dict["contraCheque"][0]) \ No newline at end of file