Objetivo
O ponto de entrada EM_CSTEA é utilizado para customizar a consulta de clientes no sistema Easy.Mobile. Através dele, é possível alterar a query SQL que será executada para buscar informações de clientes com base em parâmetros específicos enviados pelo aplicativo.
Funcionamento:
O ponto de entrada EM_CSTEA realiza uma busca no banco de dados, utilizando as informações fornecidas pelo Easy.Mobile. Ele recebe dois parâmetros principais dentro de opJson:
1. opJson:DOCCOMPANIE - O CNPJ da empresa que está realizando a consulta.
2. opJson:SEARCHTEXT - O texto ou termo de busca inserido pelo usuário.
Com base nesses parâmetros, o ponto de entrada deve construir a clQuery, que será a consulta SQL responsável por retornar as informações solicitadas pelo Easy.Mobile.
Parâmetros de Entrada:
- clQuery: Variável que armazena a query de retorno ao ERP.
- opJson: Objeto JSON que contém os critérios de busca enviados pelo Easy.Mobile.
• opJson:DOCCOMPANIE: CNPJ da empresa que está realizando a consulta.
• opJson:SEARCHTEXT: Texto ou termo de busca.
Parâmetros de Saída: Composição da Query de Retorno:
A função deve montar e retornar uma variável query (clQuery) SQL que respeite os campos esperados pelo Easy.Mobile, garantindo a compatibilidade e a correta exibição dos dados.
Os campos necessários são:
• A1_FILIAL: Filial da empresa (BRANCH)
• A1_COD: Código do cliente (CODE)
• A1_LOJA: Loja do cliente (STORE)
• A1_NOME: Nome do cliente (NAME)
• A1_CGC: CNPJ ou CPF do cliente (DOCUMENT)
• A1_COND: Condição de pagamento (PAYCOND)
• A1_DESC: Desconto (DESCONT)
• A1_TABELA: Código da tabela de preços (CODPRILIST)
• LABEL: Formatação combinada do código, nome e CNPJ/CPF
• OBSERV: Observações (mantido vazio por padrão)
Exemplo de Uso:
- Recebe Parâmetros: A rotina recebe
opJson
contendo o CNPJ e o texto da busca. - Monta a Query: Utiliza os parâmetros para filtrar e estruturar a query conforme os campos descritos.
- Retorna a Query: A query montada é enviada de volta ao Easy.Mobile para processamento e exibição dos resultados.
Observações:
- OBSERV: Campo destinado a observações, retornará vazio por padrão.
- Execução Condicional: As condições específicas para execução da query podem ser adicionadas conforme a necessidade do ambiente e especificações do cliente.
Exemplo
User Function EM_CSTEA()
Local dlCurrent := Date()
Local clDtIni := DtoC(dlCurrent)
Local clHrIni := Time()
Local clQuery := PARAMIXB[1]
Local olJson := PARAMIXB[2]
Local llCustSeller := SuperGetMv("MV_EASYCV",, .F.) //Amarração entre Clientes x Vendedor
Local clCustStandard := SuperGetMv("MV_CLIPAD",, "" ) //Cliente padrao de cheques pre-datados
olJson:SEARCHTEXT := Upper(olJson:SEARCHTEXT)
clQuery := " SELECT TOP 10 "
clQuery += " A1_FILIAL BRANCH,"
clQuery += " A1_COD CODE,"
clQuery += " A1_LOJA STORE,"
clQuery += " A1_NOME NAME,"
clQuery += " A1_CGC DOCUMENT,"
clQuery += " CONCAT(A1_COD,': ',LTRIM(RTRIM(A1_NOME)),' - ',A1_CGC) LABEL,"
clQuery += " '' OBSERV,"
clQuery += " A1_COND PAYCOND,"
clQuery += " A1_DESC DESCONT,"
clQuery += " A1_TABELA CODPRILIST,"
clQuery += " A1_NREDUZ"
clQuery += " FROM "+RetSqlName("SA1")+" A1 "
clQuery += " WHERE A1.D_E_L_E_T_ <> '*' "
clQuery += " AND A1_FILIAL = '"+xFilial('SA1')+"' "
If llCustSeller
//Verifica se realiza a busca dos vendedores (Gerente e Supervisores) no parametro MV_EASYRV
clQuery += " AND (
clQuery += " A1_VEND IN "+Iif(SuperGetMv("MV_EASYRV",, .F.), U_EA_GRPVEND(olJson:SELLERCODE), FormatIn(olJson:SELLERCODE,"|"))
If !Empty(clCustStandard)
clQuery += "OR A1_COD = '"+clCustStandard+"'"
EndIf
clQuery += " )"
EndIf
clQuery += " AND (Upper(A1_NOME) LIKE '%"+olJson:SEARCHTEXT+"%'"
clQuery += " OR Upper(A1_NREDUZ) LIKE '%"+olJson:SEARCHTEXT+"%'"
clQuery += " OR Upper(A1_CGC) LIKE '"+olJson:SEARCHTEXT+"%'"
clQuery += " OR Upper(A1_COD) LIKE '"+olJson:SEARCHTEXT+"%')"
clQuery += " AND A1_MSBLQL <> '1'"
clQuery += " ORDER BY A1_NOME DESC"
U_EM_Log("[EM_CSTEA] - TERMINO ponto de entrada - data e hora termino "+DtoC(Date())+" - "+Time()+" / data e hora inicial "+clDtIni+" - "+clHrIni)
Return (clQuery)