Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Aviso
titleObservação

Para vendas NFCE com desconto NO TOTAL, a integração considerará sempre como desconto NO ITEM, pois o xml no NFCE-Sefaz sempre considera o desconto no item , independente da forma como foi praticado o desconto no PDV. Para evitar impactos de base de cálculos nos impostos , não será realizada nenhuma conversão de valores.


Campo: D2_CSOSN Não é gravado em uma venda pelo venda assistida, porem via integração é, após analise identificamos que o campo é utilizado somente no NFESEFAZ para envio de uma mensagem nas observações da nota, portanto não foi encontrado nenhum impacto no processo de venda.


Os campos TOTFED/TOTEST/TOTMUN da SL1/SL2 não são gravados na venda integrada do PDVSync por não existirem estes campos nas tabelas da base do PDV, e conforme verificado e alinhado com o PO, os campos no PROTHEUS não geram impacto nos livros fiscais. 

Na venda PDVOMNI os cálculos para informativo da lei da transparência são arredondados, já no Protheus os campos TOTFED/TOTEST/TOTMUN já não são arredondados.


Campos L2_DESC\D2_DESC de percentual de desconto não são gravados na integração, porem não interferem nos cálculos, porque os valores de desconto estão OK.


Campo L2_PICM não grava no registro do PROTHEUS, porem no registro da integração grava o que esta correto. SF2, SD2 e para frente grava corretamente.


Quando algum item estiver com o CST 60 ou CSOSN 500 em venda com SAT, ficou definido que os campos abaixo terão seu conteúdo calculado diretamente pela MATXFIS, porque pelo XML SEFAZ não é possível chegar nestes valores.

    F2_VALICM, F2_ICMSRET, F2_BRICMS
    D2_VALICM, D2_ICMSRET, D2_BRICMS, D2_ALIQSOL
    F3_VALICM, F3_ICMSRET, F3_BASERET
    FT_VALICM, FT_ICMSRET, FT_BASERET

Campos da SL1 e SL2 não serão atualizados.


Para retenção de ICMS com base reduzida, alguns cálculos são necessários arredondamento para o valor do ICMS ficar correto nos livros fiscais, com isso os parâmetros abaixo são necessários:

https://centraldeatendimento.totvs.com/hc/pt-br/articles/360023920652-CROSS-Segmentos-TOTVS-Backoffice-Linha-Protheus-FIS-Arredondamento-de-Impostos

https://centraldeatendimento.totvs.com/hc/pt-br/articles/235534847-Como-evitar-diferen%C3%A7a-de-centavos-no-arredondamento-dos-ambientes-SIGALOJA-e-SIGAFRT-

Encontrado diferença de 0,01 centavo na base de calculo de ICM reduzido entre PDVOMNI e Protheus. Estamos acatando o valor enviado via xml pelo PDVOMNI.


Para PIS COFINS Via Apuração a configuração do cliente deve ser, A1_RECPIS = "N" e A1_RECCOFI = "N". Com isso serão gravados os campos abaixo na venda:

L2_VALPS2, L2_BASEPS2, L2_ALIQPS2, L2_VALCF2, L2_BASECF2, L2_ALIQCF2

Para PIS Cofins via Retenção a configuração do cliente deve ser A1_RECPIS = "S" e A1_RECCOFI = "S". Com isso serão gravados os campos abaixo na venda:

L2_VALPIS, L2_BASEPIS, L2_ALIQPIS, L2_ALIQCOF, L2_BASECOF, L2_VALCOFI


Os acréscimos contidos na venda integrada serão informados no campo L2_DESPESA, pois a venda do PDVOmni realiza os acréscimos das vendas destacando os valores de despesa na tag vOutro do XML

Para soma de acréscimo/despesa na base de calculo acionar o parâmetro MV_FRTBASE e campos na tes usada no produto, conforme documentação do parâmetro: IMP0030_Despesas_acessórias_( seguro_e_frete)_para_base_dos_impostos_PIS/COFINS_(Apuração)


  • Em caso de reintegração de venda cancelada no Protheus deverá ter intervenção manual, deletando a Tabela (MEP- em caso de venda parcelada) e as tabelas SFT , SF3 para ajuste de livro fiscal.  


