Linha de Produto: | Microsiga Protheus |
---|---|
Segmento: | Varejo |
Módulo: | SigaLoja - Controle de Loja |
Função: | RmiBuscaObj - Classe responsável por buscar informações |
Disponibilizar no serviço de busca de Vendas no Assinante Live os tributos recebidos e gravar nos devidos campos do Protheus.
Atualizado serviço RmiBusca para o Assinantes Live, que será responsável por buscar os processos nos assinantes e publica-los na tabela MHQ - Mensagens Publicadas.
Este serviço será executado com base na configuração de Assinantes.
Neste exemplo o processo Venda está configurado como busca para o assinantes Live utilizando a operação RecuperarCupomFiscalLC_Integracao_Xml.
Definição dos principais campos para efetuar a busca:
2=Busca
{ "url_token":"http://caminho/PracticoLive/LiveConnector/FacadeIntegracao.svc?wsdl", (Url para acessar o LiveConector) "operacao":"ObterChaveAcessoLC_Integracao", (Operação para buscar token) "sistemasatelite":"123456789", (código do sistema satélite) "usuario":"[email protected]", (nome do usuário) "senha":"senha" (senha do usuário) } |
{ "url":"http://caminho/PracticoLive/LiveConnector/FacadeIntegracao.svc?wsdl", "operacao":"RecuperarCupomFiscalLC_Integracao_Xml", "tagretorno":"<LC_TicketCupomFiscal>", "SL2":"self:oRegistro:_Itens:_Lc_ItemCupomfiscal", "SL4":"self:oRegistro:_FormasPagamento:_Lc_FormaPagamento" } |
&"<?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:liv="http://LiveConnector/"> <soapenv:Header /> <soapenv:Body> <liv:RecuperarCupomFiscalLC_Integracao_Xml> <liv:codigoSistemaSatelite>" + self:oConfAssin['sistemasatelite'] + "</liv:codigoSistemaSatelite> <liv:xmlIdentificacao><![CDATA[<?xml version='1.0' encoding='utf-8'?><LC_Identificacao><Chave>" + self:cToken + "</Chave><CodigoSistemaSatelite>" + self:oConfAssin['sistemasatelite'] + "</CodigoSistemaSatelite><Data/><Hora/></LC_Identificacao>]]></liv:xmlIdentificacao> </liv:RecuperarCupomFiscalLC_Integracao_Xml> </soapenv:Body> </soapenv:Envelope>" |
Observação:
& - Este carácter define que deve macro executar tudo o quem depois em tempo de execução.
{ "L1_FILIAL":"&self:aArrayFil[self:nFil][2]", "L1_VEND":"", "L1_CLIENTE":"&self:oRegistro:_IdentificacaoCliente:Text", "L1_LOJA":"&SuperGetMv('MV_LOJPAD', .F., '01')", "L1_OPERADO":"C02", "L1_EMISSAO":"&DtoS( CtoD( SubStr(self:oRegistro:_DataHora:Text, 1, 10) ) )", "L1_NUMCFIS":"&self:oRegistro:_Numero:Text", "L1_DOC":"&cValToChar(self:oRegistro:_Numero:Text)", "L1_SERIE":"", "L1_KEYNFCE":"&IIF(self:oRegistro:_SiglaModelo:Text <> '2D', self:oRegistro:_ChaveNFCe:Text, '')", "L1_SERSAT":"&IIF(self:oRegistro:_SiglaModelo:Text == '59', self:oRegistro:_SerieNFCe:Text, '')", "L1_SERPDV":"&IIF(self:oRegistro:_SiglaModelo:Text == '2D', self:oRegistro:_NumeroImpressora:Text, '')", "L1_COMIS":0, "L1_VLRTOT":"&Val(self:oRegistro:_ValorLiquido:Text)", "L1_VALBRUT":"&Val(self:oRegistro:_ValorBruto:Text)", "L1_VLRLIQ":"&Val(self:oRegistro:_ValorLiquido:Text)", "L1_VALMERC":"&Val(self:oRegistro:_ValorBruto:Text)", "L1_DESCONT":"&Val(self:oRegistro:_ValorDesconto:Text)", "L1_MSEXP":"&DtoS(Date())", "L1_CONDPG":"CN", "L1_SITUA":"IP", "L1_TIPO":"V", "L1_TIPOCLI":"F", "L1_PDV":"&self:oRegistro:_NumeroPDV:Text", "L1_ORIGEM":"N", "SL2":[ { "L2_FILIAL":"&self:aArrayFil[self:nFil][2]", "L2_PRODUTO":"&self:oRegistro:_Itens:_Lc_ItemCupomfiscal[nItem]:_CodigoProduto:Text", "L2_ITEM":"&Right( AllTrim(self:oRegistro:_Itens:_Lc_ItemCupomfiscal[nItem]:_NumeroItem:Text), TamSx3('L2_ITEM')[1])", "L2_DESCRI":"", "L2_QUANT":"&Val(self:oRegistro:_Itens:_Lc_ItemCupomfiscal[nItem]:_Quantidade:Text)", "L2_VRUNIT":"&Val(self:oRegistro:_Itens:_Lc_ItemCupomfiscal[nItem]:_ValorUnitarioLiquido:Text)", "L2_VLRITEM":"&Val(self:oRegistro:_Itens:_Lc_ItemCupomfiscal[nItem]:_ValorTotalLiquido:Text)", "L2_LOCAL":"01", "L2_UM":"&self:oRegistro:_Itens:_Lc_ItemCupomfiscal[nItem]:_UnidadeMedida:Text", "L2_TES":"&SuperGetMv('MV_TESSAI', .F., '501')", "L2_CF":"", "L2_EMISSAO":"&DtoS( CtoD( SubStr(self:oRegistro:_DataHora:Text, 1, 10) ) )" } ], "SL4":[ { "L4_FILIAL":"&self:aArrayFil[self:nFil][2]", "L4_DATA":"&DtoS( CtoD( SubStr(self:oRegistro:_DataHora:Text, 1, 10) ) )", "L4_VALOR":"&Val(self:oRegistro:_FormasPagamento:_Lc_FormaPagamento[nItem]:_ValorPagamento:Text)", "L4_ADMINIS":"&self:oRegistro:_FormasPagamento:_Lc_FormaPagamento[nItem]:_DescricaoProdutoEletronico:Text", "L4_FORMA":"&self:oRegistro:_FormasPagamento:_Lc_FormaPagamento[nItem]:_DescricaoFormaPagamento:Text", "L4_AUTORIZ":"&AllTrim(self:oRegistro:_FormasPagamento:_Lc_FormaPagamento[nItem]:_Autorizacao:Text)", "L4_NSUTEF":"&self:oRegistro:_FormasPagamento:_Lc_FormaPagamento[nItem]:_NSU:Text", "L4_PARCTEF":"&self:oRegistro:_FormasPagamento:_Lc_FormaPagamento[nItem]:_Parcela:Text" } ] } |
Tributos:
Para gravação dos impostos foi necessário o tratamento dos webservice recebido do LiveConector, complementando o json gravado na tabela MHQ - Mensagens Publicadas
Exemplo do json a ser gravado na MHQ:
{ "L1_DESCONT": 0, "L1_KEYNFCE": "33180327512306001740650510000007481000007482", "L1_TIPOCLI": "F", "L1_OPERADO": "C02", "L1_TIPO": "V", "L1_VLRLIQ": 59.98, "L1_COMIS": 0, "L1_SERSAT": "", "L1_PDV": "2", "L1_MSEXP": "20200311", "L1_LOJA": "01", "L1_SITUA": "IP", "L1_NUMCFIS": "748", "L1_VEND": "", "L1_SERIE": "", "L1_SERPDV": "", "L1_VALBRUT": 59.98, "L1_VALMERC": 59.98, "L1_FILIAL": "D RJ 02 ", "L1_ORIGEM": "N", "L1_EMISSAO": "20180323", "SL2": [ { "L2_QUANT": 1, "L2_BASECOF": 49.99, "L2_ALIQCOF": 7.6, "L2_BASEICM": 49.99, "L2_PRODUTO": "0800020151", "L2_BASEPIS": 49.99, "L2_ALIQPIS": 1.65, "L2_FILIAL": "D RJ 02 ", "L2_VLRITEM": 49.99, "L2_UM": "UN", "L2_ITEM": "01", "L2_TES": "501", "L2_VRUNIT": 49.99, "L2_VALPIS": 0.82, "L2_DESCRI": "", "L2_VALCOFI": 3.8, "L2_LOCAL": "01", "L2_EMISSAO": "20180323", "L2_CF": "", "L2_ICM": 9, "L2_PICM": 18 }, { "L2_QUANT": 1, "L2_BASECOF": 9.99, "L2_ALIQCOF": 7.6, "L2_BASEICM": 9.99, "L2_PRODUTO": "0600060661", "L2_BASEPIS": 9.99, "L2_ALIQPIS": 1.65, "L2_FILIAL": "D RJ 02 ", "L2_VLRITEM": 9.99, "L2_UM": "UN", "L2_ITEM": "02", "L2_TES": "501", "L2_VRUNIT": 9.99, "L2_VALPIS": 0.16, "L2_DESCRI": "", "L2_VALCOFI": 0.76, "L2_LOCAL": "01", "L2_EMISSAO": "20180323", "L2_CF": "", "L2_ICM": 1.8, "L2_PICM": 18 } ], "L1_DOC": "748", "L1_VLRTOT": 59.98, "L1_CLIENTE": "", "L1_CONDPG": "CN", "SL4": [ { "L4_DATA": "20180323", "L2_BASECOF": 49.99, "L2_ALIQCOF": 7.6, "L2_BASEICM": 49.99, "L4_ADMINIS": "VISA (G)", "L2_BASEPIS": 49.99, "L4_PARCTEF": "1", "L2_ALIQPIS": 1.65, "L4_AUTORIZ": "503554", "L4_FORMA": "81 - TEF CREDITO", "L2_VALPIS": 0.82, "L2_VALCOFI": 3.8, "L4_VALOR": 59.98, "L4_NSUTEF": "001001314", "L4_FILIAL": "D RJ 02 ", "L2_ICM": 9, "L2_PICM": 18 } ] } |
Neste serviço serão utilizadas as seguintes tabelas:
MHP - Assinantes x Processos
MHQ - Mensagens Publicadas
A configuração do assinante Live deverá seguir a documentação na seguinte estrutura: Assinante Live.
Exemplo de configuração do Job no AppServer.ini
[RMIBUSCA]
Main=RmiBusca
Environment=12_1_25 (Ambiente)
nParms=2
Parm1=T1 (Empresa)
Parm2=D MG 01 (Filial)
Guia da Integração RMI - Retail Integration Management
<style> div.theme-default .ia-splitter #main { margin-left: 0px; } .ia-fixed-sidebar, .ia-splitter-left { display: none; } #main { padding-left: 10px; padding-right: 10px; overflow-x: hidden; } .aui-header-primary .aui-nav, .aui-page-panel { margin-left: 0px !important; } .aui-header-primary .aui-nav { margin-left: 0px !important; } </style> |