A versão 2017/02 foi liberada em 03 de Novembro de 2017.
Esta versão é compatível com a CTeLibrary.dll versão 3.0.4.0 (CTeLibrary_v3.04.zip).
Alterações para atender o Manual de Orientações do Contribuinte - Versão 3.00
- Foram incluídos duas novas funções específicas para o CT-e OS:
- Todos os pacotes da CTeLibrary foram revisados para geração e consulta operando na versão 3.00.
Alterações para atender a NT 2017/001
- Todos os pacotes da CTeLibrary foram revisados para antender a NT.
Alterações para atender a NT 2016/002
- A função CTeGeraDACTe foi atualizada para atender a NT. Desenvolvedores que utilizam soluções de terceiros para geração do DACTe, devem verificar com o suporte dos respectivos fornecedores.
Alterações para atender a NT 2016/001
- Nenhuma alteração necessária na CTeLibrary. O desenvolvedor deve verificar se precisará alterar algo em sua aplicação consultando os detalhes da NT.
Suporte ao DataFlex
- Foi adicionado arquivo .sws da versão 19.0 e a CTeLibrary agora passa a ser suportada na versão 19.0 do DataFlex também.
Melhorias
- Adicionado suporte ao modal ferroviário na função CTeLerXML.
- Foi adicionada validação para o modal dutoviário na função CTeGeraXML.
- Adicionado suporte ao modal aquaviário na função CTeLerXML.
- A documentação da função CLeEnviar foi alterada para indicar que ela é obsoleta, visto que a Capa de Lote Eletrônico foi descontinuada com o advento do MDF-e.
Woskspace de exemplo
- A workspace de exemplo foi alterada para suportar o modal dutoviário.
- A workspace de exemplo teve todas as telas, pacotes e tabelas alterados para gerar o XML da versão 3.00 do CT-e.
- Todas as tabelas e campos que eram específicos da versão 2.00 do XML e não existem mais na versão 3.00 foram removidos da Workspace de exemplo.
- Todos os labels de objetos que possuem tags correspondentes no XML foram alterados para ficarem com o mesmo nome da tag do XML, facilitando assim que o desenvolvedor os identifique.
- Todas as telas e tabelas que existiam no exemplo para mostrar a utilização da função CLeEnviar foram removidos, visto que a função é obsoleta.
- A workpace de exemplo foi migrada para a versão 19.0 do DataFlex.
Correções
- O pacote CTeEnviaCCe.pkg foi corrigido, pois não era autônomo e ao compilar um projeto de teste apenas com este pacote, ocorria erro.
- Correção no tipo e nome da tag inDoc do grupo infCTeNorm.docAnt.emiDocAnt.idDocAnt.idDocAntPap para String e snDoc, pois o schema permite valores com tamanho 30, o que não é comportado pelo tipo Integer.
- Correções na função CTeGerarXML:
- Correção na geração de CT-e multimodal, que causava erro de conversão de tipo de dados ilegal.
- Correção na geração das tags infCte.infCTeNorm.docAnt.emiDocAnt.idDocAnt: depois de gerar os grupos idDocAntPap e idDocAntEle, os identificadores dos nós não estavam sendo destruídos, mantendo os objetos em memória após a geração do arquivo.
- A tag infCte.infCTeNorm.infDoc.infOutros.dEmi estava sendo gerada sempre, mas como é opcional, a função foi alterada para só gerar esta tag se ele tiver valor informado.
- A tag infCte.infCTeNorm.infDoc.infNF.infUnidTransp.qtdRat estava sendo gerada sempre. Como é opcional, a função foi alterada para só gerar esta tag se ela tiver valor maior que zero.
- Correção na geração da tag infCte.infCTeNorm.infDoc.infNF.infUnidTransp.lacUnidTransp.nLacre. A função estava gerando vários nós nLacre dentro de um único lacUnidTransp, quando o correto é gerar um único nLacre dentro de cada lacUnidTransp, que pode se repetir várias vezes dentro do nó infUnidTransp.
- Correção na geração do grupo infCte.finCTeNorm.infDoc.infNF.infUnidTransp. A função estava gerando um único nó infUnidTransp, mesmo que existissem vários elementos no array.
- Correção na geração do grupo infCte.finCTeNorm.infDoc.infNF.infUnidCarga. A função estava gerando um único nó infUnidCarga, mesmo que existissem vários elementos no array.
- Correção na geração da tag infCte.infCTeNorm.infDoc.infNF.infUnidCarga.lacUnidCarga.nLacre. A função estava gerando vários nós nLacre dentro de um único lacUnidCarga, quando o correto é gerar um único nLacre dentro de cada lacUnidCarga, que pode se repetir várias vezes dentro do nó infUnidCarga.
- A tag infCte.infCTeNorm.infDoc.infNF.infUnidCarga.qtdRat estava sendo gerada sempre. Como é opcional, a função foi alterada para só gerar esta tag se ela tiver valor maior que zero.
- Correção do campo sinfServVinc_infCTeMultimodal_chCTeMultimodal dentro da estrutura tCTe_infCTeNorm. Este campo estava definido como uma string simples, mas é um vetor, pois pode se repetir várias vezes no XML.
- Correção na função CTeCancelar que não estava gerando a tag dhEvento no formato correto, quando o desenvolvedor não informava a variável sdhEvento.
- Correções na função CTeLerXML:
- Correção na leitura da tag vCargaAverb que gerava erro quando era informada.
- Correção para ler tag indGlobalizado do grupo "ide" pois não estava carregando o valor desta tag, quando informado no XML.
- Foi corrigida a leitura do nó "infCTeNorm.infServVinc.infCTeMultimodal.chCTeMultimodal", pois este campo havia sido definido como string simples originalmente, mas é um vetor.
- Foi corrigido erro "O nó infCteComp não possui elemento vPresComp!" que ocorria ao ler um XML com o nó infCteComp.
- Foi corrigida para ler a tag IEST do grupo ide, que foi introduzida na versão 3.00 do XML.