Informações Gerais


Especificação

Produto

 Microsiga Protheus

Módulo

 Jurídico

Segmento Executor

 Serviços

Projeto


IRM


Requisito


Subtarefa


   

Objetivos

Os serviços especificados neste serão consumidos pelo aplicativo “Legal Process” (nome a ser definido) e tem por objetivo permitir ao usuário consultar os processos cadastrados na base Protheus de um smartphone ou tablet.

Definições de Serviços

GET/jur/process

Retorna a lista de processos disponíveis para consulta, no formato indicado abaixo:


{
    "userName" : "Claudio Koji",
    "hasNext": true,
    "processes" : [
        {
            "processId": "00000001",
            "company" : "3031",
            "companyName" : "ZEI CONSULTORIA",
            "companyStatus" : {
                "code": "00001",
                "description" : "Ativo"
            },

            "folder" : "1255",
            "folderDescription" : "Caio e Tício",
            "area": "TRABALHISTA",
            "subarea": "CONTENCIOSO",
            "status" : {
                "code" : "0000002".
                "description": "Em andamento"
} ,
            "processNumber": "0004310-87.1996.5.21.002",
            "entryDate" : "20170101",
            "distributionDate" : "20161230",
            "originInstance": {
                "id": "000001",
                "displayName": "FORO REGIONAL DE SÃO PAULO",
                "branch": "5ª Vara Cível",
                "local": "SÃO PAULO"
            },
            "responsables" : [
                {
                    "position": "COORDENADOR",
                    "name": "SEMPRONIO DA SILVA ANTUNES",
                    "initials" : "SSA"
                }
            ],
            "related" : [
                {
                    "position": "GERENTE DE PRODUÇÃO",
                    "name": "CAIO MARIO DA SILVA DO AMARAL",
                    "role": "RECLAMENTE",
                    "details" : {
                        ??????
                    }
                }
            ],

            "detailing" : [
                {
                    "section": "JUDICIAL",
                    "value": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
                     consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
                }
            ],

            "values_and_contingency" : {
                "probability_of_losing" : {
                    "grade": 5,
                    "description": "PROVÁVEL"
                },
                "justification" : "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea                 commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
                "values": [
                   {
                        “description”: "VALOR DA CAUSA ATUAL",
                        "currency": "R$",
                        "value": 10000.00
                    }
                ]
            },
            "decisions" : [
                {
                    "title": "Setença Procedente",
                    "date": "20170222",
                    "sentenceResult": 0,
                    "sentence" : "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea            commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
                    "instance": "1ª"
                }
            ],
            "injunctions" : [
                {
                    "title": "Liminar Revogada",
                    "date": "20170322",
                    "opinionText" : "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
                }
            ],
            "courses" : [
                {
                    "date": "20160823",
                    "title" "Acompanhamento Decisória",
                    "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
                }
            ],
            "fups" : [
                {
                    "id": "0000001",
                    "date": "20160823",
                    "hour": "14:00"
                     "status" : 0,
                     "title" : "Reunião de Negócios",
                    "responsable": "JPB - João Pereira Bittencourt"
                }
            ],
            "guarantees" : [
                {
                    "identifier": "G",
                    "operation": 1,
                    "description": "Depósito Recursal",
                    "date": "20170222",
                    "value": 10000.00
                }
            ],
            "expenses" : [
                {
                    "identifier": "D",
                    "operation": 1,
                    "description": "Guia de Recolhimento",
                    "date": "20170222",
                    "value": 10000.00
                }
            ],
            "closure": {
                "result": {
                    "type": 1,
                    "description": "VITÓRIA"
                },
                "date": "YYYYMMDD",
                "finalValue": 1000.00,
                "veredict": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."

            }
        }
    ]
}


Descrição dos Campos:

