Página 1 de 1

Qual o bloco de partilha nos totais em txt?

Enviado: 05 Jul 2016 15:06
por JoséQuintas
Não lembro mais aonde ver isso.
Como informar o bloco de partilha no txt? Seria uma linha adicional W03??

A título de curiosidade, como gero TXT e XML dos totais.
Serve pra comparar a geração em TXT e em XML, o fonte fica mais claro e mais fácil de alterar em XML.
Nota: acho que já comentei por aqui que gero os dois ao mesmo tempo TXT e XML.

Código: Selecionar todos

   // ---------- (NOTAFISCAL-W02) Totais ICMS

   cTxt += "W02" + SPED_SEPARADOR
   cTxt += NumberXml( jppedi->pdIcmBas, 2 ) + SPED_SEPARADOR // Base de Calculo do ICMS
   cTxt += NumberXml( jppedi->pdIcmVal, 2 ) + SPED_SEPARADOR // Valor Total do ICMS
   cTxt += NumberXml( 0.00, 2 ) + SPED_SEPARADOR
   IF .F.
      cTxt += NumberXml( nTotDifValf, 2 ) + SPED_SEPARADOR
      cTxt += NumberXml( nTotDesVal, 2 ) + SPED_SEPARADOR
      cTxt += NumberXml( nTotRemVal, 2 ) + SPED_SEPARADOR
   ENDIF
   cTxt += NumberXml( jppedi->pdSubBas, 2 ) + SPED_SEPARADOR // Valor de Calculo do ICMS ST
   cTxt += NumberXml( jppedi->pdSubVal, 2 ) + SPED_SEPARADOR // Valor Total do ICMS ST
   cTxt += NumberXml( jppedi->pdValPro, 2 ) + SPED_SEPARADOR // Valor Total dos Produtos e Servicos
   cTxt += NumberXml( jppedi->pdValFre, 2 ) + SPED_SEPARADOR // Valor Total do Frete
   cTxt += NumberXml( jppedi->pdValSeg, 2 ) + SPED_SEPARADOR // Valor Total do Seguro
   cTxt += NumberXml( jppedi->pdValDes, 2 ) + SPED_SEPARADOR // Valor Total do Desconto
   cTxt += NumberXml( jppedi->pdIIVal, 2 )  + SPED_SEPARADOR // Valor Total do II
   cTxt += NumberXml( jppedi->pdIpiVal, 2 ) + SPED_SEPARADOR // Valor Total do IPI
   cTxt += NumberXml( jppedi->pdPisVal, 2 ) + SPED_SEPARADOR // Valor Total do PIS
   cTxt += NumberXml( jppedi->pdCofVal, 2 ) + SPED_SEPARADOR // Valor Total do Cofins
   cTxt += NumberXml( jppedi->pdValOut, 2 ) + SPED_SEPARADOR // Outras Despesas Acessorias
   cTxt += NumberXml( jppedi->pdValNot, 2 ) + SPED_SEPARADOR // Valor Total da NFE
   IF jppedi->pdImpVal != 0
      cTxt += NumberXml( jppedi->pdImpVal, 2 ) // Total de Impostos
   ENDIF
   cTxt += SPED_SEPARADOR
   cTxt += " "
   cTxt += hb_eol()

   cXml += [<ICMSTot>]
   cXml += XmlTag( "vBC",             NumberXml( jppedi->pdIcmBas, 2 ) )
   cXml += XmlTag( "vICMS",           NumberXml( jppedi->pdIcmVal, 2 ) )
   cXml += XmlTag( "vICMSDeson",      NumberXml( 0, 2 ) )
   IF jppedi->pdDifCal $ "SZ"
      cXml += XmlTag( "vFCPUFDest",   NumberXml( nTotDifValf, 2 ) )
      cXml += XmlTag( "vICMSUFDest",  NumberXml( nTotDesVal, 2 ) )
      cXml += XmlTag( "vICMSUFRemet", NumberXml( nTotRemVal, 2 ) )
   ENDIF
   cXml += XmlTag( "vBCST",           NumberXml( jppedi->pdSubBas, 2 ) )
   cXml += XmlTag( "vST",             NumberXml( jppedi->pdSubVal, 2 ) )
   cXml += XmlTag( "vProd",           NumberXml( jppedi->pdValPro, 2 ) )
   cXml += XmlTag( "vFrete",          NumberXml( jppedi->pdValFre, 2 ) )
   cXml += XmlTag( "vSeg",            NumberXml( jppedi->pdValSeg, 2 ) )
   cXml += XmlTag( "vDesc",           NumberXml( jppedi->pdValDes, 2 ) )
   cXml += XmlTag( "vII",             NumberXml( jppedi->pdIIVal, 2 ) )
   cXml += XmlTag( "vIPI",            NumberXml( jppedi->pdIpiVal, 2 ) )
   cXml += XmlTag( "vPIS",            NumberXml( jppedi->pdPisVal, 2 ) )
   cXml += XmlTag( "vCOFINS",         NumberXml( jppedi->pdCofVal, 2 ) )
   cXml += XmlTag( "vOutro",          NumberXml( jppedi->pdValOut, 2 ) )
   cXml += XmlTag( "vNF",             NumberXml( jppedi->pdValNot, 2 ) )
   IF jppedi->pdImpVal != 0
      cXml += XmlTag( "vTotTrib",     NumberXml( jppedi->pdImpVal, 2 ) )
   ENDIF
   cXml += [</ICMSTot>]

