1. Informações Gerais


Especificação

Produto

 Microsiga Protheus

Módulo


Segmento Executor

 Serviços

Projeto


IRM


Requisito


Subtarefa



2. Objetivo

Os serviços especificados neste documento serão consumidos pelo aplicativo TOTVS Supervisor de Postos

3. Definições de Serviços

Todos os serviços devem obedecer às boas práticas de implementação de APIs presentes no Guia de Implementação de APIs TOTVS.

Deve-se tomar um cuidado especial com os retornos da requisição, inserindo o status HTTP correto de acordo com o erro encontrado (não enviar um status http 200 em uma mensagem de erro, por exemplo).

3.1. GET /rest/SUPERVISORGS/checkin

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

{
    "checkin": [
        {
			"lat": "-23.5083524",
			"long": "-46.6497187",
			"hr": "11:11",
			"obs": "",
			"selfie": “base64 da imagemi”
			"additionalphotos": [
				{Imagem 1},
				{Imagem 2},
				{Imagem 3}
			]
        }
    ],
    "count": 1
}

Descrição dos Campos:

Parâmetros aceitos:

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

3.2. GET /rest/SUPERVISORGS/appointments

Este serviço deve retornar somente um contrato, com os detalhes do mesmo. O contrato que deve ser retornado será indicado pelos parâmetros contractID e rev, presentes na URL da requisição.

Exemplo de retorno:

{
    "appointments": [
        {
			"code": "000000000283",
			"attendant": "MATHEUS LANDO RAIMUNDO",
			"schedule": "08:00",
			"realschedule": "",
			"inout": "1",
			"desc": "Entrada",
			"late": "1",
			"executed": " "
        },
        {
			"code": "000000000283",
			"attendant": "MATHEUS LANDO RAIMUNDO",
			"schedule": "12:00",
			"realschedule": "",
			"desc": "Saída",
			"late": "2",
			"inout": "2",
			"executed": " "
        },
    ],
    "count": 2
}

Descrição dos Campos:


Parâmetros aceitos:

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


3.3. GET /rest/SUPERVISORGS/stations

Retorna a lista de estações disponíveis para filtrar os apontamento exibidos, no seguinte formato:

{
    "stations": [
        {
			"code": "00000001",
			"desc": "TOTVS SITE SP",
			"type": "2",
			"lat": "-23.5085024",
			"long": "-46.6527313"
       }
    ],
    "count": 1
}

Descrição dos Campos:

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

3.4. GET /wscnta300/suppliers

Retorna a lista de fornecedores disponíveis para filtrar os contratos exibidos, no seguinte formato:

{
    "hasNext": true,
    "suppliers": [
        {
            "id": "0000001",
            "name": "TOTVS SA",
            "unit": "01"
        },
        {
            "id": "0000002",
            "name": "OUTRO CLIENTE",
            "unit": "01"
        }
    ]
}

Descrição dos Campos:

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

3.5. GET /wscnta121/measurements

Retorna a lista de medições disponíveis para aprovação do usuário logado, no formato indicado abaixo:

{
    "measurements" : [
        {
            "number" : "297238",
            "contract" : {
                "number" : "0937491347",
                "rev" : "1"
            },
			"value" : {
				"symbol" : "R$",
				"total": 21000
			}
            "spreadsheet" : {
                "number" : "3",
                "description" : "FIXO/FINANCEIRO"
            },
			"competence": "11/2017",
			"history" : [
				{
					"name" : "RODRIGO TOLEDO",
					"date" : "20171023",
					"justification" : ""
				}
			],
            "items" : [
                {
                    "product_code" : "000001",
                    "product_description" : "PRODUTO 1",
                    "quantity" : 8,
					"discount" : "20,5 %",
                    "unitary_value" : 16,
                    "total_value" : 128,,
					"value_symbol" : "R$",
					"delivery_date" : "20171123"
                },
                {
                    "product_code" : "000002",
                    "product_description" : "OUTRO PRODUTO 2",
                    "quantity" : 10,
                    "unitary_value" : 1.3,
					"discount" : "0 %",
                    "total_value" : 13,
					"value_symbol" : "R$",
					"delivery_date" : "20171123"
                }
            ]
        }
    ]
}

Descrição dos Campos:

NÃO PRECISA MANDAR FILTROS, POIS COMO NÃO HÁ PAGINAÇÃO, APP PODE FILTRAR NO FRONT

Parâmetros aceitos, ao recebidos devem filtrar a lista de medições retornadas:

Este endpoint não irá suportar paginação, logo não serão enviados os parâmetros page e pageSize, nem será necessário a utilização do hasNext.

3.6. PUT /wscnta121/contracts/{contractID}/{rev}/measurements/{measurementID}/approval_status

Este endpoint deverá efetuar a aprovação ou reprovação da medição por parte do usuário logado.

Ao ser requisitado, será enviado um payload junto à requisição, com o seguinte formato:


{
    "approval_status" : false,
    "justification" : "Justificativa"
}

Campos do payload da requisição:

O retorno da requisição deverá ser uma mensagem de OK (http 200) em caso de atualização com sucesso ou enviar no retorno a mensagem de erro resultante da operação (utilizar padrão de erro do framework). 

OBS: Caso o usuário aprove ou reprove a requisição e o Protheus rejeite esta operação, o retorno não poderá ser enviado em uma mensagem de sucesso (http 200).