Parâmetros aceitos:

            - Indica o idioma que os labels deverão ser retornados. Todos os labels que puderem ser traduzidos devem ser traduzidos. Os seguintes idiomas poderão ser selecionados pelo app: "en"=Inglês, "pt"="Português", "es"="Espanhol. Qualquer valor diferente dos citados (ou a omissão do parâmetro) deve considerar como padrão o "pt".           

   

             Exemplos:

             GET /processes?order=processId -> Orderna pelo ID do processo de forma crescente.

               GET /processes?order=-entry_date -> Ordena pela Data de Entrada de forma decrescente.

               GET /processes?order=case,-entry_date,processId -> Ordena pelo caso (crescente), depois data de entrada (decrescente) e por fim número do processo (crescente)

             Campos aceitos no order: companyName, folderDescription, area, subarea, processNumber, entryDate, distributionDate


            Utilizados para fazer paginação.

             A primeira página é a 1

             Se não for enviado um page, considerar a página 1.

             Se não for passado um pageSize, considerar o tamanho de página como 10.

             TODA requisição de lista deve retornar um atributo hasNext indicando se atingiu a última página ou não.

             Exemplos (Supondo que existam 32 registros na base):

             GET /processes -> Retorna a página padrão (1) com tamanho padrão (10) (registro do 1 ao 10, hasNext = true)

                GET /processes?page=1 -> Retorna a página 1 com tamanho padrão (10) (registro de 1 ao 10, hasNext = true)

                GET /processes?pageSize=3 -> Retorna a página padrão (1) com tamanho 3 (registro de 1 ao 3, hasNext = true)

                GET /processes?page=2&pageSize=4 -> Retorna a página (2) com tamanho (4) (registro do 5 ao 8, hasNext = true)

                GET /processes?page=4&pageSize=10 -> Retorna a página (4) com tamanho (10) (registro do 31 ao 40 -> irá retornar só o 31 e o 32, hasNext = false)

                etc.

                              

            Informa quais campos devem ser retornados na requisição.

            Se o fields não for informado, trazer todos os campos disponíveis.

            Exemplos:

            GET /processess?fields=processId,client,detailing -> Retorna somente os campos ID do processo, Cliente e Detalhamento.

              GET /processes -> Retorna todos os campos disponíveis.


            Deve suportar filtrar os resultados de acordo com alguns parâmetros:

                - searchKey: Filtro chave, capaz de filtrar em diversos campos diferentes do processo (máximo de lugares possível)

                - processId: Filtra pelo identificador único do processo (like)

                - company: Filtra pelo código da empresa, será enviado o código da empresa

                - companyName: Filtra pelo nome da empresa (like)

                - companyStatus: Filtra pelo status da empresa, 00001 é ativo, por exemplo

                - folderDescription: Filtra pela parte contrária (like)

                - area: Filtra pela área

                - subarea: Filtra pela subarea

                - status: Filtra pelo status do processo

                - processNumber: Filtra pelo número do processo

                - entryDateStart: Filtra pela data de entrada do processo, datas maiores ou iguais às informadas

                - entryDateEnd: Filtra pela data de entrada do processo, datas menores ou iguais às informadas

                - distributionDateStart: Filtra pela data de distribuição do processo, datas maiores ou iguais às informadas

                - distributionDateEnd: Filtra pela data de distribuição do processo, datas menores ou iguais às informadas

                - originInstance: Filtra pela instância de origem, será enviado o código da instância de origem

                - responsables.name: Filtra pelos nomes dos responsáveis do processo

                - related.name: Filtra pelos nomes dos envolvidos do processo

                - closure.type: Filtra pelo resultado do encerramento. 1->Vitórias, 0->Derrotas (Traz somente processos encerrados)

                - closed: Filtra pelo resultado do processo: true->Somente processos encerrados, false->Somente processos em aberto

O retorno da requisição, em caso de sucesso, deve ser um HTTP 200 OK.


Get/jur/processes/{processID}

Este serviço deve retornar somente um processo, com os detalhes do mesmo. Os atributos retornados seguem o mesmo padrão do serviço que retorna a lista de processos, porém, este serviço somente aceita o parâmetro fields.

    "processId": "00000001",
    "company" : "3031",
    "companyName" : "ZEI CONSULTORIA",
    "companyStatus" : {
        "code": "00001",
        "description" : "Ativo"
    },
    "folder" : "1255",
    "folderDescription" : "Caio e Tício",
    "area": "TRABALHISTA",
    "subarea": "CONTENCIOSO",
    "status" : {
        "code" : "0000002".
        "description": "Em andamento"
    },
    "processNumber": "0004310-87.1996.5.21.002",
    "entryDate" : "20170101",
    "distributionDate" : "20161230",
    "originInstance": {
        "id": "000001",
        "displayName": "FORO REGIONAL DE SÃO PAULO",
        "branch": "5ª Vara Cível",
        "local": "SÃO PAULO"
    },
    "responsables" : [
        {
            "position": "COORDENADOR",
            "name": "SEMPRONIO DA SILVA ANTUNES",
            "initials" : "SSA"
        }
    ],
    "related" : [
        {
            "position": "GERENTE DE PRODUÇÃO",
            "name": "CAIO MARIO DA SILVA DO AMARAL",
            "role": "RECLAMENTE",
            "details" : {
                ??????
            }
        }
    ],
    "detailing" : [
        {
            "section": "JUDICIAL",
            "value": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
        }
    ],
    "values_and_contingency" : {
        "probability_of_losing" : {
            "grade": 5,
            "description": "PROVÁVEL"
        },
        "justification" : "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",
        "values": [
            {
           
             “description”: "VALOR DA CAUSA ATUAL",
             "currency": "R$", 
             "value": 10000.00
            }
        ]
    },

    "decisions" : [
        {
            "title": "Setença Procedente",
            "date": "20170222",
            "sentenceResult": 0,
            "sentence" : "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.",

            "instance": "1ª"
        }
    ],

    "injunctions" : [
        {
            "title": "Liminar Revogada",
            "date": "20170322",
            "opinionText" : "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
        }
    ],
    "courses" : [
        {
            "date": "20160823",
            "title" "Acompanhamento Decisória",
            "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
        }
    ],
    "fups" : [
        {
            "id": "0000001",
            "date": "20160823",
            "hour": "14:00",
            "status": 0,
            "title" : "Reunião de Negócios",
            "responsable": "JPB - João Pereira Bittencourt"
        }
    ],
    "guarantees" : [
        {
            "identifier": "G",
            "operation": 1,
            "description": "Depósito Recursal",
            "date": "20170222",
            "value": 10000.00
        }
    ],
    "expenses" : [
        {
            "identifier": "D",
            "operation": 1,
            "description": "Guia de Recolhimento",
            "date": "20170222",
            "value": 10000.00
        }
    ],
    "closure": {
        "result": {
            "type": 1,
            "description": "VITÓRIA"
        },
        "date": "YYYYMMDD",
        "finalValue": 1000.00,
        "veredict": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
    }
}

