Essa é uma revisão anterior do documento!
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","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
Boleto(const Sequencial_CPR: Integer): TJSONObject;
Gera o boleto no formato PDF.
Exemplo de Requisição: http://localhost:8084/datasnap/REST/TCPR/Boleto/<Sequencial_CPR>
Exemplo de Retorno: {"result":[{"SEQUENCIAL_CPR":"50999","ARQUIVO":"<Arquivo base64>"}]}