Qual o bloco de partilha nos totais em txt?

Fórum sobre desenvolvimento de software para atender as exigências da legislação fiscal e tributária (NFe, NFCe, NFSe, SPEED, Projeto ACBr, TEF, ECD, EFD, etc.)

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Qual o bloco de partilha nos totais em txt?

Mensagem 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>]
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Qual o bloco de partilha nos totais em txt?

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Qual o bloco de partilha nos totais em txt?

Mensagem 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
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
gilbertosilverio
Usuário Nível 3
Usuário Nível 3
Mensagens: 339
Registrado em: 18 Jan 2009 10:39
Localização: Ribeirao Pires - SP

Qual o bloco de partilha nos totais em txt?

Mensagem 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

GilbertoSilverio
gilbertosilverio@gmail.com
gilbertosilverio2003@yahoo.com.br
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Qual o bloco de partilha nos totais em txt?

Mensagem 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?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
gilbertosilverio
Usuário Nível 3
Usuário Nível 3
Mensagens: 339
Registrado em: 18 Jan 2009 10:39
Localização: Ribeirao Pires - SP

Qual o bloco de partilha nos totais em txt?

Mensagem 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...
GilbertoSilverio
gilbertosilverio@gmail.com
gilbertosilverio2003@yahoo.com.br
Responder