Qual o bloco de partilha nos totais em txt?

Enviado: 05 Jul 2016 15:20
por JoséQuintas
Complemento:
Antes eu tinha feito pra gerar somente no caso de conter alíquotas, mas só tive clientes do Simples, e eles não precisavam informar nada.

Mas agora mesmo zerado é obrigado a informar a partilha, então tive que mexer nisso.
Acrescentei mais um indicador: Se calcula a partilha Sim, Não e Zerado.
Baseado nisso vai ser gerado o XML e os cálculos, então vai fazer pra Sim e Zerado.
Mesmo zerado precisa das alíquotas, o que fez minha rotina anterior perder validade.

Qual o bloco de partilha nos totais em txt?

Enviado: 05 Jul 2016 20:16
por JoséQuintas
Ainda não testei, mas tudo indica que é isso.

Código: Selecionar todos

   IF jppedi->pdDifCal $ "SZ"
      cTxt += "W04c" + SPED_SEPARADOR + NumberXml( nTotDifValF, 2 ) + SPED_SEPARADOR + hb_Eol()
      cTxt += "W04e" + SPED_SEPARADOR + NumberXml( nTotDesVal, 2 ) + SPED_SEPARADOR + hb_Eol()
      cTxt += "W04g" + SPED_SEPARADOR + NumberXml( nTotRemVal, 2 ) + SPED_SEPARADOR + hb_Eol()
   ENDIF

Qual o bloco de partilha nos totais em txt?

Enviado: 06 Jul 2016 08:51
por gilbertosilverio
Ola Quintas,

Segue as duas formas que uso, no emissor gratuito e no UniNfe...

Código: Selecionar todos


 IF xW04C > 0 .OR. xW04e > 0 .OR. xW04g > 0
    IF xEMISSOR <> [S]
       //          xW04e         xW04g       xW04c
       //     W04|vICMSUFDest|vICMSUFRemet|vFCPUFDest|
       LINHA:=[W04|]+ALLTRIM(STR(xW04e,12,2))+[|]+ALLTRIM(STR(xW04g,12,2))+[|]+ALLTRIM(STR(xW04c,12,2))+[|]
       AADD( aNFE, LINHA )
    ELSE  // para UniNFe
       LINHA:=[W04c|]+ALLTRIM(STR(xW04c,12,2))+[|]
       AADD( aNFE, LINHA )
       LINHA:=[W04e|]+ALLTRIM(STR(xW04e,12,2))+[|]
       AADD( aNFE, LINHA )
       LINHA:=[W04g|]+ALLTRIM(STR(xW04g,12,2))+[|]
       AADD( aNFE, LINHA )
    ENDIF
 ENDIF


Qual o bloco de partilha nos totais em txt?

Enviado: 06 Jul 2016 09:17
por JoséQuintas
Ok, bate com o que encontrei e postei.

Mas há casos onde os blocos são informados nos produtos com valor zerado.
Nesse caso não precisa também dos totais zerados?

Qual o bloco de partilha nos totais em txt?

Enviado: 06 Jul 2016 09:37
por gilbertosilverio
Quintas,

Para alguns estados, quando o item e isento, e necessário colocar em dados adicionais o valor de desoneração e a lei que deu origem a essa isenção, no nosso caso aqui na distribuidora como trabalhamos como produtos oncológicos, e todos são isentos de icms, quando ha venda para não contribuinte, temos que destacar os valores da DIFAL zerados e incluir a mensagem: "ICMS ISENTO CONF CONVENIO 162/94 NAS OPERACOES COM MEDICAMENTOS DESTINADOS AO TRATAMENTO DE CANCER VALOR DO ICMS DESONERADO R$", para não ficar retido no Posto Fiscal.

Ta uma torre de babel, cada SEFAZ, trata da sua maneira, retentem as mercadorias sem mais nem menos, no nosso sistema tem tantos IFs, pra poder atender cada UF, que e coisa de louco.

Ja tive um caso, que por causa de centavo, no pagamento de GNRE, a mercadoria ficou retida.

Estou deixando todo conforme eles vão solicitando, a grosso modo, não a uma regra unica, cada UF trata a sua maneira, coisa do BRASIL...