Serviços Web
Para utilizar os serviços é necessário utilizar um usuário do Cérebro para realizar a autenticação. Todos os serviços tem com resposta o formato JSON.
Exemplo de Retornos com Erro:
{"error":"Usu\u00E1rio n\u00E3o encontrado: 1."}
ESTOQUE
Listagens
ListaProdutos(Usuario: String; Data: TDateTime): TJSONArray;
Retorna a listagem dos produtos.
Parâmetros:
- Usuario: Nome do usuário do Cérebro.
- Data: Opcional. Retorna apenas os produtos com data de última alteração maior que a data informada.
Exemplo de Requisição: http://localhost:8084/datasnap/REST/TESTOQUE/ListaProdutos/Usuario
Exemplo de Retorno:
{
"result": [
[
{ "CODIGO_PRODUTO": 1,
"CODIGO_PRINCIPAL": 1,
"CODIGO_BARRA": "1",
"DESCRICAO": "SERVICO",
"PRECO_VENDA": 0.01,
"STATUS": "1",
"UNIDADE_SAIDA": "PC",
"PRECO_VENDA2": 0,
"PRECO_VENDA3": 0,
"PERCENTUAL_MAX_DESCONTO": 0,
"ATACADO": "",
"ATACADO_MINIMA": 0,
"FRACIONAVEL": "T",
"FRACIONAVEL_MULT": 0,
"SALDO_ATUAL2": -95,
"SALDO_ATUAL": -39 }
]
]
}
ListaClientes(Usuario: String; Data: TDateTime): TJSONArray;
Retorna a listagem dos clientes.
Parâmetros:
- Usuario: Nome do usuário do Cérebro.
- Data: Opcional. Retorna apenas os produtos com data de última alteração maior que a data informada.
Exemplo de Requisição: http://localhost:8084/datasnap/REST/TESTOQUE/ListaClientes/Usuario
Exemplo de Retorno:
{}
ListaTabelas(Tabela: String; Data: TDateTime; Usuario: String): TJSONArray;
Retorna a listagem da tabela especificada.
Parâmetros:
- Tabela: Nome da tabela.
- Data: Opcional. Retorna apenas os produtos com data de última alteração maior que a data informada.
- Usuario: Nome do usuário do Cérebro.
Exemplo de Requisição: http://localhost:8084/datasnap/REST/TESTOQUE/ListaTabelas/CLIENTES/2021-01-01/Usuario
Exemplo de Retorno:
{}
Orçamentos e DAV
DAV(const Sequencial_Estoque: Integer): TJSONObject;
Retorna os dados do orçamento.
Parâmetros:
* Sequencial_Estoque: Sequencial do orçamento gravado no Cérebro.
Exemplo de Requisição: http://localhost:8084/datasnap/REST/TESTOQUE/DAV/82480
Exemplo de Retorno:
{
"SEQUENCIAL_ESTOQUE": 82480,
"SEQUENCIAL_DAV": 1913,
"CODIGO_CLIENTE": 1,
"CODIGO_VENDEDOR": 1,
"CODIGO_FORMAPAGTO": 1,
"CODIGO_ALMOXARIFADO": 1,
"VALOR_BRUTO": 1.8,
"VALOR_LIQUIDO": 1.8,
"PERCENTUAL_DESCONTO": 0,
"VALOR_DESCONTO": 0,
"VALOR_DESCONTOI": 0,
"PERCENTUAL_ACRESCIMO": 0,
"VALOR_ACRESCIMO": 0,
"VALOR_ACRESCIMOI": 0,
"ENDERECO_ENTREGA": "F",
"STATUS": "T",
"CONFERIDO": "F",
"ENTREGA": "I",
"DOCUMENTO_OS": 1,
"CLIENTE": "CONSUMIDOR",
"VENDEDOR": "Action",
"FORMAPAGTO": "Dinheiro",
"PRODUTOS": [
{
"SEQUENCIAL_PRODUTO": 93808,
"ITEM": "1",
"CODIGO_VENDA": "0000000002330",
"CODIGO_PRODUTO": 2330,
"UNIDADE": "UND",
"MULTIPLICA": 1,
"QUANTIDADE": 1,
"VALOR_UNITARIO": 1.8,
"VALOR_TOTAL": 1.8,
"PERCENTUAL_DESCONTO": 0,
"VALOR_DESCONTO": 0,
"PERCENTUAL_ACRESCIMO": 0,
"VALOR_ACRESCIMO": 0,
"RESGATOU_PROMOCAO": "",
"DATA_RECALCULO": "1899-12-30 00:00:00",
"ENTREGA": "I",
"IMAGEM": "",
"REFERENCIA": "000002330",
"DESCRICAO": "ABRACADEIRA 10X16 FITA 9MM EHC",
"CONTROLA_LOTE": "F",
"SOLICITA_OBS": "F",
"LOTE": "",
"DATA_VALIDADE": "09/05/2016",
"DATA_FABRICACAO": "09/05/2016"
}
]
}
DAV(Dados: TJSONObject): TJSONObject;
Grava um orçamento no movimento de estoque.
Parâmetros:
* Dados: Dados do orçamento a ser gravado.
Exemplo de Requisição (POST):
http://localhost:8084/datasnap/REST/TESTOQUE/DAV
{ "CODIGO_CLIENTE": 1,
"CODIGO_FORMAPAGTO": 1,
"CODIGO_VENDEDOR": 1,
"DATA": "09/05/2016",
"STATUS": "T",
"ENTREGA": "I",
"PRODUTO": {
"CODIGO_PRODUTO": 2330,
"UNIDADE": "UND",
"QUANTIDADE": 1,
"VALOR_UNITARIO": 1.8,
"VALOR_TOTAL": 1.8,
"PERCENTUAL_DESCONTO": 0,
"VALOR_DESCONTO": 0,
"PERCENTUAL_ACRESCIMO": 0,
"VALOR_ACRESCIMO": 0,
"MULTIPLICA": 1,
"ENTREGA": "I"
}
}
Exemplo de Retorno:
{
"Retorno": "OK",
"SEQUENCIAL_ESTOQUE": 82480,
"SEQUENCIAL_DAV": 1913,
"DOCUMENTO": "DAV-000329",
"VALOR_ACRESCIMOI": 0,
"PERCENTUAL_DESCONTO": 0,
"VALOR_DESCONTO": 0,
"VALOR_DESCONTOI": 0,
"VALOR_BRUTO": 1.8,
"VALOR_LIQUIDO": 1.8,
"SEQUENCIAL_PRODUTO": "93808"
}
Movimentos
ReservaProdutos(Dados: TJSONObject): TJSONObject;
Realiza a reversa de produtos.
Parâmetros:
- Dados: Dados do produto a ser reservado.
Exemplo de Requisição (POST): http://localhost:8084/datasnap/REST/TESTOQUE/ReservaProdutos
Exemplo de Retorno:
{}
GeraEstoque(Dados: TJSONObject): TJSONObject;
Gera um movimento de Estoque.
Parâmetros:
- Dados: Dados do movimento de estoque. Necessário enviar 3 arrays JSON com os dados a serem gravados referente as tabelas do movimento de estoque.
- MOVIMENTOS_ESTOQUE (Objeto raiz)
- MOVIMENTOS_PRODUTO (Itens)
- MOVIMENTOS_PARCELA (Parcelas)
Exemplo de Requisição (POST): http://localhost:8084/datasnap/REST/TESTOQUE/GeraEstoque
{"CODIGO_OPERACAO": 1,"CODIGO_CLIENTE": 3146,"CODIGO_FORMAPAGTO": 1,
"DATA":"2017-02-09","CODIGO_VENDEDOR": 1,"CODIGO_USUARIO": 100,"PERCENTUAL_DESCONTO": 10,
"Itens":
[{"CODIGO_PRODUTO":877,"QUANTIDADE": 2,"VALOR_DESCONTO": 0,"VALOR_ACRESCIMO": 0,
"UNIDADE":"UND","VALOR_UNITARIO": 19.02,"VALOR_TOTAL": 38.04,
"PERCENTUAL_DESCONTO": 0,
"PERCENTUAL_ACRESCIMO": 0},
{"CODIGO_PRODUTO": 2243,"QUANTIDADE": 2,"UNIDADE":"UND","VALOR_UNITARIO": 1.00,"VALOR_TOTAL": 2}],
"Parcelas":[],
"Usuario":"ESCOL"}
Exemplo de Retorno:
{}
CancelaEstoque(Dados: TJSONObject): TJSONObject;
Cancela um movimento de Estoque.
Parâmetros:
- Dados: Dados do movimento de estoque que será cancelado
Exemplo de Requisição (POST): http://localhost:8084/datasnap/REST/TESTOQUE/CancelaEstoque
Body:{"SEQUENCIAL_ESTOQUE":0,"MOTIVO":"<MOTIVO DO CANCELAMENTO>"}
Consultas
Consulta(const Tabela: String; Opcoes: TJSONObject): TJSONArray
Metodo: POST
Consulta genérica das tabelas do Cérebro.
Exemplo de Requisição: http://localhost:8084/datasnap/REST/TESTOQUE/Consulta/PRODUTOS
Body: {"fields":"CODIGO_PRODUTO,REFERENCIA,REFERENCIA2,REFERENCIA3,CODIGO_BARRA,DESCRICAO,UNIDADE_SAIDA,PESAVEL,CONTROLA_LOTE,SOLICITA_OBS,[PRECO_VENDA],[PROMOCAO],GRUPOS_PRODUTO.DESCRICAO AS GRUPO,SUBGRUPOS_PRODUTO.DESCRICAO AS SUBGRUPO,FORNECEDORES.DESCRICAO AS FABRICANTE,[SALDO_ATUAL],[SIMILARES],[SELFCOLOR]","joins":[{"TABELA":"GRUPOS_PRODUTO","ON":"PRODUTOS.CODIGO_GRUPO = GRUPOS_PRODUTO.CODIGO_GRUPO"},{"TABELA":"SUBGRUPOS_PRODUTO","ON":"PRODUTOS.CODIGO_GRUPO = SUBGRUPOS_PRODUTO.CODIGO_GRUPO AND PRODUTOS.CODIGO_SUBGRUPO = SUBGRUPOS_PRODUTO.CODIGO_SUBGRUPO"},{"TIPO":"LEFT","TABELA":"FORNECEDORES","ON":"PRODUTOS.CODIGO_FORNECEDOR = FORNECEDORES.CODIGO_FORNECEDOR"}],"orders":"DESCRICAO","filters":[{"CAMPO":"ATUALIZA_VIP","OPERADOR":"=","VALOR":"T"},{"CAMPO":"STATUS","OPERADOR":"IN","VALOR":"('1', '3')"},{"CAMPO":"("},{"CAMPO":"REFERENCIA","OPERADOR":"=","VALOR":"A"},{"CAMPO":"OR"},{"CAMPO":"DESCRICAO","OPERADOR":"LIKE","VALOR":"A%"},{"CAMPO":")"}],"limit":200}
Exemplo 2:
{
"fields":"PRODUTOS.CODIGO_PRODUTO, PRODUTOS.DESCRICAO, PRODUTOS.PESO,[PRECO_VENDA],[SALDO_ATUAL]",
"filters":[
{"CAMPO": "COALESCE(PRODUTOS.CODIGO_EMPRESA, 1)", "OPERADOR":"=","VALOR":"1"},
{"CAMPO": "PRODUTOS.STATUS", "OPERADOR":"<>", "VALOR":"2"},
{"CAMPO": "PRODUTOS.STATUS", "OPERADOR":"<>", "VALOR":"4"}
],
"orders":"DESCRICAO"
}
Tabelas
Tabela(Dados: TJSONObject): TJSONObject
Manutenção das tabelas do Cérebro.
Exemplo de Requisição (POST): http://localhost:8084/datasnap/REST/TESTOQUE/Tabela
{"CLIENTES":[{"DESCRICAO":"TESTE","RAMOATIVIDADE":"1","CODIGO_VENDEDOR":1,"CODIGO_TIPO":"1","TIPOPESSOA":"F","CPF_CNPJ":"14718226805","INSCRICAO_ESTADUAL":"ISENTO","CEP":"57052480","ENDERECO":"Avenida Mendonça Júnior","NUMERO":"1","BAIRRO":"Gruta de Lourdes","CIDADE":"MACEIO","ESTADO":"AL","PONTO_REFERENCIA":"PROXIMO","EMAIL":"suporte@escol.info","EMAIL_NFE":"suporte@escol.info","TELEFONE1":"82999998888","TELEFONE2":"82999998888","CELULAR":"82999998888","FAX":"82999998888","CONTATO":"suporte","STATUS_CREDITO":"S","OBSERVACAO":"INCLUIDO VIA CEREBRO MOBILE","DATA_CADASTRO":"2017-02-23 14:40:30"}]}
Exemplo de Retorno:
{"error":"CPFCNPJ [14718226805] ja cadastrado! Tabela: CLIENTES - Cod: 3156"}
OS
ListaOS(CPF_CNPJ_Cliente: String): TJSONArray;
Retorna a listagem das Ordem de Serviços do cliente informado.
Exemplo de Requisição: http://localhost:8084/datasnap/REST/TOS/ListaOS/11111111111
Exemplo de Retorno:
{}
CPR
Contas a Pagar e a Receber
Realizar manutenção nos títulos do Contas a Pagar e a Receber.
Veja a listagem completa dos campos no dicionário de dados.
Exemplo de Requisição (POST): http://localhost:8084/datasnap/REST/TCEREBRO/MOVIMENTOS_CPR
{
"ACAO": "Inclusão",
"TIPO": "R",
"DOCUMENTO": "99.05.2022.00054",
"VALOR": 1.00,
"CODIGO_CLIENTE": 1,
"CODIGO_VENDEDOR": 1,
"CODIGO_TIPODOCUMENTO": 1,
"CODIGO_PORTADOR": 1,
"DATA_VENCIMENTO": "2022-05-30",
"OBSERVACAO": "TESTE DE INCLUSAO NO CPR"
}
Boleto(const Sequencial_CPR: Integer): TJSONObject;
Gera o boleto no formato PDF.
Exemplo de Requisição: http://localhost:8084/datasnap/REST/TCEREBRO/Boleto/<Sequencial_CPR>
Exemplo de Retorno:
{"result":[{"SEQUENCIAL_CPR":"50999","ARQUIVO":"<Arquivo base64>"}]}
Caixa e Bancos
Realizar manutenção nos lançamento de Caixa e Bancos.
Veja a listagem completa dos campos no dicionário de dados.
Exemplo de Requisição (POST): http://localhost:8084/datasnap/REST/TCEREBRO/MOVIMENTOS_CONTA
{
"ACAO": "Inclusão",
"DOCUMENTO": "99.05.2022.00054",
"VALOR": 1.23,
"CODIGO_CONTA": 1,
"CODIGO_CLIENTE": 1,
"CODIGO_HISTORICO": 1,
"CODIGO_MODO": 1,
"DATA": "2022-05-10",
"COMPLEMENTO": "TESTE DE INCLUSAO NO CAIXA E BANCOS"
}