O retorno da requisição, em caso de sucesso, deve ser um HTTP 200 OK.


GET /jur/processes/{processID}/fups

Retorna os Follow Ups dos Processos, no seguinte formato: (DEFINIR QUAIS INFORMAÇÕES ADICIONAIS DA FUP SERÃO EXIBIDAS AO EXPANDIR).

{
     "hasNext": true,
      "fups" : [
         {
            "id": "000001",
            "date": "20160823",
            "hour": "14:00",
            "status": 0,
            "title": "Reunião de Negócios",
            "responsable": "JPB - João Pereira Bittencourt"
        }
    ]
}

Os parâmetros aceitos serão: fields, searchKey, page e pageSize

O retorno da requisição, em caso de sucesso, deve ser um HTTP 200 OK.


GET /jur/areas

Retorna as áreas disponíveis, no seguinte formato:

{
    "hasNext": true,
    "areas" : [
        {
            "id": "000001",
            "description": "TRABALHISTA"
        }
    ]
}

Os parâmetros aceitos serão: searchKey, page e pageSize.

O retorno da requisição, em caso de sucesso, deve ser um HTTP 200 OK.


GET /jur/areas/{areaId}/subareas

Retorna as subareas disponíveis da área informada no parâmetro {areaId}, no seguinte formato:

{
    "hasNext": true,
    "subareas" : [
        {
            "id": "000001",
            "description": "CONTENCIOSO"
        }
    ]
}

Os parâmetros aceitos serão: searchKey, page e pageSize.

O retorno da requisição, em caso de sucesso, deve ser um HTTP 200 OK.


GET /jur/originInstances

Retorna as instâncias de origem disponíveis, no seguinte formato:

{
    "hasNext": true,
    "originInstances" : [
        {
            "id": "000001",
            "displayName": "FORO REGIONAL DE SÃO PAULO",
            "branch": "5ª Vara Cível",
            "local": "SÃO PAULO"
        }
    ]
}

Os parâmetros aceitos serão: searchKey, page e pageSize.

O retorno da requisição, em caso de sucesso, deve ser um HTTP 200 OK.


Mensagens de Erro

As mensagens de erro deveram obedecer um padrão único, independente do serviço solicitado, de acordo com a ocorrência.


Corpo padrão da resposta

Todas as mensagens de erro devem possuir a mesma estrutura de campos na resposta:

{
    "code": "Código do Erro", 
    "message": "Título da mensagem de erro",
    "detalMessage": "Mensagem de erro detalhada"
}


Tentativa de acesso à um dado restrito

Deve retornar um status http 403 FORBIDDEN.

 Os serviços ficam responsáveis por verificar se o usuário logado tem acesso aos recursos solicitados independentemente de qualquer controle realizado no lado do aplicativo. 

{
    "code": "403", 
    "message": "Acesso Negado",
    "detalMessage": "O usuário informado não tem acesso à informação solicitada"
}


Não conseguiu identificar o usuário logado.

 Deve retornar um status http 400 UNAUTHORIZED.

{
    "code": "403", 
    "message": "Acesso Negado",
    "detalMessage": "É preciso estar logado para acessar este recurso"
}