{******************************************************************************} { Projeto: Componentes ACBr } { Biblioteca multi plataforma de componentes Delphi para interação com equipa- } { mentos de Automação Comercial utilizados no Brasil } { } { Você pode obter a última versão desse arquivo na página do Projeto ACBr } { Componentes localizado em http://www.sourceforge.net/projects/acbr } { } { Esta biblioteca é software livre; você pode redistribuí-la e/ou modificá-la } { sob os termos da Licença Pública Geral Menor do GNU conforme publicada pela } { Free Software Foundation; tanto a versão 2.1 da Licença, ou (a seu critério) } { qualquer versão posterior. } { } { Esta biblioteca é distribuída na expectativa de que seja útil, porém, SEM } { NENHUMA GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU } { ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor} { do GNU para mais detalhes. (Arquivo LICENÇA.TXT ou LICENSE.TXT) } { } { Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto} { com esta biblioteca; se não, escreva para a Free Software Foundation, Inc., } { no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. } { Você também pode obter uma copia da licença em: } { http://www.opensource.org/licenses/lgpl-license.php } { } { Daniel Simões de Almeida - daniel@djsystem.com.br - www.djsystem.com.br } { Praça Anita Costa, 34 - Tatuí - SP - 18270-410 } { } {******************************************************************************} Agradecimentos: * Administradores: - Daniel Simões de Almeida - André Ferreira de Moraes * Desenvolvedores: - Daniel Simões de Almeida - Doação do componente ao projeto ACBr {****************************************************************************** |* ACBrSAT |* |* PROPÓSITO: Registro de Alterações ******************************************************************************} Símbolo : Significado [+] : Novo recurso [*] : Recurso modificado/melhorado [-] : Correção de Bug (assim esperamos) Data: 17/02/2016 -- ACBrECFVirtualSAT -- [+] Implementado o método "DescontoAcrescimoItemAnteriorVirtual" (Por: Amarildo) [-] Correção no método "VendeItemVirtual", para não considerar os descontos pois serão tratados em "DescontoAcrescimoItemAnteriorVirtual" (por: DSA) [*] DescontoAcrescimoItemAnteriorVirtual, modificado para considerar o Acréscimo em: "Det.Prod.vOutro" Data: 04/02/2016 -- pcnCFeR -- [-] Correção para leitura de Itens com numeração com zeros a esquerda Ex: "001" http://www.projetoacbr.com.br/forum/index.php?showtopic=27910 Data: 22/01/2016 -- ACBrSATExtratoESCPOS -- [-] Ajuste para que não seja impresso o "Dados para Entrega" se apenas o Nome do Consumidor é informado (o Nome do Consumidor já aparecerá no cabeçalho) (por: DSA) http://www.projetoacbr.com.br/forum/index.php?showtopic=27591 Data: 15/01/2015 -- ACBrSATExtratoFortes -- [*] Ajuste para que todo o cabeçaho do Cliche seja impresso como "memo", permitindo a quebra de linhas com nomes grandes (por: DSA) Data: 17/12/2015 -- ACBrSATExtratoESCPOS, ACBrSATExtratoFortes -- [+] Adicionada a Impressão no Nome do Contribuintem após o CPF/CNPJ no cabeçalho (se o mesmo não for vazio). De acordo com novo manual de orientações 2.15.04 (por: DSA) Data: 01/12/2015 -- ACBrSATExtratoESCPOS -- [*] Ajuste para impressão com suporte ao parâmetro "MaxLinhasBuffer" http://www.projetoacbr.com.br/forum/topic/26371-escpos-com-daruma-para-de-imprimir-extrato/ (por: Amarildo Lacerda) Data: 11/11/2015 -- pcnCFeW, pcnCFeCancW -- [-] Correção para não gerar a tag de cpf/cnpj do destinatario em branco (por: regys.silveira, DSA) Data: 27/10/2015 -- ACBrSATClass -- [*] Criação de constante para valor da página de código do UTF8 (por: DSA) -- ACBrSATExtratoESCPOS -- [-] Ajuste na impressão da Chave do Cancelamento para impressoras que suportam menos que 56 colunas em modo condensado [*] Ajuste para não imprimir a Chave sob o código de barras, se ACBrPosPrinter estiver configurado para exibir o código HRI (por: DSA) Data: 23/10/2015 -- ACBrSATExtratoESCPOS -- [+] Adicionada a propriedade "ImprimeChaveEmUmaLinha: TAutoSimNao default rAuto" Se "rAuto", tenta a Impressão do CODE128 tipo C se o Modelo de impressora suportar. (por: DSA) [*] Ajustes para correta impressão de CODE128 C ou B de acordo com as caracteristicas da Impressora [*] Ajustes para impressão do CODE128C em 1 ou 2 linhas no Cancelamento... (por: Luis Arruda) Data: 13/10/2015 -- ACBrSAT -- [+] Adicionado envio de CF-e por email. por: regys.silveira Data: 08/10/2015 -- ACBrSATExtratoESCPOS -- [-] Ajuste para impressão completa da chave, em Impressoras que suportam menos que 56 colunas em modo condensado (por: DSA) http://www.projetoacbr.com.br/forum/topic/25041-satcfe-fortes-report-com-a-dr700/ Data: 30/09/2015 -- ACBrSATExtratoESCPOS -- [*] http://www.projetoacbr.com.br/forum/topic/24717-nome-do-destinatario-cupom-sa Adicionado o nome do destinatário no endereço de entrega. por: regys.silveira Data: 17/09/2015 -- ACBrSATExtratoESCPOS -- [-] Ajuste para evitar A.V. em alguns Compiladores que não tratam corretamente ifThen.. (por: jrs.santos) http://www.projetoacbr.com.br/forum/index.php?showtopic=24416 Data: 12/09/2015 -- ACBrSATExtratoESCPOS, ACBrSATExtratoFortes -- [-] Correção para impressão do Numero do Cupom de Cancelamento no cabeçalho, ao invez do Número do cupom Cancelado http://www.projetoacbr.com.br/forum/index.php?showtopic=24294 Data: 05/09/2015 -- ACBrSAT -- (por: Amarildo Lacerda e DSA) [+] Adicionado o evento: OnEnviarDadosVenda: TACBrSATEventoDados [+] Adicionado o evento: OnCancelarUltimaVenda: TACBrSATEventoDados [+] Adicionado o evento: OnConsultaStatusOperacional: TACBrSATEvento [+] Adicionado o evento: OnExtrairLogs: TACBrSATEvento [+] Adicionado o evento: OnConsultarSAT: TACBrSATEvento [+] Adicionado o evento: OnConsultarNumeroSessao: TACBrSATEventoDados [+] Adicionado o tipo: TACBrSATEvento = procedure(var ARetorno: String) of object; [+] Adicionado o tipo: TACBrSATEventoDados = procedure (ADados: String; var ARetorno: String) of object; (Se a "ARetorno" for preenchido, as funções internas de ACBrSAT não serão chamadas) Data: 31/08/2015 -- ACBrECFVirtualSAT -- (por: Amarildo Lacerda) [-] Correção de Bug no Cancelamento de Itens e numeração da Sequencia dos Itens http://www.projetoacbr.com.br/forum/index.php?showtopic=23812 Data: 30/08/2015 -- ACBrECFVirtualSAT -- (por: Amarildo Lacerda) [-] O valor do desconto chega negativo, passar para o XML positivo http://www.projetoacbr.com.br/forum/index.php?showtopic=23812 Data: 28/08/2015 -- ACBrSATExtratoESCPOS -- (por: DSA) [*] Remoção de código para fixar propriedades do Cod.Barras CODE128 http://www.projetoacbr.com.br/forum/index.php?showtopic=21849 -- ACBrSAT -- [*] Ajustes de Hints de compilação Data: 27/08/2015 -- ACBrSATExtratoFortesFr -- (por: Paulo Eliana) [-] Correção no calculo do tamanho total da Página do Relatório http://www.projetoacbr.com.br/forum/index.php?showtopic=23519 Data: 22/08/2015 -- ACBrSATExtratoESCPOS -- (por: DSA) [*] Ajustes para remoção de espaços desnecessários no rodapé do cupom de Venda e Cancelamento Data: 18/08/2015 -- ACBrSAT -- [*] Refatoração para ler Retorno de cupom Cancelado em ConsultarNumeroSessao, e atribui-lo a ACBrSAT.CFeCanc http://www.projetoacbr.com.br/forum/index.php?showtopic=23737 Data: 13/08/2015 -- ACBrSATExtratoESCPOS -- (por: DSA) [-] Correção para respeitar PosPrinter.CortaPapel desabilitado Data: 04/08/2015 -- ACBrSATExtratoESCPOS -- (por: DSA) [*] Ajuste em "GerarObsContribuinte" de acordo com layout do manual de orientação http://www.projetoacbr.com.br/forum/index.php?showtopic=23360 Data: 01/08/2015 -- ACBrSATExtratoFortes -- (por: DSA) [-] Correção na exibição de Preview de Extrato de Cancelamento. -- ACBrSATExtratoESCPOS -- (por: DSA) [*] Ajuste para correta exibição do Cabeçalho de Itens em Impressoras com menos de 48 colunas Data: 30/07/2015 -- ACBrSAT -- (por: DSA) [-] Correção na composição do Nome do Arquivo de Envio de Cancelamento http://www.projetoacbr.com.br/forum/index.php?showtopic=23218 Data: 28/07/2015 -- ACBrSAT -- (por: DSA) [-] Atribuição de ACBrSAT1.Resposta não atribuia corretamente o valor de ACBrSAT1.Resposta.RetornoStr (ficava vazio) Data: 27/07/2015 -- ACBrSATExtratoESCPOS -- (por: DSA) [*] Modificado para usar as novas Tags de configuração de Cod.Barras e QRCode procurando manter os valores definidos pelo Usuário em TACBrPosPrinter Data: 26/07/2015 -- ACBrSAT -- (por: DSA) [*] Ajuste para permitir acentuação nos XMLs [-] Correção no Log de TrocarCodigoDeAtivacao [+] Adicionada a propriedade TACBrSATResposta.codigoDeErro [*] Rotina de tratamento de resposta modificada para tratar "codigoDeErro" em Vendas e Cancelamentos -- pcnCFe -- [+] Adicionada a propriedade "RetirarAcentos", default True -- pcnCFeCanc -- [+] Adicionada as propriedades: RetirarAcentos, IdentarXML, TamanhoIdentacao Data: 16/07/2015 -- ACBrSATExtratoFortes -- [*] Ajuste para Razão Social ser distribuida em várias linhas (memo) (por: DSA) -- ACBrECFVirtualSAT -- [-] Correção para atribuição do Valor de Desconto sem valor negativo (por: Amarildo Lacerda) Data: 12/07/2015 -- ACBrSATExtratoFortes -- [-] Correção de grafia (CUMPOM) [-] Correção da exibição do numero do Extrato de cancelamento (por: Rick) http://www.projetoacbr.com.br/forum/index.php?showtopic=22813 Data: 08/07/2015 -- ACBrSAT -- (por: DSA) [*] Modificação para que a chamada ao método ConsultarNumeroSessao carregue dados do XML da Venda em CFe caso a resposta seja 06000 Data: 06/07/2015 -- ACBrSAT -- (por: DSA) [*] Correção para que Config e ConfigArquivos gravem seus dados no DFM/LFM Data: 04/07/2015 -- ACBrSAT -- (por: DSA) [*] Propriedades removidas: ACBrSAT.SalvarCFes; ACBrSAT.PastaCFeVenda; ACBrSAT.PastaCFeCancelamento [+] Adicionada Propriedade ConfigArquivos: TACBrSATConfigArquivos [*] Rotina CancelarUltimaVenda modificada para usar novas propriedades de ConfigArquivos [*] Rotina EnviarDadosVenda modificada para usar novas propriedades de ConfigArquivos [*] Rotina TesteFimAFim modificada para usar novas propriedades de ConfigArquivos [+] Adiconado os métodos: function CalcCFeNomeArq( NomeArquivo: String = ''; Sufixo: String = ''): String; function CalcCFeCancNomeArq( Sufixo: String = ''): String; [*] Nome de Arquivo CFe modificado para ficar de acordo com a Especificação Tecnica do SAT: 'AD'+chave [*] Nome de Arquivo CFeCanc modificado para ficar de acordo com a Especificação Tecnica do SAT: 'ADC'+chave -- ACBrSATClass -- [+] Adicionado o Tipo: "TACBrSATConfigArquivos" contendo: property SalvarCFe: Boolean default false; property SalvarCFeCanc: Boolean default false; property SalvarEnvio: Boolean default false; property SepararPorCNPJ: Boolean default False; property SepararPorMes: Boolean default False; property PastaCFeVenda: String default ''; property PastaCFeCancelamento: String default ''; property PrefixoArqCFe: String default 'AD' property PrefixoArqCFeCanc: String default 'ADC'; -- pcnCFe -- [*] CFe.Emit.CNPJCPF modificado para: CFe.Emit.CNPJ (de acordo com a Especificação) [+] Adicionada a propriedade: "NomeArquivo: String", que conterá o nome do Arquivo CFe Salvo ou Lido -- pcnCFeCanc -- [*] CFeCanc.Emit.CNPJCPF modificado para: CFeCanc.Emit.CNPJ (de acordo com a Especificação) [+] Adicionada a propriedade: "NomeArquivo: String", que conterá o nome do Arquivo CFeCanc Salvo ou Lido Data: 03/07/2015 -- ACBrSATExtratoFortes -- (por: DSA) [*] Modificação nas Linhas do Endereço para exibição em 2 linhas -- ACBrSAT -- [+] Adicionada as funções: function MotivoInvalidoVenda(cod: integer): String; function MotivoInvalidoCancelamento(cod: integer): String; (por: Ricardo Lopes) http://www.projetoacbr.com.br/forum/index.php?showtopic=22670 Data: 30/06/2015 -- pcnCFeW -- [-] Adicionada gravação do Grupo "PISAliq" para o CST=05 [-] Adicionada gravação do Grupo "COFINSAliq" para o CST=05 http://www.projetoacbr.com.br/forum/topic/22344-venda-de-produtos-com-cst-piscofins-05/ Data: 29/09/2015 -- ACBrSAT -- [-] Ajuste para computar novo CFeCanc baseado no CFe em memória, quando chamar CancelarUltimaVenda (sem parâmetros) http://www.projetoacbr.com.br/forum/topic/22495-correção-cancelamento-acbrsat/ [*] Revisão de Suporte a NOGUI (para compilação em modo CONSOLE) Data: 23/06/2015 -- pcnCFe -- [-] Correção de Memory Leak (por: Mauricio) http://www.projetoacbr.com.br/forum/index.php?showtopic=22355 -- ACBrSAT -- [+] Adição das funções de Unit function MensagemCodigoRetorno(CodigoRetorno: Integer): String; function MotivocStat(cStat: Integer): String; (por: André Angelucci) http://www.projetoacbr.com.br/forum/index.php?showtopic=22194 [-] Correção de List Index Out of bounds em: TACBrSATResposta.SetRetornoStr (por: DSA) -- ACBrSATExtratoESCPOS -- [+] Adicionada as propriedades: property ImprimeEmUmaLinha: Boolean default True property ImprimeDescAcrescItem: Boolean default True property UsaCodigoEanImpressao: Boolean default False Data: 16/06/2015 (por: DSA) -- pcnCFeR -- [*] Modificação para ligar o Flag "EhCombustivel" quando produto tiver "indRegra = 'T'" [-] Correção de Bug na detecçao das aspas na leitura de XML Data: 28/05/2015 (por: DSA) -- ACBrSAT -- [-] Corrigido Bug na leitura de Estado do SAT, quando o retorno vem em Numeral e não em String (TACBrSATEstadoOperacao) Data: 19/05/2015 (por: DSA) -- ACBrSAT -- [+] Adicionado o evento OnGetNumeroSessao, que permite que a aplicação atribua (ou leia) o numero de sessão para o comando a ser enviado. Data: 13/05/2015 -- ACBrSAT -- (por: DSA) [*] pcnCFeW, revisado para respeitar os valores máximos e mínimo da Especificaçao atual Data: 08/05/2015 -- ACBrSAT -- (por: DSA) [*] Método: CFe/CFeCanc.GetXMLString(ApenasTagsAplicacao: Boolean): AnsiString; renomeado CFe/CFeCanc.GerarXML(ApenasTagsAplicacao: Boolean): AnsiString; para melhor compreensão do uso do mesmo. [+] Adicionada a propriedade: CFe/CFeCanc.XMLOriginal: AnsiString (readonly) que contem o XML retornado pelo SAT ou atribuido a CFe/CFeCanc.AsXMLString [*] GetXMLString e SetXMLString modificados para fazer uso do campo XMLOriginal, previamente atribuido ao componente, evitando chamadas desnecessárias a rotina de geração de XML [*] Método Cfe.SaveToFile modificado para sempre salvar o valor de AsXMLString (que leva em consideração o conteudo de XMLOriginal) Data: 07/05/2015 -- ACBrSAT -- (por: julioaguilar) [-] Correção na geração do XML, para CST = 49 e 99 http://www.projetoacbr.com.br/forum/index.php?showtopic=21491 Data: 24/03/2015 -- ACBrSAT -- (por: DSA) [-] Ajuste para SAT Sweda, que insere CRLF no retorno do XML em Base64 Data: 23/03/2015 -- ACBrSAT -- (por: DSA) [-] Ajuste para não gerar: Tags de ISS caso: CFe.Emit.IM for vazio ou CFe.Emit.cRegTribISSQN = RTISSNenhum Data: 16/03/2015 -- ACBrSAT -- [+] Adicionada a propriedade: CFe.Det[i].Prod.EhCombustivel: Boolean (defaul False) Se para a mesma for atribuida "True": - CFe.Det[i].Prod.vUnCom será "tcde3" caso contrário "tcde2" e - CFe.Det[i].Prod.indRegra será "irTruncamento" caso contrário "irArredondamento" [-] Removido "workaround" aplicado em 02/10/2014 para equipamentos que usam o prefixo "Cfe" no cancelamento Data: 04/02/2015 -- ACBrSAT -- (por: DSA) [*] Aplicado workaround para retorno incompleto do Emulador de SAT do Fisco no comando: ConsultarStatusOperacional Data: 02/01/2015 [*] correção ecf virtual SAT por: Juliomar Marchetti Data: 21/12/2014 -- ACBrSAT -- (por: DSA) [+] Adicionada nova propriedade "Status: TACBrSATStatus", que conterá os valores já tratados da resposta ao método: "ConsultarStatusOperacional" Data: 20/12/2014 -- ACBrSAT -- (por: DSA) [*] Mecanismo de Gravação de Log modificado, para permitir que a aplicação trate a gravação das linhas por si.. [*] TACBrSAT agora passa a descender de TACBrComponent [+] Adicionada a propriedade: Rede : TRede, para permitir gerar e manipular os XMLs para configuração da Interface de Rede do SAT [*] ConfigurarInterfaceDeRede modificado para caso não receba o conteudo de um XML como parâmetro de entrada, irá gerar um XML com os valores atribuidos a ACBrSAT.Rede [*] Metodo TesteFimAFim modificado para salvar o conteudo do XML de resposta em ACBrSAT.CFe, no caso de sucesso. Data: 22/10/2014 (por: DSA) -- ACBrSAT -- [-] Metodo CFe.Clear e CFeCanc.Clear não limpavam a sessão de assinatura http://www.projetoacbr.com.br/forum/index.php?showtopic=18266 Data: 07/10/2014 (por: DSA) -- ACBrSAT -- [*] Metodo CFe.SaveToFile modificado para: SaveToFile(AFileName : String; ApenasTagsAplicacao: Boolean = false): boolean; [*] Adicionada verificação na Impressão de Extrato, se existe CFe ou CFeCanc carregado na memória Data: 06/10/2014 (por: DSA) -- ACBrSAT -- [*] Nome do arquivo XML da Venda salvo modificado de: PastaCFeVenda + Chave + '-cfe.xml', para: PastaCFeVenda + 'CFe' + Chave + '.xml' [-] Correção de encoding em alguns Exceptions Data: 03/10/2014 -- ACBrSAT -- [-] Adicionado a uses StrUtils para resolver o problema no delphi da falta da função LeftStr na unit ACBrSAT.pas Data: 02/10/2014 (por: DSA) -- ACBrSAT -- [-] Ajuste no método CancelarUltimaVenda, de acordo com a especificação 2.11.4, prefixo de "chCanc" deve realmente ser informado como "CFe" e não "Cfe" [*] Aplicado workaround para equipamentos que usam o prefixo "Cfe" e ajustar o XML e Chave, em caso de erro na tentativa de cancelamento. Data: 01/10/2014 (por: DSA) -- ACBrSAT -- [-] Correção no método de CancelarUltimaVenda, prefixo de "chCanc" deve ser informado como "Cfe" e não "CFe" [+] Adicionada as propriedades: - SalvarCFes: Boolean (opção para salvar XMLs enviados e recebidos do SAT) - PastaCFeVenda: String (Path para salvar XMLs de Venda) - PastaCFeCancelamento: String (Path para salvar XMLs de Cancelamento) -- ACBrSATExtratoFortes -- [-] Ajuste para não exibir Warning de numero de versão do Fortes no Delphi [*] Compatibilização da Versão Delphi com as modificações recentes -- SATTeste -- [+] Ajustes no Demo para as novas propriedades [*] Compatibilização da versão Delphi com a versão Lazarus (novos recursos) Data: 31/09/2013 (por: DSA) -- ACBrSAT -- [*] Adicionada sobrecarga no método: ExtrairLogs procedure ExtrairLogs( NomeArquivo : String ); overload; procedure ExtrairLogs( AStringList : TStrings ); overload; procedure ExtrairLogs( AStream : TStream ); overload; Data: 30/09/2013 (por: DSA) -- ACBrSAT -- [*] Modificação no método "ExtrairLogs" para: ExtrairLogs(NomeArquivo: String) Arquivo de Log será criado com o valor do retorno convertido de Base64 para AscII [*] Remoção do método: DesligarSAT, pois o mesmo foi retirado da especificação: 2.11.4 -- ACBrSATExtratoFortes -- [+] Adicionado a propriedade: "PrinterName", para permitir atribuir a impressora padrão [*] Tentativa de ajuste para correção de impressão de relatório em bobina com muitos itens (Também requer ajuste do tamanho da página da Impressora no Windows) Data: 23/09/2014 (por: DSA) -- ACBrSAT -- [*] Remoção da propriedade "PathDll" [+] Adição da propriedade "NomeDll", que deve conter o Path e Nome da DLL (alguns fabricantes não usam o nome "SAT.DLL") [*] Adicionada verificação de existência do nome da DLL antes da carga [*] Ignora erro de leitura de xSAT_DesligarSAT, pois alguns fabricantes não implementam esse método Data: 20/09/2014 (por: DSA) -- ACBrSAT -- [+] Adição de um novo modelo com carga de DLL dinâmica em stdcall [*] Adicionado método para descarregar a DLL quando desativar Data: 26/08/2014 (por: DSA) -- ACBrSATExtratoFortes -- [+] Adicionadas propriedades de controle de Largura e Margens [*] Ajustes no layout de impressao para suportar mudanças de Margens dinâmicas -- SATTeste - Lzarus -- [*] Modificações para permitir a seleção de Tipo de Extrato (Fortes, EscPos) e ajuste de Margens Data: 29/06/2014 (por: DSA) [-] Modificada a assinatura dos metodo AtivarSAT, para utilização de AnsiString, a fim de evitar erros nas IDEs do Delphi XE ou superiores Data: 24/02/2014 (por: DSA) [-] Modificada a assinatura dos metodo AssociarAssinatura, TrocarCodigoDeAtivacao para utilização de AnsiString, a fim de evitar conflitos com algumas IDEs [-] Modificada a assinatura dos eventos: OnGetcodigoDeAtivacao e OnGetsignAC para utilização de AnsiString, a fim de evitar conflitos com algumas IDEs [-] Modificada a propriedade: signAC e codigoDeAtivacao para utilização de AnsiString, a fim de evitar conflitos com algumas IDEs [-] Métodos: CFe.GetAsXMLString e CFeCanc.GetAsXMLString modificados para retornar dados em AnsiString [*] ACBrSAT.CancelarUltimaVenda modificado para conter em ACBrSAT1.CFeCanc, o XML recebido pelo SAT, no caso de sucesso [-] ACBrSAT.EnviarDadosVenda corrigido para retornar a resposta do SAT [*] Refactoring em ACBrSAT.EnviarDadosVenda [*] Ajustes nos Demos em Delphi e Lazarus para contemplar as modificações [-] Correção em TACBrSATResposta.SetRetornoStr para tratar corretamentes campos vazios [-] Método: TCFeR.LerXml modificado para ler corretamente os Atributos: infCFe.ID, infCFe.versao, infCFe.versaoSB, infCFe.versaoDadosEnt [-] Corrigido bug de Loop infinito em TCFeR.LerXml na leitura de "obsFiscoDet" [-] Corrigido bug em TCFeW.GerarXml, atributo "Id" da Tag "infCFe" era gerado com aspas abertas [-] Corrigido bugs em PCN2.TLeitor.rAtributo, onde valores inválidos eram retornados quando o Atributo não existia [-] Aplicada correção em pcnCFeW, campo "pPIS" e "pCOFINS" estavam sendo Gerados e Lidos com duas decimais, quando o correto são quatro. http://www.projetoacbr.com.br/forum/index.php?/topic/14289-geração-xml-gerardetimpostocofins -- ACBrSATExtratoESCPOS -- [-] Nétodo TACBrSATExtratoESCPOS.ImprimirExtratoCancelamento, não enviava comandos gerados para a Impressora (por: Larissa) http://www.projetoacbr.com.br/forum/index.php?/topic/14395-impressão-extrato-cancelamento