Árvore de páginas

01. DADOS GERAIS

Produto:

TOTVS Varejo Lojas

Linha de Produto:

Linha Protheus

Segmento:

Varejo

Módulo:Controle de Lojas (SIGALOJA)
Função:

RMICADPROC
RMIPUBLICA
RMIXFUNC
RMISTATUSLIVE

Ticket:não há
Issue:DVARLOJ1-5609

02. SITUAÇÃO/REQUISITO

Situação 1

Atualmente é usado o método ManterTributoProdutoLC_Integracao_Xml para enviar somente o imposto ICMS e houve a necessidade de envio de PIS e COFINS.

Situação 2

Enviar o imposto ICMS através do método ManterSituacaoVendaProdutoLC_Integracao_XML, onde devera ser enviado por outro processo.

Situação 3

Enviar mensagem de imposto somente quando a mensagem de Produto já tiver processada:  Live valida se o produto existe antes de colocar o cadastro de Imposto na Fila.

03. SOLUÇÃO

Solução 1

Criado função para montagem do layout do método ManterTributoProdutoLC_Integracao_Xml, onde verifica se a alíquota de imposto é maior que zero para envio do bloco de imposto. Necessário atualizar o campo Layout Envio (MHP_LAYENV, do processo IMPOSTO PROD, vinculado ao assinante LIVE:

Json - ManterTributoProdutoLC_Integracao_Xml
&"<soapenv:Envelope
 xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'
 xmlns:liv='http://LiveConnector/'>
	<soapenv:Header/>
	<soapenv:Body>
		<liv:ManterTributoProdutoLC_Integracao_Xml><liv:codigoSistemaSatelite>" + self:oConfAssin['sistemasatelite'] + "</liv:codigoSistemaSatelite><liv:xmlTicketTributoProduto><![CDATA[<?xml version='1.0' encoding='utf-8'?><LC_TicketTributoProduto>
	<Chave>" + self:cToken + "</Chave>
	<CodigoSistemaSatelite>" +
self:oConfAssin['sistemasatelite'] + "</CodigoSistemaSatelite>
	<Data>" + DtoS( Date() ) + "</Data>
	<Hora>" + StrTran(Time(), ':', '') +
 "</Hora>
	<Numero>" + RMITImeStamp() + "</Numero>
	<Documentos>" +	MontaTributo(self:cProcesso,self:oPublica) + "	</Documentos></LC_TicketTributoProduto>]]></liv:xmlTicketTributoProduto>
		</liv:ManterTributoProdutoLC_Integracao_Xml>
	</soapenv:Body>
</soapenv:Envelope>"


Solução 2

Realizado a criação do processo IMPOSTO VENDA, para o consumo do método ManterSituacaoVendaProdutoLC_Integracao_XML para integração de ICMS da venda a partir do produto. Necessário atualizar o campo Layout Envio (MHP_LAYENV, do processo IMPOSTO VENDA, vinculado ao assinante LIVE:

Json - ManterSituacaoVendaProdutoLC_Integracao_Xml
&"<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:liv='http://LiveConnector/'>
   <soapenv:Header/>
   <soapenv:Body>
      <liv:ManterSituacaoVendaProdutoLC_Integracao_Xml>                 
         <liv:codigoSistemaSatelite>" + self:oConfAssin['sistemasatelite'] + "</liv:codigoSistemaSatelite>
         <liv:xmlSituacaoVendaProduto><![CDATA[<?xml version='1.0' encoding='utf-8'?><LC_SituacaoVendaProduto>
                    <Chave>" + self:cToken + "</Chave>
                    <CodigoSistemaSatelite>" + self:oConfAssin['sistemasatelite'] + "</CodigoSistemaSatelite>
                    <Data>" + DtoS( Date() ) + "</Data>
                    <Hora>" + StrTran(Time(), ':', '') + "</Hora>
                    <Numero>" + RMITImeStamp() + "</Numero>
                    <Documentos>
                        <LC_ProdutoLoja>
                            <NumeroSequencia>1</NumeroSequencia>
                            <Ativo>true</Ativo>
                            <CNPJLoja>"+RmiDePaRet(Alltrim(Self:cAssinante), 'SM0',Self:oPublica['B1_FILIAL'], .T.)+"</CNPJLoja>
                            <CodigoLoja>"+RmiDePaRet(Alltrim(Self:cAssinante), 'SM0',Self:oPublica['B1_FILIAL'], .T.)+"</CodigoLoja>
                            <CodigoProduto>"+self:oPublica['B1_COD']+"</CodigoProduto>
                            <DescontoMaximo></DescontoMaximo>
                            <EstoqueMinimo></EstoqueMinimo>
                            <TributoECF>" + self:DePara('YYY', + self:oPublica['IT_TES'] + "|" + cValtoChar(self:oPublica['IT_ALIQICM']) + "|" + self:oPublica['IT_SITTRIB'] + "|" + cValtoChar(self:oPublica['IT_PREDIC']) , 1, 0, .T.) + "</TributoECF>                                              
                        </LC_ProdutoLoja>
                    </Documentos>
                </LC_SituacaoVendaProduto>]]></liv:xmlSituacaoVendaProduto>
      </liv:ManterSituacaoVendaProdutoLC_Integracao_Xml>
   </soapenv:Body>
</soapenv:Envelope>"


Solução 3

Criado rotina para controlar as mensagens de IMPOSTO PROD e IMPOSTO VENDA para realizar o envio somente quando a mensagem de Produto já tiver processada no Live e finalizada no Protheus.

04. DEMAIS INFORMAÇÕES

É necessário realizar o cadastro de De/Para de imposto entre o Protheus e o LIVE, para que na tag TributoECF da mensagem IMPOSTO VENDA, seja enviado o código do tributo do LIVE.

No campo Cont.Interno deve ser informado os seguintes campo IT_TES, IT_ALIQICM, IT_SITTRIB, IT_PREDIC gerados na mensagem IMPOSTO VENDA. Obs, o conteúdo dos campos devem ser separados por "|" pipe como mostra a imagem abaixo.

No campo Cont.Origem deve ser informado o código do tributo no LIVE.

05. ASSUNTOS RELACIONADOS