Importante!
O Smart Hub é de uso exclusivo para soluções homologadas TOTVS.
Esse processo não é suportado para integrações customizadas ou por soluções não homologadas.
Cadastrando o Processo de Venda
Para integrarmos o Venda com o Terceiros primeiramente é necessário acessar o cadastro do Processo para verificar se o Venda foi criado automaticamente no Protheus.
1- No módulo 12 (Controle de Lojas), acesse Atualizações/ RMI/ Cadastros/ Processos.
2- Aguarde a criação automática do cadastro de processo referente ao Venda.
3- Verifique se foi criado as Informações abaixo:
Processo: Venda
Tabela: SL1
Chave: L1_FILIAL+L1_NUM
Vinculando o Processo de Venda ao Assinante Terceiros
1- No módulo 12 (Controle de Lojas), acesse Atualizações/ RMI/ Cadastros/ Assinantes.
2- Com o assinante Terceiros previamente cadastrado, posicione no assinante Terceirose clique em alterar.
3- Na guia Assinantes x Processos, preencha os seguintes campos:
Processo: Venda
Ativo: Sim
Tipo Process: Busca
Filiais Proc: Informe o código das filiais que deseja Buscar o Processo
Configuração: Preencha este campo com as configurações do processo de Venda. A URL deve ser preenchida com o caminho da API de Venda, como mostra o exemplo abaixo:
{ "url": "https://xxx.xx-dev.com.br/", "listasPublicacao": { "SL2": "self:oRegistro['VendaItems']", "SL4": "self:oRegistro['VendaPagamentos']" }, "ChaveUni": [ "Loja:IdRetaguarda", "Ccf", "SerieNota" ], "Header": { "x-api-key": "SEU TOKEN", "Content-Type": "application/json" }, "Path": "pdv/sales" }
Layout Envio: Preencha este campo de acordo com o exemplo abaixo:
{ "Empty":"" }
Layout Publicação: Layout que será utilizado para gerar a Publicação (tabela MHQ), especificamente o campo MHQ_MENSAG.
{ "L1_FILIAL": "&self:oRegistro['Loja']['IdRetaguarda']", "L1_CLIENTE": "&IIF( Empty(self:oRegistro['IdentificacaoCliente']), SuperGetMv('MV_CLIPAD', .F., '000001',self:oRegistro['Loja']['IdRetaguarda']), self:DePara('SA1', self:oRegistro['IdentificacaoCliente'], 2, 0) )", "L1_LOJA": "&IIF( Empty(self:oRegistro['IdentificacaoCliente']), SuperGetMv('MV_LOJAPAD', .F., '01',self:oRegistro['Loja']['IdRetaguarda']), self:DePara('SA1', self:oRegistro['IdentificacaoCliente'], 3, 0) )", "L1_OPERADO": "&self:oRegistro['Operador']['IdRetaguarda']", "L1_EMISSAO": "&self:oRegistro['VendaData']", "L1_EMISNF": "&self:oRegistro['VendaData']", "L1_DTLIM": "&self:oRegistro['VendaData']", "L1_NUMMOV": "&SubStr(cValToChar(self:oRegistro['IdCaixa']),1,2)", "L1_NUMCFIS": "&self:oRegistro['Ccf']", "L1_DOC": "&IIF( self:oRegistro['ModeloFiscal'] == 1, self:oXmlSefaz:get( , {'ide', 'nCFe'}, ''), IIF(self:oRegistro['ModeloFiscal'] == 2, self:oXmlSefaz:get( , {'ide', 'nNF'}, ''), self:oRegistro['Ccf']) )", "L1_SERIE": "&self:oRegistro['SerieNota']", "L1_SERPDV": "&cValToChar(self:oRegistro['SerieNota'])", "L1_SERSAT": "&IIF(self:oRegistro['ModeloFiscal'] == 1, self:oRegistro['Periferico']['NumeroSerie'], '')", "L1_KEYNFCE": "&self:oRegistro['Chaveacesso']", "L1_COMIS": 0, "L1_VLRTOT": "&self:oXmlSefaz:getTotal({'ICMSTot', 'vProd'}) - self:oXmlSefaz:getTotal({'ICMSTot', 'vDesc'}, 0) - self:oXmlSefaz:getTotal({'DescAcrEntr', 'vDescSubtot'}, 0)", "L1_VALBRUT": "&self:oXmlSefaz:getTotal({'ICMSTot', 'vProd'}) - self:oXmlSefaz:getTotal({'ICMSTot', 'vDesc'}, 0) - self:oXmlSefaz:getTotal({'DescAcrEntr', 'vDescSubtot'}, 0)", "L1_VLRLIQ": "&self:oXmlSefaz:getTotal({'ICMSTot', 'vProd'}) - self:oXmlSefaz:getTotal({'ICMSTot', 'vDesc'}, 0) - self:oXmlSefaz:getTotal({'DescAcrEntr', 'vDescSubtot'}, 0)", "L1_VALMERC": "&self:oXmlSefaz:getTotal({'ICMSTot', 'vProd'})", "L1_DESCONT": "&IIF( self:oRegistro['ModeloFiscal'] == 2, 0, self:oXmlSefaz:getTotal({'DescAcrEntr', 'vDescSubtot'}, 0) )", "L1_DESPESA": "&self:oXmlSefaz:getTotal({'ICMSTot', 'vOutro'}, 0)", "L1_FRETE": "&self:oXmlSefaz:getTotal({'ICMSTot', 'vFrete'}, 0)", "L1_SEGURO": "&self:oXmlSefaz:getTotal({'ICMSTot', 'vSeg'}, 0)", "L1_ORIGEM": "N", "L1_CGCCLI": "&IIF( Empty(self:oRegistro['CpfCnpjConsumidor']), '', self:oRegistro['CpfCnpjConsumidor'] )", "L1_CONDPG": "CN", "L1_SITUA": "IP", "L1_TIPO": "V", "L1_TIPOCLI": "F", "L1_ESPECIE": "&IIF( self:oRegistro['ModeloFiscal'] == 1, 'SATCE', IIF(self:oRegistro['ModeloFiscal'] == 2, 'NFCE', 'ECF') )", "L1_PDV": "&self:oRegistro['NumeroPdv']", "L1_ESTACAO": "&self:oRegistro['NumeroPdv']", "L1_INDPRES": "&self:oXmlSefaz:get( , {'ide', 'indPres'}, '')", "L1_TROCO1": "&IIF( self:oRegistro['ModeloFiscal'] == 1, self:oXmlSefaz:get( , {'pgto', 'vTroco'}, 0), self:oXmlSefaz:get( , {'pag', 'vTroco'}, 0) )", "SL2": [ { "L2_FILIAL": "&self:oRegistro['Loja']['IdRetaguarda']", "L2_PRODUTO": "&self:oRegistro['VendaItems'][nItem]['Produto']['IdRetaguarda']", "L2_ITEM": "&StrZero(self:oRegistro['VendaItems'][nItem]['Sequencia'], TamSx3('L2_ITEM')[1])", "L2_DESCRI": "&self:oXmlSefaz:getDet({'prod', 'xProd'}, self:oRegistro['VendaItems'][nItem]['Sequencia'])", "L2_QUANT": "&self:oXmlSefaz:getDet({'prod', 'qCom'}, self:oRegistro['VendaItems'][nItem]['Sequencia'])", "L2_VRUNIT": "&self:oXmlSefaz:getDet({'prod', 'vUnCom'}, self:oRegistro['VendaItems'][nItem]['Sequencia'],0) - ( ( self:oXmlSefaz:getDet({'prod', 'vDesc'}, self:oRegistro['VendaItems'][nItem]['Sequencia'], 0) + self:oXmlSefaz:getDet({'prod', 'vRatDesc'}, self:oRegistro['VendaItems'][nItem]['Sequencia'], 0) ) / self:oXmlSefaz:getDet({'prod', 'qCom'}, self:oRegistro['VendaItems'][nItem]['Sequencia'],0) )", "L2_PRCTAB": "&self:oXmlSefaz:getDet({'prod', 'vUnCom'}, self:oRegistro['VendaItems'][nItem]['Sequencia'],0)", "L2_VLRITEM": "&self:oXmlSefaz:getDet({'prod', 'vProd'}, self:oRegistro['VendaItems'][nItem]['Sequencia'],0) - ( self:oXmlSefaz:getDet({'prod', 'vDesc'}, self:oRegistro['VendaItems'][nItem]['Sequencia'], 0) + self:oXmlSefaz:getDet({'prod', 'vRatDesc'}, self:oRegistro['VendaItems'][nItem]['Sequencia'], 0) )", "L2_LOCAL": "&SuperGetMv('MV_LOCPAD', .F., '01',self:oRegistro['Loja']['IdRetaguarda'])", "L2_UM": "&self:oXmlSefaz:getDet({'prod', 'uCom'}, self:oRegistro['VendaItems'][nItem]['Sequencia'])", "L2_VALDESC": "&self:oXmlSefaz:getDet({'prod', 'vDesc'}, self:oRegistro['VendaItems'][nItem]['Sequencia'], 0)", "L2_DESCPRO": "&self:oXmlSefaz:getDet({'prod', 'vRatDesc'}, self:oRegistro['VendaItems'][nItem]['Sequencia'], 0)", "L2_EMISSAO": "&self:oRegistro['VendaData']", "L2_VEND": "&IIF(Empty(self:oRegistro['VendaItems'][nItem]['Vendedor']['IdRetaguarda']), SuperGetMv('MV_VENDPAD', .F., '000001', self:oRegistro['Loja']['IdRetaguarda']), self:oRegistro['VendaItems'][nItem]['Vendedor']['IdRetaguarda'])", "L2_CF": "&self:oXmlSefaz:getDet({'prod', 'CFOP'}, self:oRegistro['VendaItems'][nItem]['Sequencia'])", "L2_DOC": "&IIF( self:oRegistro['ModeloFiscal'] == 1, self:oXmlSefaz:get( , {'ide', 'nCFe'}, ''), IIF(self:oRegistro['ModeloFiscal'] == 2, self:oXmlSefaz:get( , {'ide', 'nNF'}, ''), self:oRegistro['Ccf']) )", "L2_SERIE": "&self:oRegistro['SerieNota']", "L2_PICM": "&self:oXmlSefaz:getDetIcms('pICMS', self:oRegistro['VendaItems'][nItem]['Sequencia'], 0)", "L2_VALICM": "&self:oXmlSefaz:getDetIcms('vICMS', self:oRegistro['VendaItems'][nItem]['Sequencia'], 0)", "L2_BASEICM": "&IIF( self:oRegistro['ModeloFiscal'] == 1, self:oXmlSefaz:getDet({'prod', 'vItem'}, self:oRegistro['VendaItems'][nItem]['Sequencia'], 0),self:oXmlSefaz:getDetIcms('vBC', self:oRegistro['VendaItems'][nItem]['Sequencia'], 0) )", "L2_MODBC": "&self:oXmlSefaz:getDetIcms('modBC', self:oRegistro['VendaItems'][nItem]['Sequencia'], '0')", "L2_ORIGEM": "&self:oXmlSefaz:getDetIcms('Orig', self:oRegistro['VendaItems'][nItem]['Sequencia'], '0')", "L2_CLASFIS": "&self:oXmlSefaz:getDetIcms('Orig', self:oRegistro['VendaItems'][nItem]['Sequencia'], '') + self:oXmlSefaz:getDetIcms('CST', self:oRegistro['VendaItems'][nItem]['Sequencia'], '')", "L2_VALPS2": "&self:oXmlSefaz:getDetPIS('vPIS', self:oRegistro['VendaItems'][nItem]['Sequencia'], 0)", "L2_BASEPS2": "&self:oXmlSefaz:getDetPIS('vBC', self:oRegistro['VendaItems'][nItem]['Sequencia'], 0)", "L2_ALIQPS2": "&self:oXmlSefaz:getDetPIS('pPIS', self:oRegistro['VendaItems'][nItem]['Sequencia'], 0)", "L2_CSTPIS": "&self:oXmlSefaz:getDetPIS('CST', self:oRegistro['VendaItems'][nItem]['Sequencia'], '')", "L2_VALCF2": "&self:oXmlSefaz:getDetCOF('vCOFINS', self:oRegistro['VendaItems'][nItem]['Sequencia'], 0)", "L2_BASECF2": "&self:oXmlSefaz:getDetCOF('vBC', self:oRegistro['VendaItems'][nItem]['Sequencia'], 0)", "L2_ALIQCF2": "&self:oXmlSefaz:getDetCOF('pCOFINS', self:oRegistro['VendaItems'][nItem]['Sequencia'], 0)", "L2_CSTCOF": "&self:oXmlSefaz:getDetCOF('CST', self:oRegistro['VendaItems'][nItem]['Sequencia'], '')", "L2_BRICMS": "&self:oXmlSefaz:getDetIcms('vBCSTRet', self:oRegistro['VendaItems'][nItem]['Sequencia'], '0')", "L2_ICMSRET": "&self:oXmlSefaz:getDetIcms('vICMSSTRet', self:oRegistro['VendaItems'][nItem]['Sequencia'], '0')", "L2_BASFECP": "&self:oXmlSefaz:getDetIcms('vBC', self:oRegistro['VendaItems'][nItem]['Sequencia'], '0')", "L2_ALQFECP": "&self:oXmlSefaz:getDetIcms('pFCP', self:oRegistro['VendaItems'][nItem]['Sequencia'], '0')", "L2_VALFECP": "&self:oXmlSefaz:getDetIcms('vFCP', self:oRegistro['VendaItems'][nItem]['Sequencia'], '0')", "L2_PREDIC": "&self:oXmlSefaz:getDetIcms('pRedBC', self:oRegistro['VendaItems'][nItem]['Sequencia'], '0')" } ], "SL4": [ { "L4_FILIAL": "&self:oRegistro['Loja']['IdRetaguarda']", "L4_DATA": "&self:oRegistro['VendaPagamentos'][nItem]['DataVencimento']", "L4_VALOR": "&self:oRegistro['VendaPagamentos'][nItem]['ValorPago']", "L4_ADMINIS": "&Iif(self:oRegistro['VendaPagamentos'][nItem]['PagamentoOperadora'] == Nil,'',self:oRegistro['VendaPagamentos'][nItem]['PagamentoOperadora']['IdRetaguarda'])", "L4_TROCO": "&self:oRegistro['VendaPagamentos'][nItem]['ValorTroco']", "L4_FORMA": "&self:oRegistro['VendaPagamentos'][nItem]['PagamentoForma']['IdRetaguarda']", "L4_NSUTEF": "&IIF(self:oRegistro['VendaPagamentos'][nItem]['VendaPagamentoTefs'] == Nil,'', self:oRegistro['VendaPagamentos'][nItem]['VendaPagamentoTefs']['NsuHost'])", "L4_DOCTEF": "&IIF(self:oRegistro['VendaPagamentos'][nItem]['VendaPagamentoTefs'] == Nil,'', self:oRegistro['VendaPagamentos'][nItem]['VendaPagamentoTefs']['NsuHost'])", "L4_BANDEIR": "&IIF(self:oRegistro['VendaPagamentos'][nItem]['VendaPagamentoTefs'] == Nil,'',self:oRegistro['VendaPagamentos'][nItem]['VendaPagamentoTefs']['Bandeira'])", "L4_PARCTEF": "&IIF(self:oRegistro['VendaPagamentos'][nItem]['VendaPagamentoTefs'] == Nil,'', self:oRegistro['VendaPagamentos'][nItem]['VendaPagamentoTefs']['NumeroParcelas'])", "L4_AUTORIZ": "&IIF(self:oRegistro['VendaPagamentos'][nItem]['VendaPagamentoTefs'] == Nil,'', self:oRegistro['VendaPagamentos'][nItem]['VendaPagamentoTefs']['NumeroAutorizacao'])" } ] }