PDV OMNISHOP não atende ICMS90, mais detalhes:

Jira
serverJIRA
serverId0c783de1-186e-383b-975c-a1acd7d76cb5
keyDVARLOJ1-7453



  • MV_PSHMOV
Logico Parâmetro que habilita a geração de NCC movimentação financeira..T.Quando a NCC é online via API, como por exemplo é utilizado no PdvSync o conteúdo do parâmetro deverá ser igual a .F. → Falso. 


Cadastrando o Processo de VENDA

...

Bloco de código
titleLayout Publicação
{
	"L1_FILIAL": "&self:oRegistro['Loja']['IdRetaguarda']",
	"L1_CLIENTE": "&IIF( Empty(self:oRegistro['IdentificacaoFidelidade']), SuperGetMv('MV_CLIPAD', .F., '000001'), self:DePara('SA1', self:oRegistro['IdentificacaoFidelidade'], 2, 0) )",
	"L1_LOJA": "&IIF( Empty(self:oRegistro['IdentificacaoFidelidade']), SuperGetMv('MV_LOJAPAD', .F., '01'), self:DePara('SA1', self:oRegistro['IdentificacaoFidelidade'], 3, 0) )",
	"L1_OPERADO": "&LjAuxPosic('OPERADOR DE LOJA', 'MIH_ID', self:oRegistro['Operador']['IdRetaguarda'], 'banco')",
	"L1_EMISSAO": "&self:oRegistro['VendaData']",
	"L1_HORA": "&Substr(self:oRegistro['VendaData'],12,8)",
	"L1_EMISNF": "&self:oRegistro['VendaData']",
	"L1_DTLIM": "&self:oRegistro['VendaData']",
	"L1_NUMMOV": "&SubStr(cValToChar(self:oRegistro['IdCaixa']),1,2)",
	"L1_NUMCFIS": "&IIF( self:oRegistro['ModeloFiscal'] == 1, self:oXmlSefaz:get( , {'ide', 'nCFe'}, ''), IIF(self:oRegistro['ModeloFiscal'] == 2, self:oXmlSefaz:get( , {'ide', 'nNF'}, ''), 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']), self:oRegistro['Ccf']) )",
	"L1_SERIE": "&self:LayEstAuto('LG_SERIE')",
	"L1_SERPDV": "&cValToChar(self:oRegistro['SerieNota'])",
	"L1_SERSAT": "&IIF(self:oRegistro['ModeloFiscal'] == 1,self:oXmlSefaz:get( , {'ide', 'nserieSAT'}, ''), '')",
	"L1_KEYNFCE": "&IIF(self:oRegistro['Chaveacesso']==NIL,'',self:oRegistro['Chaveacesso'])",
	"L1_COMIS": 0,
	"L1_VLRTOT": "&self:oXmlSefaz:getTotal({'ICMSTot', 'vProd'},0) - self:oXmlSefaz:getTotal({'ICMSTot', 'vDesc'}, 0) - self:oXmlSefaz:getTotal({'DescAcrEntr', 'vDescSubtot'}, 0)",
	"L1_VALBRUT": "&(self:oXmlSefaz:getTotal({'ICMSTot', 'vProd'},0) +self:oXmlSefaz:getTotal({'ICMSTot', 'vOutro'}, 0) + self:oXmlSefaz:getTotal({'DescAcrEntr', 'vAcresSubtot'}, 0)) - self:oXmlSefaz:getTotal({'ICMSTot', 'vDesc'}, 0) - self:oXmlSefaz:getTotal({'DescAcrEntr', 'vDescSubtot'}, 0)",
	"L1_VLRLIQ": "&(self:oXmlSefaz:getTotal({'ICMSTot', 'vProd'},0) +self:oXmlSefaz:getTotal({'ICMSTot', 'vOutro'}, 0) + self:oXmlSefaz:getTotal({'DescAcrEntr', 'vAcresSubtot'}, 0)) - self:oXmlSefaz:getTotal({'ICMSTot', 'vDesc'}, 0) - self:oXmlSefaz:getTotal({'DescAcrEntr', 'vDescSubtot'}, 0)",
	"L1_VALMERC": "&self:oXmlSefaz:getTotal({'ICMSTot', 'vProd'},0)",
	"L1_DESCONT": "&IIF( self:oRegistro['ModeloFiscal'] == 2, 0, self:oXmlSefaz:getTotal({'DescAcrEntr', 'vDescSubtot'}, 0) )",
	"L1_DESPESA": "&IIF( self:oRegistro['ModeloFiscal'] == 1,self:oXmlSefaz:getTotal({'DescAcrEntr', 'vAcresSubtot'}, 0),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": "&SuperGetMv('MV_CONDPAD', .F., '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:LayEstAuto('LG_PDV')",
	"L1_ESTACAO": "&self:LayEstAuto('LG_CODIGO')",
	"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:oXmlSefaz:getDet({'prod', 'cProd'}, self:oRegistro['VendaItems'][nItem]['Sequencia'],'')",
			"L2_POSIPI": "&self:oXmlSefaz:getDet({'prod', 'NCM'}, self:oRegistro['VendaItems'][nItem]['Sequencia'],'')",
			"L2_ITEM": "&StrZero(self:oRegistro['VendaItems'][nItem]['Sequencia'], TamSx3('L2_ITEM')[1])",
			"L2_DESCRI": "&Substr(self:oXmlSefaz:getDet({'prod', 'xProd'}, self:oRegistro['VendaItems'][nItem]['Sequencia']),1,TamSx3('L2_DESCRI')[1])",
			"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')",
			"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_DESC": "&(self:oXmlSefaz:getDet({'prod', 'vDesc'}, self:oRegistro['VendaItems'][nItem]['Sequencia'], 0) * 100)/self:oXmlSefaz:getDet({'prod', 'vProd'}, self:oRegistro['VendaItems'][nItem]['Sequencia'],0)",
			"L2_DESPESA": "&self:oXmlSefaz:getDet({'prod', 'vOutro'}, self:oRegistro['VendaItems'][nItem]['Sequencia'], 0) + self:oXmlSefaz:getDet({'prod', 'vRatAcr'}, self:oRegistro['VendaItems'][nItem]['Sequencia'], 0)",
			"L2_TES": "&RmiTesProd(self:oXmlSefaz:getDet({'prod', 'cProd'}, self:oRegistro['VendaItems'][nItem]['Sequencia'],0))",
			"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:LayEstAuto('LG_SERIE')",
			"L2_ESPECIE": "&IIF( self:oRegistro['ModeloFiscal'] == 1, 'SATCE', IIF(self:oRegistro['ModeloFiscal'] == 2, 'NFCE', 'ECF') )",
			"L2_EMISSAO": "&self:oRegistro['VendaData']",
			"L2_VEND": "&IIF(Empty(LjAuxPosic('OPERADOR DE LOJA',,self:oRegistro['VendaItems'][nItem]['Vendedor']['IdRetaguarda'],'VENDEDOR')),SuperGetMv('MV_VENDPAD', .F., '000001'),LjAuxPosic('OPERADOR DE LOJA',,self:oRegistro['VendaItems'][nItem]['Vendedor']['IdRetaguarda'],'VENDEDOR'))",
			"L2_CF": "&self:oXmlSefaz:getDet({'prod', 'CFOP'}, self:oRegistro['VendaItems'][nItem]['Sequencia'],0)",
			"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": "&IIF( RMIRetApur(self:oRegistro['IdentificacaoFidelidade']),self:oXmlSefaz:getDetPIS('vPIS', self:oRegistro['VendaItems'][nItem]['Sequencia'], 0),0)",
			"L2_BASEPS2": "&IIF( RMIRetApur(self:oRegistro['IdentificacaoFidelidade']),self:oXmlSefaz:getDetPIS('vBC', self:oRegistro['VendaItems'][nItem]['Sequencia'], 0),0)",
			"L2_ALIQPS2": "&IIF( RMIRetApur(self:oRegistro['IdentificacaoFidelidade']),self:oXmlSefaz:getDetPIS('pPIS', self:oRegistro['VendaItems'][nItem]['Sequencia'], 0) ,0)",
			"L2_CSTPIS": "&self:oXmlSefaz:getDetPIS('CST', self:oRegistro['VendaItems'][nItem]['Sequencia'], '')",
			"L2_VALPIS": "&IIF( !RMIRetApur(self:oRegistro['IdentificacaoFidelidade']),self:oXmlSefaz:getDetPIS('vPIS', self:oRegistro['VendaItems'][nItem]['Sequencia'], 0),0)",
			"L2_BASEPIS": "&IIF( !RMIRetApur(self:oRegistro['IdentificacaoFidelidade']),self:oXmlSefaz:getDetPIS('vBC', self:oRegistro['VendaItems'][nItem]['Sequencia'], 0),0)",
			"L2_ALIQPIS": "&IIF( !RMIRetApur(self:oRegistro['IdentificacaoFidelidade']),self:oXmlSefaz:getDetPIS('pPIS', self:oRegistro['VendaItems'][nItem]['Sequencia'], 0),0)",
			"L2_VALCF2": "&IIF( RMIRetApur(self:oRegistro['IdentificacaoFidelidade']),self:oXmlSefaz:getDetCOF('vCOFINS', self:oRegistro['VendaItems'][nItem]['Sequencia'], 0),0)",
			"L2_BASECF2": "&IIF( RMIRetApur(self:oRegistro['IdentificacaoFidelidade']),self:oXmlSefaz:getDetCOF('vBC', self:oRegistro['VendaItems'][nItem]['Sequencia'], 0),0)",
			"L2_ALIQCF2": "&IIF( RMIRetApur(self:oRegistro['IdentificacaoFidelidade']),self:oXmlSefaz:getDetCOF('pCOFINS', self:oRegistro['VendaItems'][nItem]['Sequencia'], 0) ,0)",
			"L2_CSTCOF": "&self:oXmlSefaz:getDetCOF('CST', self:oRegistro['VendaItems'][nItem]['Sequencia'], '')",
			"L2_VALCOFI": "&IIF( !RMIRetApur(self:oRegistro['IdentificacaoFidelidade']),self:oXmlSefaz:getDetCOF('vCOFINS', self:oRegistro['VendaItems'][nItem]['Sequencia'], 0),0)",
			"L2_BASECOF": "&IIF( !RMIRetApur(self:oRegistro['IdentificacaoFidelidade']),self:oXmlSefaz:getDetCOF('vBC', self:oRegistro['VendaItems'][nItem]['Sequencia'], 0),0)",
			"L2_ALIQCOF": "&IIF( !RMIRetApur(self:oRegistro['IdentificacaoFidelidade']),self:oXmlSefaz:getDetCOF('pCOFINS', self:oRegistro['VendaItems'][nItem]['Sequencia'], 0),0)",
			"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": "&IIF( self:oXmlSefaz:getDetIcms('vFCP', self:oRegistro['VendaItems'][nItem]['Sequencia'], 0) > 0, self:oXmlSefaz:getDetIcms('vBC', self:oRegistro['VendaItems'][nItem]['Sequencia'], 0), 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_ALQFCST": "&self:oXmlSefaz:getDetIcms('pFCPSTRet', self:oRegistro['VendaItems'][nItem]['Sequencia'], 0)",
			"L2_VFECPST": "&self:oXmlSefaz:getDetIcms('vFCPSTRet', self:oRegistro['VendaItems'][nItem]['Sequencia'], 0)",
			"L2_PREDIC": "&IiF(self:oXmlSefaz:getDetIcms('pRedBC', self:oRegistro['VendaItems'][nItem]['Sequencia'], 0) > 0,100-(self:oXmlSefaz:getDetIcms('pRedBC', self:oRegistro['VendaItems'][nItem]['Sequencia'],0)),0)"
		,
            "L2_RESERVA": "&IIF(self:oRegistro['preVendaId']==NIL,'',self:GetReserva(nItem))"
        }
	]
}