{******************************************************************************} { Projeto: Componentes ACBr } { Biblioteca multiplataforma 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@projetoacbr.com.br - www.projetoacbr.com.br} { Rua Coronel Aureliano de Camargo, 963 - Tatuí - SP - 18270-170 } {******************************************************************************} {****************************************************************************** |* ACBr |* |* PROPÓSITO: Registro de Alterações ******************************************************************************} Símbolo : Significado [+] : Novo recurso [*] : Recurso modificado/melhorado [-] : Correção de Bug (assim esperamos) 10/05/2024 -- ACBrETQ -- [+] Corrigido a função GerarStreamBase64 para evitar falhas. por: Daniel Morais Infocotidiano 10/05/2024 -- ACBrETQ -- [+] Criado a função para retornar a etiqueta GerarStreamBase64 por: Daniel Morais Infocotidiano 16/02/2024 -- ACBrVirtualPrinter -- [+] Adicionado evento para capturar a linha que será impressa antes da decodificação por: Régys Silveira 01/08/2023 -- ACBrBALToledo -- [*] Correção de AV em retorno vazio no ProtocoloP03 https://www.projetoacbr.com.br/forum/topic/72812-access-violation-acbrmter-balan%C3%A7a-prix-fit-3/ Por: William F. L. / Renato Rubinho 25/07/2023 -- ACBrWinUSBDevice -- [*] Melhoria para usar FrendlyName, quando Fabricante for igual, ao usado na Tabela VID/PID interna do ACBr (por: DSA) 07/07/2023 [*]TK-3919 ACBrCHQBematech- Removido verificação em linha devido a incompatibilicade com a impressora "DP20 – Plus Document Printer" https://www.projetoacbr.com.br/forum/topic/72010-teste-acbrchq/ Por : Sistema Auditor Verificado: Daniel Morais 27/02/2023 -- ACBrBALSelfCheckout -- [+] Incluída nova classe para modelos de balança utilizarem caso também possuam os novos comandos -- ACBrBALToledo -- [*] Alterado para herdar da nova classe TACBrBALSelfCheckout Por: Elias César 27/02/2023 -- ACBrBALToledo -- [*] Alteração para converter o retorno de resposta de balanças com pesagem maior que 30kg [+] Inclusão de novos comandos 'AtivarTara', 'DesativarTara' e 'ZerarDispositivo' (Incluídos apenas na classe TACBrBALToledo) Por: Warquia Pereira e Daniel Infocotidiano 22/02/2023 -- ACBrBAL* -- [+] Adicionado o evento OnGravarLog (por: DSA) 27/01/2023 [*] TK-3548 Alterar Exceção do ACBrDevice Bluetooth quando não há dispositivo por : Victor H Gonzales - Pandaaa 19/01/2023 -- ACBrDevice -- [+] Adicionado o método: procedure AcharPortas(const AStringList: TStrings); que procura por Portas: USB, Serial, RAW e Bluetooth (conforme plataforma) [+] Adicionado os métodos: function PedirPermissoes: Boolean; (que chama as permissões do Dispositivo ativo) function PedirPermissoesBlueTooth: Boolean; (que chama as permissões do Dispositivo Bluetooth (usado em Android)) -- ACBrDeviceClass -- [+] Adicionado o método: function PedirPermissoes: Boolean; virtual; (que pode ser sobreescrito nas classes filhas, se necessário) -- ACBrDeviceBlueTooth -- [*] Método "PedirPermissoes", modificado para ser sobrecarga da classe mãe. [*] Método "PedirPermissoes", modificado para lembrar da última resposta de sucesso, e evitar pedir permissões de forma repetitiva. [*] Método "PedirPermissoes", modificado para ficar compatível com Android 12 http://www.projetoacbr.com.br/forum/index.php?showtopic=70435 (por: DSA e Andrei Ricardo) 03/01/2023 -- ACBrBAL, ACBrBALUranoUDC -- [+] Inclusão do novo modelo ACBrBALUranoUDC; Por: -=MarcoS=- 14/10/2022 -- ACBrPosPrinterAndroidHelper, ACBrPosPrinterGEDI, ACBrPosPrinterElginE1Lib -- [*] Refactoring para reaproveitamento de códigos em comum -- ACBrPosPrinterTecToySunmiLib -- [+] Adição de nova Classe Externa para ACBrPosPrinter. Compatibilizando o Serviço de impressão da Sunmi com as Tags do ACBrPosPrinter (por: DSA) 13/10/2022 -- ACBrPosPrinter, ACBrEscPosEpson, ACBrEscBematech, ACBrEscDaruma, ACBrEscCustomPos, ACBrEscDatecs, ACBrEscDiebold, ACBrEscElgin, ACBrEscPosStar, ACBrEscSunmi -- [*] Refactoring e Padronização na rotina "LerInfo" -- ACBrPosPrinter -- [*] Ajuste na criação para definição de um tempo padrão para: ACBrPosPrinter.Device.TimeOutMilissegundos em 300 [*] Ajuste no metodo "TACBrPosPrinter.TxRx", para usar o TimeOut definido em: "ACBrPosPrinter.Device.TimeOutMilissegundos" [*] Método "TxRx", modificado, para receber como Default o parâmetro "TimeOut=0", situação onde será utilizado o valor de "Device.TimeOutMilissegundos" [*] Método "TACBrPosPrinter.Zerar", modificado para desligar Flag de "FonteB" -- ACBrEscPosStar -- [-] Método "ComandoImprimirImagemRasterStr", modificado para gerar imagens sem a quebra de linha [+] Adicionada sobrecarga nos métodos: - procedure LerStatus(var AStatus: TACBrPosPrinterStatus); - function LerInfo: String; -- ACBrEscSunmi -- [-] Comando "Zera", modificado, para resetar letra em "Fonte A" [-] Remoção de Tags não suportadas "cTagLigaCondensado", "cTagDesligaCondensado" [-] Remoção de método "Configurar", que forçava CodePage em UTF8. ( Use sunmi-cloud-printer-setup.exe, para ajustar CodePage ) [*] Método "TACBrEscSunmi.ComandoFonte", ajustado para processar Tag "FonteB" [-] Método "TACBrEscSunmi.ComandoPaginaCodigo", modificado para desligar Caracteres chineses e informar a Pagina de Código (por: DSA) 12/10/2022 -- ACBrPosPrinter -- [*] Ajuste em "TACBrPosPrinter.TxRx", para permitir leitura de Dados sem o envio de algo -- ACBrPosPrinterElginE1Lib, ACBrPosPrinterElginE1Service, ACBrPosPrinterGEDI -- [*] Correção de quebras de linhas nos fontes -- ACBrPosPrinterElginE1Lib -- [-] Correção de A.V. em "TE1LibPrinter.FinalizarImpressao", quando não havia uso da classe -- ACBrWinUSBDevice -- [*] Ajuste no método "TACBrUSBWinDevice.GetDeviceName", para sempre preferir o Nome definido em "ACBrUSBID.ini", ao invez do "FrendlyName do dispositivo USB -- ACBrUSBID -- [*] Ajuste no modelo "Sunmi, NT210", para deixar a escolha do protocolo livre (por: DSA) 12/09/2022 -- ACBrBAL, ACBrBALClass, ACBrBALToledo -- [+] Inclusão de função para envio do preço/kg para balança. (Utilizado para mostrar no visor da balança o Total do Produto pesado) Por: Athos Desenvolvimento 01/08/2022 -- ACBrETQZplII -- [*] Alteração para corrigir o carregamento de imagem https://www.projetoacbr.com.br/forum/topic/68234-problema-ao-carregar-imagem-no-acbretq/ Por: Elias César 21/07/2022 -- ACBrLCB -- [+] TK-2908 Adicionado a propriedade de prefixo Por: Pedro E. Braga 13/07/2022 -- ACBrEscSunmi -- [+] Adicionada informação de Tags não suportadas pela impressora, como Impressão em modo Condensado e Programação de Logotipo [*] Melhoria na leitura de Informações para funcionamento por TCP (por: DSA) 08/07/2022 -- ACBrPosPrinter -- [+] Adicionado o modelo "ppEscSunmi" [*] Ajuste em "TACBrPosPrinter.Imprimir", para não adicionar uma quebra de Linha após a última linha do relatório, pois isso pode atrapalhar a detecção de Fim de relatório em alguns equipamentos -- ACBrEscSunmi -- [+] Novo protocolo de Impressão, para a linha de impressoras da Sunmi -- ACBrUSBID.ini -- [+] Adicionado fabricante 324f=Sunmi [+] Adicionada a Impressora 00d2=NT312, da Sunmi -- ACBrEscPosEpson -- [*] Remoção de variável não utilizada "FInfo" -- ACBrEscPosStar -- [+] Adicionado suporte ao comando de Abertura de Gaveta 05/05/2022 -- ACBrWinUSBDevice -- [+] Adicionado o método "Purge", para limpar dados enviados e recebidos da USB -- ACBrDeviceWinUSB -- [+] Implementado o método "TACBrDeviceWinUSB.Limpar" -- ACBrPosPrinter -- [*] Método "TACBrPosPrinter.TxRx", TimeOut default, diminuido de 500 para 300 [*] Método "TACBrPosPrinter.ConfigurarRegiaoModoPagina": Adicionado Parâmetro para permitir definir a direção do texto: function ConfigurarRegiaoModoPagina(AEsquerda, ATopo, AAltura, ALargura: Integer; ADirecao: TACBrPosDirecao = dirEsquerdaParaDireita -- ACBrUSBID.ini -- [+] Adicionada identificação (VID/PID) de Impressora da Sunmi NT210 -- ACBrDeviceBlueTooth -- [-] Corrigido problema de vazamento de memória, caso a chamada ao método BlueToothSocket.Connect falhe (por: DSA) 22/04/2022 -- ACBrETQEpl2 -- [*] Correçao em "AjustarNomeArquivoImagem", para calcular nomes com no máximo 8 caracteres, conforme o Manual (por: DSA) 20/04/2022 -- ACBrETQZplII -- [*] Ajustes nos métodos de Carregamento e impressão de Imagem, para considerar a propriedade "LimparMemoria", e carregar a imagem em uma área volátil ou não -- ACBRETQ, ACBrPosPrinterElginE1Lib, ACBrPosPrinterGEDI -- [*] Ajustes para usar novas Units de ACBrUtil (por: DSA) 31/03/2022 -- ACBrETQ, ACBrETQClass -- [*] Metodo "ConverterUnidade" modificado para ser Publico na Unit e independente da Classe -- ACBrETQ, ACBrETQClass, ACBrETQEpl2, ACBrETQEscLabel, ACBrETQPpla, ACBrETQZplII -- [*] Remoção de Hints [+] Implementado o método: "ApagarImagem(const NomeImagem: String = '*');" Se NomeImagem for '*', apaga todas as Imagens (por: DSA) 27/03/2022 -- Diversos -- [*] Remoção de Warnings e Hints. Por: Waldir Paim 25/03/2022 -- ACBrWinUSBDevice -- [*] Remoção de Warnings e Hints. Por: Waldir Paim Data: 21/03/2022 -- ACBrDevice, ACBrETQClass -- [*] Os tipos abaixo, foram movidos de "ACBrDevice.pas" para "ACBrETQClass.pas" TACBrETQUnidade, TACBrETQDPI, TACBrETQOrientacao, TACBrETQBarraExibeCodigo, TACBrETQBackFeed, TACBrETQOrigem -- ACBrETQ, ACBrETQClass -- [+] Adicionado os métodos: procedure DefinirCor(FrenteCor: Cardinal; FrenteOpacidade: Byte; FundoCor: Cardinal; FundoOpacidade: Byte); overload; procedure DefinirCor(FrenteR, FrenteG, FrenteB, FrenteOpacidade: Byte; FundoR, FundoG, FundoB, FundoOpacidade: Byte); overload; procedure DefinirCorPadrao; - Para permitir mudar a Cor de Impressão de Frente e Fundo de Objetos como Texto, Caixa, Linhas, Códigos, etc Usado apenas no modelo: "EscLabel" [+] Adicionado o método: procedure DefinirDimensoes(Largura, Altura: Integer; EspacoEntreEtiquetas: Integer = -1; EspacoEsquerda: Integer = -1); - Para permitir definir as Dimensões de uma Etiqueta, em um formulário sem Cortes, Gaps ou BlackMark Usado apenas no modelo: "EscLabel" [+] Adicionada a propriedade: "Guilhotina: Boolean default False;" Se for True, acionará a guilhotina da Impressora, após o término da Impressão, (quando disponível) [+] Adicionada a propriedade: "DeteccaoEtiqueta: TACBrETQDeteccaoEtiqueta" (mdeNone, mdeGap, mdeBlackMark), default mdeNone. -- ACBrETQClass -- [+] Adicionados novos Métodos Protegidos (Protected) function ComandoDeteccao: AnsiString; virtual; function ComandoGuilhotina: AnsiString; virtual; function ComandoDimensoes: AnsiString; virtual; [*] Método "ComandosIniciarEtiqueta", modificado para adicionar a lista de comandos, chamadas para: ComandoDeteccao, ComandoGuilhotina, ComandoDimensoes -- ACBrETQEpl2, ACBrETQPpla, ACBrETQZplII -- [+] Adicionado suporte ao comando "ComandoGuilhotina" -- ACBrETQEscLabel -- [+] Adicionado suporte aos comandos: "ComandoCor", "ComandoDeteccao" e "ComandoDimensoes" -- ACBrETQZplII -- [*] Adicionada sobrecarga de alguns métodos, movendo-os em Protected, para permitir a sobrecarga em TACBrETQEscLabel (por: DSA) Data: 16/03/2022 -- ACBrETQ, ACBrETQClass -- [+] Adicionado o modelo "etqEscLabel", que implementa a comunicação do Protocolo Esc/Label da Epson, baseado do Zpl2 da Zebra [*] Método "ImprimirCaixa", modificado para permitir informar Parâmetro com o angulo dos Cantos. Canto: Integer = 0. Suporta Valores 0 a 8 (0 sem arredondamento). Suportado apenas em ZPL2 e EscLabel [*] Método "CarregarImagem", modificado para retornar por referência, o Nome do arquivo da Imagem, como armazenado na memória da Impressora -- ACBrETQZplII -- [*] Método "ComandoImprimirCaixa", modificado para processar o parâmeto recebido em "Canto", para permitir caixas arredondadas [*] Métodos "ComandoImprimirImagem" e "ComandoCarregarImagem" refatorados, para melhor detecção do Tipo e suportar arquivos "PNG" mono -- ACBrETQEscLabel -- [+] Nova Unit com a implementação das diferenças de EscLabel e Zpl2 Suporte às Impressoras "Epson ColorWorks" (por: DSA) -- ACBrDeviceLPT -- [-] Correção para envio de Dados em Linux, Delphi FMX, por Stream (por: DSA) -- ACBrWinUSBDevice -- [-] Correções para funcionamento da SetupApi.dll em Win64 (por: DSA) Data: 04/08/2021 -- ACBrPosPrinterGEDI -- [-] Ajuste para compatibilizar com G800Interface http://www.projetoacbr.com.br/forum/index.php?showtopic=63498 Data: 29/07/2021 -- ACBrPosPrinter -- [-] Método "TACBrPosPrinter.DoTraduzirTag", modificado, para que os Flags internos de Fonte e Alinhamento, sejam processados, mesmo quando a tradução da Tag é sobreposta em uma Classe Externa (por: DSA) Data: 06/07/2021 -- ACBrPosPrinter -- [-] Ajuste para evitar apagar a atribuição do evento: OnEnviarStringDevice, quando o método padrão, "Configurar" era chamado (por: DSA) Data: 10/06/2021 -- ACBrWinUSBDevice -- [+] Adicionado suporte USB a Epson VendorClass [-] Ajuste no retorno da Windows SetupAPI, que poderiam conter caracteres inválidos, no final das Strings, em algumas situações (por: DSA) Data: 28/05/2021 -- ACBrPosPrinter -- [*] TACBrPosPrinterClass, expondo componente Pai, Propriedade Pública e ReadOnly -- ACBrPosPrinterElginE1Lib -- [+] Adicionada nova Classe externa, para tradução das Tags suportadas pelo ACBrPosPrinter, para a biblioteca de Impressão para Android, E1 da Elgin (M8) -- ACBrPosPrinterElginE1Service -- [+] Adicionado comando, para emular Beep (por: DSA) Data: 16/05/2021 -- ACBrDevice -- [-] Ajustes no método "TACBrTagProcessor.DecodificarTagsFormatacao", para funcionar corretamente no compilador NEXTGEN, com Strings em UTF8 (por: DSA) -- ACBrPosPrinterGEDI -- [-] Ajuste para imprimir corretamente Linhas em branco e Linhas com espaços no Final (por: DSA) Data: 14/05/2021 -- ACBrPosPrinter -- [*] Método "AjustarCodBarras" criado após refatoração, para permitir o seu uso em outras classes. [*] Método "TACBrPosPrinter.DoTraduzirTag", modificado para remover Tags marcadas em "TagsNaoSuportadas" [*] Método "TACBrPosPrinter.DoTraduzirTagBloco", modificado para remover Tags marcadas em "TagsNaoSuportadas" (por: DSA) -- ACBrPosPrinterGEDI -- [+] Adicionada nova classe, para tradução das Tags suportadas pelo ACBrPosPriniter, para a biblioteca de Impressão para Android, GEDI da Gertec (GPOS700) (por: DSA) Data: 06/01/2021 -- ACBrCHQBematech -- [*] Ajuste para impressão do ano com 4 dígitos na Bematech DP-20. https://www.projetoacbr.com.br/forum/topic/56173-impressão-cheque-com-4-digitos-para-ano/ Por: BigWings Data: 22/09/2020 -- ACBrDevice -- [+] TACBrTagProcessor, Adicionado Evento: "OnAdicionarBlocoResposta", que será invocado, a cada novo bloco de Dados adicionado no Buffer final de resposta. -- ACBrDeviceBlueTooth -- [-] Correção da verificação do resultado de TACBrDeviceBlueTooth.PedirPermissoes [*] Ajuste em TACBrDeviceBlueTooth.AtivarBlueTooth, para só verificar estado do BlueTooth, após chamar PedirPermissoes -- ACBrPosPrinter -- [+] TACBrPosComandos, adicionado o método "Clear". [+] TACBrPosPrinterClass, adicionado os métodos virtuais: procedure AntesDecodificar(var ABinaryString: AnsiString); procedure AdicionarBlocoResposta(const ConteudoBloco: AnsiString); procedure DepoisDecodificar(var ABinaryString: AnsiString); - Métodos para permitir que a Classe de Impressora, interfira e costumize o processo de Decodificação das Tags em "TACBrTagProcessor" [*] TACBrPosPrinter, expondo a classe: "TagProcessor" como Pública, Read Only. [-] Tag '', não estava desligando "ftFonteB"; [-] TACBrPosPrinter.EnviarStringDevice, corrigido para não tentar enviar "ComandoInicializa", se o mesmo for vazio. Data: 17/08/2020 -- ACBrPosPrinter -- [-] Correção de A.V., quando destruindo TACBrPosPrinter, que está usando "ModeloExterno" (por: DSA) Data: 06/08/2020 -- ACBrDevice -- [+] Adicionado Porta "NULL", que será atribuido para DeviceType = dtNenhum Util, quando o ACBrPosPrinter é usado com "ModeloExterno", onde a Abertura e Envio de dados ao dispositivo, não será feita por TACBrDevice -- ACBrPosPrinter -- [+] Adicionado Modelo "ppExterno", que será selecionado automaticamente, e apenas, se houver alguma classe atribuida a "ModeloExterno" [+] Adicionada nova propriedade Publica, "ModeloExterno: TACBrPosPrinterClass" - Permite atribuir ao ACBrPosPrinter, classes de Impressoras, que não são compiladas interamente em ACBrPosPrinter. - Isso pode ser útil, para criar classes de tradução do ACBrPosPrinter, para outras bibliotecas de impressão. Ver exemplo em: Fontes\ACBrTEFD\ACBrPOSPGWebPrinter.pas [+] TACBrPosPrinterClass, agora permite que a Classe de impressão, cuide da Tradução de Tags e Blocos, com chamadas aos métodos internos: "TraduzirTag" e "TraduzirTagBloco" [-] Modelo "ppTexto", agora usa as razões de Fontes: Condensada=1 e Expandida=1, (por: DSA) Data: 29/06/2020 -- ACBrETQClass, ACBrETQPpla, ACBrETQZplII, ACBrETQEpl2 -- [-] Ajuste para não enviar o comando de página de código, quando ela for pceNone, ou não suportada (por: DSA) Data: 12/06/2020 -- ACBrETQZplII -- [-] Correção para não enviar o comando de página de código, quando for "pceNone" (por: DSA) Data: 17/05/2020 -- ACBrPosPrinter -- [*] Ajuste no método "TxRx", para usar SendBytesInterval=0, para agilizar a comunicação (por: DSA) Data: 13/05/2020 -- ACBrDeviceWinUSB, ACBrWinUSBDevice -- [*] Ajuste para detecção do DeviceName, quando a VCOM mudar de Nome. Isso pode ocorrer quando o dispositivo é plugado em outra porta USB (por: DSA) Data: 07/05/2020 -- ACBrPosPrinter -- [+] Adicionada funcionalidades de Impressão e Leitura de Cheques, para impressoras híbridas, como a Epson TM-H6000IV. Novos métodos: procedure ImprimirCheque(CodBanco: Integer; AValor: Double; ADataEmissao: TDateTime; const AFavorecido, ACidade, AComplemento: String; LerCMC7: Boolean = False; SegundosEspera: Integer = 5); - Se a Leitura de CMC7 estiver ativada, ela será efetuada antes da Impressão do Cheque, e nesse caso, será usado como CodBanco, o valor lido do CMC7 - Após a impressão do Cheque, use a propriedade "LeituraCheque", para obter o Resultado obtido na leitura de CMC7 procedure ImprimirTextoCheque(const X, Y: Integer; const AString: AnsiString; AguardaCheque: Boolean = False; SegundosEspera: Integer = 5); - Pode ser usada para imprimir um texto genêrico, no verso do Cheque procedure EjetarCheque; - Também pode ser usada para Cancelar o estado de Espera do Cheqeue procedure LerCMC7(AguardaCheque: Boolean = False; SegundosEspera: Integer = 5); - Após a leitura do Cheque, use a propriedade "LeituraCheque", para obter o Resultado obtido na leitura [+] Adicionada a propriedade "LeituraCheque". Contendo Sting com o resultado da última operação de Leitura do CMC7. [+] Adicionado novo evento: OnAguardarCheque: TACBrPosOnAguardarCheque TACBrPosOnAguardarCheque = procedure(const AStatus: TACBrPosPrinterStatus; Operacao: TACBrPosOperacaoCheque; var CancelarEspera: Boolean) of object ; Chamado em Loop, quando o ACBrPosPrinter está aguardando a inserção do cheque, permitindo Cancelar a Operação, do lado da aplicação [+] Adicionado novo arquivo de Resource, "ACBrPosCheque.ini", contendo as coordenadas dos Cheques, por Banco. Esse arquivo é adicionado internamente ao componente ABCrPosPrinter por resource (ACBrPosCheque.res), mas se o "ACBrPosCheque.ini" estiver na mesma pasta do .EXE, ele será usado [+] Adicionados novos Status, no retorno de "LerStatusImpressora". stSlip -> Impressora de Cheques selecionada stMICR -> Leitura do MICR ativada stAguardandoSlip -> Aguardando a inserção do Cheque stBOF -> Cheque presente no Inicio do Berço stTOF -> Cheque no Topo do berço. Pronto para iniciar impressão [+] Adicionado nova Tag , Comando "PuloDePagina" [+] Adicionada nova Tag de Bloco , permitindo Posicionar o cursor, em uma nova coordenada, dentro do Modo Página. Exemplo: X,Y [+] Adicionadas novas propriedades, ReadOnly, para detectar características do equipanmento function PodeLerDaPorta: Boolean; // Se False, não há como ler informações da Impressora property TemGuilhotina: Integer; // -1=Indefinido, 0=NaoTem, 1=Tem property TemCheque: Integer; // -1=Indefinido, 0=NaoTem, 1=Tem property TemAutenticacao: Integer; // -1=Indefinido, 0=NaoTem, 1=Tem property TemMICR: Integer; // -1=Indefinido, 0=NaoTem, 1=Tem property LeituraCheque: AnsiString; // Retorna o conteúdo do último CMC7 lido [+] Correção em "CalcularAlturaTexto", para calcular corretamente a altura, quando EspacoEntreLinhas = 0. [*] Demos do ACBrPosPrinter em Delphi e Lazarus, modificados, para demonstrar as novas funcionalidades... -- ACBrCHQImpressoraComum -- [*] Constante com nome dos meses, foi movida para a ACBrConsts.pas Data: 23/04/2020 -- ACBrETQ, ACBrETQClass, ACBrETQPpla, ACBrETQEpl2, ACBrETQZplII -- [+] Implementado novo método para impressão de QRCodes procedure ImprimirQRCode(Vertical, Horizontal: Integer; const Texto: String; LarguraModulo: Integer = 4; ErrorLevel: Integer = 0; Tipo: Integer = 2); [+] Nova Propriedadade ACBrETQ.PaginaDeCodigo: TACBrETQPaginaCodigo = (pceNone, pce437, pce850, pce852, pce860, pce1250, pce1252) default pce850; [+] Adicionado suporte a Impressão com Página de Código e Conversão da String Nativa, para a página de código selecionada (por: DSA) Data: 22/04/2020 -- ACBrPosPrinter, ACBrEscDatecs -- [+] Adicionado novo modelo Datecs. http://www.datecs.bg/en/ -- ACBrPosPrinter -- [*] Melhoria em TACBrPosComandos.Create para que conteúdo dos comandos, fique zerado -- ACBrEscPosEpson -- [*] Tags de Ligar e Desligar Itálico, marcadas como não Suportadas -- ACBrEscDiebold, ACBrEscCustomPos -- [*] Removendo Tags de Itálido como não suportadas, por herança de TACBrEscPosEpson (por: DSA) Data: 20/04/2020 -- ACBrDeviceBlueTooth -- [-] Melhoria para tratamento de erros de comunicação ex:"Broken Pipe", quando usando em Android [*] Ajuste nas Permissões solicitadas ao Android (por: DSA) Data: 19/04/2020 -- ACBrDevice -- [-] Corrigido Bugs em TACBrTagProcessor.DecodificarTagsFormatacao, para respeitar o Encoding da Página de Código na String de Entrada, em Delphi Linux POSIX -- ACBrPosPrinter -- [-] Corrigido Bugs nos métodos "Imprimir" e "TraduzirTagBloco", para respeitar o Encoding da Página de Código na String de Entrada, em Delphi Linux POSIX (por: DSA) Data: 18/04/2020 -- ACBrDevice -- [-] Corrigido Bug em 02/04, onde TACBrTagProcessor.DecodificarTagsFormatacao, quebrava a Página de Código em Lazarus/FPC. [-] Corrigido processamento de Tag de QRCode, em Delphi Linux POSIX (por: DSA) Data: 15/04/2020 -- ACBrETQ -- [-] Correção para que os parâmetros enviados no método "FinalizarEtiqueta", sejam considerados, caso um novo comando "IniciarEtiqueta", seja recebido (por: DSA) Data: 02/04/2020 -- ACBrDevice -- [-] Workaround, para que processamento de Tags funcione corretamente em Delphi Linux 64 (por: DSA) Data: 30/03/2020 -- ACBrBALFilizola -- [*] Refatoração em "TACBrBALFilizola.InterpretarRepostaPeso", para que a rotina se ajuste a diversos tipos de resposta. (por: DSA) -- ACBrECFVirtual -- [+] Adicionado o Evento "QuandoMudarEstado", para permitir a aplicação detectar qual será o novo estado, e modifica-lo, se desejar. (útil para evitar estRequerz) TACBrECFVirtualQuandoMudarEstado = procedure(const EstadoAtual: TACBrECFEstado; var NovoEstado: TACBrECFEstado) of object; -- ACBrSMS -- [-] Correção para processar corretamente as msgs codificadas (por: DSA) Data: 18/03/2020 -- ACBrETQ -- [-] Correção para que o método "FinalizarEtiqueta" funcione corretamente como o método "Imprimir", e ambos respeitem os parâmetros "Copias" e "AvancoEtq" (por: DSA) Data: 12/03/2020 -- ACBrSMSClass -- [-] Ajuste para leitura de Data/Hora com retorno de apenas 2 dígitos no ano [-] Ajuste para leitura de mensagens codificadas, por motívos de acentuação https://www.projetoacbr.com.br/forum/topic/56691-decodificar-sms-com-ascii/ (por: DSA) -- ACBrUSBID.ini -- [*] Ajuste para não forçar o protocolo em Impressora Etiquetas Elgin L42 PRO -- ACBrDeviceWinUSB, ACBrDevice -- [*] Ajuste no método "DetectarTipoEProtocoloDispositivoUSB", para considerar porta correta, durante a Primeira ativação. -- ACBrDeviceBlueTooth -- [*] Ajuste para evitar A.V., caso não exista nenhum dispositivo pareado (por: DSA) Data: 03/03/2020 -- ACBrRFD -- [+] Inclido as diretivas de compilação para funcionar corretamente com NEXTGEN. Por: Waldir Paim Data: 24/02/2020 -- ACBrDevice, ACBrDeviceBlueTooth -- [*] mudança de assinatura do método: AcharPortasBlueTooth(const AStringList: TStrings; TodasPortas: Boolean = True); (por: DSA) Data: 21/02/2020 -- ACBrDevice -- [*] Método TACBrTagProcessor.DecodificarTagsFormatacao, otimizado e modificado para funcionar corretamente com NEXTGEN -- ACBrDeviceBlueTooth -- [*] Método TACBrDeviceBlueTooth.AcharPortasBlueTooth modificado para exibir todos os dispositivos pareados -- ACBrEscPosEpson -- [*] Ajustes após mudança de assinatura dos métodos em ACBrImage (por: DSA) Data: 13/02/2020 -- ACBrDeviceBlueTooth -- [*] Ajuste para permitir a porta como "BTH", para conectar no primeiro dispositivo Pareado, disponível na lista -- ACBrDeviceLPT -- [-] Ajuste para evitar a Erro I/O Error 103, quando ativando a Porta http://www.projetoacbr.com.br/forum/index.php?showtopic=56274 [-] Correção de .A.V quando Fechando a Porta e "UsarStream = True" (por: DSA) Data: 09/02/2020 -- ACBrSerial -- [*] Diversos ajustes para compatibilizar com a compilação em Delphi FMX, Android e Linux -- ACBrDevice -- [*] Aplicado amplo refactoring, separando em Units os diferentes Tipos de Porta suportados [+] Adicionado suporte a Portas BlueTooth. Ex: Porta := "BTH:Nome Dispositivo", Disponível apenas para Windows, DelphiXE ou Superior, e Android [+] Adicionado os métodos: procedure AcharPortasRAW(const AStringList: TStrings); procedure AcharPortasUSB(const AStringList: TStrings); procedure AcharPortasBlueTooth(const AStringList: TStrings); (por: DSA) Data: 23/12/2019 -- ACBrDevice, ACBrPosPrinter, ACBrETQ -- [+] Adicionada a detectação de Tipo de Hardware, Porta e Protocolo, para dispositivos USB, cadstrados em ACBrUSBID.ini (por: DSA) Data: 21/12/2019 -- ACBrDevice, ACBrWinUSBDevice -- [*] Proteção de algumas variáveis Públicas migradas para Properties [+] Adicionado suporte nativo a Impressoras USB no Windows, permitindo o uso da sintaxe Porta := 'USB:Marca, Modelo'; - Para detectar as Impressoras USB plugadas, use: ACBrDevice.WinUSB.FindUSBPrinters(); - As Impressoras encontradas estarão disponíveis na lista de Objetos (interna): ACBrDevice.WinUSB.DeviceList - Para acessar equipamento por Hook com a DLL do fabricante, use a sintaxe: Porta := 'DLL:Fabricante'; -- ACBrPosPrinter -- [*] Tipo enumerado TACBrPosTipoStatus.stNaoSerial modificado para: TACBrPosTipoStatus.stApenasEscrita [-] Corrigido Bug de falha de leitura, em LerStatusImpressora e LerInfoImpressora, quando ACBrPosPrinter estava Desativado e ControlePorta Ligado -- ACBrEscBematech -- [*] Adicionada proteção contra A.V., caso a resposta da Impressora seja inválida (por: DSA) Data: 19/12/2019 --ACBrBAL-- [*] Inclusão da classe ACBrBALLibratekWT3000IR (por André Adami) Data: 02/12/2019 -- ACBrETQPpla -- [+] Implementado o método "BMP2HEX", que converte uma Imagem BitMap, no Formato HEX nativo do protocolo PPLA [*] Método "ComandoCarregarImagem" modificado para converter imagens BMP para HEX, no momento da Carga da Imagem (por: DSA) Data: 01/12/2019 -- ACBrEscPosEpson -- [*] Ajuste no método "TACBrEscPosEpson.LerInfo", para correta leitura de informações em alguns novos modelos de impressoras (por: DSA) Data: 27/10/2019 -- ACBrEscGPrinter -- [*] Remoção do Bloqueio de Keycodes iguais a KC1=1 e KC2=0... pois os novos Firmwares suportam o comando GS+"(L" -- ACBrEscPosEpson -- [*] Métodos "ComandoGravarLogoRasterStr" e "ComandoImprimirImagemRasterStr", modificados para usar o comando GS+"(L" se a imagem em Raster a ser enviada for menor do que 65535, e GS+"8L", se for maior (por: DSA) Data: 25/09/2019 -- ACBrPosPrinter, ACBrEscGPrinter -- [+] Adicionado novo modelo: ppEscGPrinter Muito utilizado por diversos fabricantes, e bastante compatível com Epson Esc/Pos (por: DSA) Data: 26/08/2019 -- ACBrBAL -- [*] Inclusão do modelo ACBrBALWeightechWT3000_ABS. (por André Adami) Data: 30/07/2019 -- ACBrBAL -- [*] Inclusão do modelo ACBrBALWeightechWT1000. (por Daniel Sonda) Data: 10/07/2019 -- ACBrECF -- [+] Inclusão do modelo EscPosStar. (por Jean Carlos dos Santos) Data: 21/05/2019 -- ACBrPosPrinter -- [-] Restaurando suporte a Hooks Epson e Elgin, removidos acidentalmente no commit: 16570 -- ACBrEscBematech -- [+] Adicionado suporte aos métodos: ComandoImprimirImagemRasterStr, ComandoGravarLogoRasterStr e ComandoApagarLogo https://www.projetoacbr.com.br/forum/topic/48851-acbrposprinter-suporte-a-impress%C3%A3o-de-imagens-e-grava%C3%A7%C3%A3o-de-logos/ -- ACBrEscPosEpson -- [*] Modificações para permitir uso de metodos genéricos, por classes não filhas -- ACBrEscCustomPos -- [*] Ajuste para compatibilizar com mudanças em ACBrEscPosEpson (por: DSA) Data: 23/04/2019 -- ACBrBALUranoPOP -- [+] Adicionado suporte ao protocolo USE-P2 https://www.projetoacbr.com.br/forum/topic/50830-urano-us-202-pop-s/ (por: DSA) Data: 05/04/2019 -- ACBrECFEscECF -- [-] Aplicado workaround para Erro 140 disparado pela Daruma FS800I, mais de uma vez por comando. https://www.projetoacbr.com.br/forum/topic/50456-categoria-16-erro-específico-do-fabricante-motivo-140-relógio-está-travado/ (por: DSA) Data: 21/02/2019 -- ACBrPosPrinter, ACBrEscCustomPos --- [+] Adicionado novo modelo "ppCustomPos", para permitir a compatibilização com as impressoras da Custom http://www.nitere.com.br/produto-impressoras-q3x (por: DSA) Data: 11/02/2019 -- ACBrESCZJiang -- [+] Inclusão do novo modelo ZJiang. (por Daniel Simões de Almeida) Data: 08/02/2019 -- ACBrBAL -- [*] Adicionado modelo ACBrBALMarelCG62XL. (por Smaili Santana Amorim) Data: 03/02/2019 -- ACBrPosPrinter, ACBrEscPosHook -- [+] Adicionado o modelo de Protocolo em "TACBrPosPrinterHook" Isso permite que o Modelo correto, seja automaticamente atribuido a ACBrPosPrinter, quando usando a sintaxe de Hooks (USB:MARCA) Data: 01/02/2019 -- ACBrPosPrinter -- [*] Melhorias na detecção de Porta Ativa e Controle de Porta [+] Adicionado novo suporte a Impressoras através da Porta USB. Agora o ACBrPosPrinter aceita a sintaxe de portas como: "USB:MARCA", onde "MARCA" é o nome do Fabricante. Com isso o ACBrPosPrinter usará a DLL do fabricante para acesso a Impressora, pela porta USB. https://www.projetoacbr.com.br/forum/topic/49160-acbrposprinter-com-suporte-a-usb/ -- ACBrEscPosHook -- [+] Implementado Classe genérica para criação de Hooks -- ACBrEscPosHookElginDLL -- [+] Implementação de Hook com as DLLs da "ELGIN": HprtPrinter.dll, hprtio.dll Use em Porta := "USB:ELGIN", e mantenha as DLLs indicadas na mesma pasta do seu Executável -- ACBrEscPosHookEpsonDLL -- [+] Implementação de Hook com a DLL da "EPSON": InterfaceEpsonNF.dll Use em Porta := "USB:EPSON", e mantenha a DLL indicada na mesma pasta do seu Executável (por: DSA) Data: 29/01/2019 -- ACBrEscPosEpson -- [*] Ajuste no método "ComandoImprimirImagemRasterStr", para permitir o uso de comando de impressão de Imagem legado, que é utilizado em algumas impressoras. Nota: O Comando novo da Epson "GS + '8L'", não é compatível em alguns Equipamentos (não Epson), mas que usam EscPosEpson... Nesse caso, vamos usar o comando "GS + '*'", para tal, informe: KeyCode1 := 1; KeyCode2 := 0 (por: DSA) Data: 27/01/2019 -- ACBrEscPosEpson -- [*] Ajuste nos métodos "ComandoGravarLogoRasterStr" e "ComandoApagarLogo", para permitir o uso de comandos legados, que são utilizados em algumas impressoras. Nota: O Comando novo da Epson "GS + '8L'", não é compatível em alguns Equipamentos (não Epson), mas que usam EscPosEpson... Nesse caso, vamos usar o comando "FS + 'q'", para tal, informe: KeyCode1 := 1; KeyCode2 := 0 (por: DSA) 19/01/2019 -- ACBrPosPrinter -- [+] Classe TACBrPosPrinterClass, adicionado os métodos Públicos function ComandoImprimirImagemRasterStr(const RasterStr: AnsiString; AWidth: Integer; AHeight: Integer): AnsiString; virtual; function ComandoImprimirImagemArquivo(ArquivoBMP: String): AnsiString; function ComandoImprimirImagemStream(ABMPStream: TStream): AnsiString; function ComandoGravarLogoRasterStr(const RasterStr: AnsiString; AWidth: Integer; AHeight: Integer): AnsiString; virtual; function ComandoGravarLogoArquivo(ArquivoBMP: String): AnsiString; function ComandoGravarLogoStream(ABMPStream: TStream): AnsiString; function ComandoApagarLogo: AnsiString; virtual; procedure ArquivoImagemToRasterStr(ArquivoImagem: String; out AWidth: Integer; out AHeight: Integer; out ARasterStr: AnsiString); [+] Classe, TACBrPosPrinter - Adicionada a propriedade de apenas leitura: "PosPrinter: TACBrPosPrinterClass". permitindo acessar a Classe instânciada internamente, da forma: "ACBrPosPrinter1.PosPrinter" - Adicionado os métodos Públicos: procedure ImprimirImagemStream(ABMPStream: TStream); procedure ImprimirImagemArquivo(ArquivoBMP: String); procedure ImprimirImagemRasterStr(const ARasterStr: AnsiString; AWidth, AHeight: Integer); procedure ImprimirLogo(AKC1: Integer = -1; AKC2: Integer = -1; AFatorX: Integer = -1; AFatorY: Integer = -1); procedure GravarLogoStream(ABMPStream: TStream; AKC1: Integer = -1; AKC2: Integer = -1); procedure GravarLogoArquivo(ArquivoBMP: String; AKC1: Integer = -1; AKC2: Integer = -1); procedure ApagarLogo(AKC1: Integer = -1; AKC2: Integer = -1); - Adicionado suporte a Tag de Bloco - Imprime Imagem BMP monocromática. Conteúdo pode ser: Path da Imagem, Stream em Base64 ou AscII Art (0 e 1) [+] Demo PosPrinterTeste, em Delphi e Lazarus, modificados para demonstrar o suporte a Impressão de Imagens e Gravação de Logos. -- ACBrEscPosEpson -- [+] Implementado suporte aos métodos: function ComandoImprimirImagemRasterStr(const RasterStr: AnsiString; AWidth: Integer; AHeight: Integer): AnsiString; function ComandoLogo: AnsiString; function ComandoGravarLogoRasterStr(const RasterStr: AnsiString; AWidth: Integer; AHeight: Integer): AnsiString; function ComandoApagarLogo: AnsiString; 12/01/2019 -- ACBrETQClass, ACBrETQEpl2, ACBrETQPpla, ACBrETQZplII -- [+] Adicionado métodos para detecção de Imagens BMP e PCX, monocromáticas -- ACBrETQZplII -- [+] Adicionado método de conversão de imagem BMP para formato Zebra (GRF) [-] Correção para carga de Imagens em PCX [-] Correção para carga de Imagens em BMP (por: DSA) 08/01/2019 -- ACBrPosPrinter -- [+] Adicionado o método CalcularLinhasAltura(AAltura: Integer): Integer; que faz o inverso de "CalcularAlturaTexto" [-] Ajuste em "CalcularAlturaQRCodeAlfaNumM", para calcular altura necessária, para Epson TM-T20 15/12/2018 -- ACBrPosPrinter -- [+] Adicionado o método "ConfigurarRegiaoModoPagina", que retorna Tags necessárias para iniciar o Modo Página, e conforme os parâmetros recebidos (por: DSA) 13/12/2018 -- ACBrPosPrinter -- [+] Adicionada propriedade TipoCorte para escolher se é corte parcial ou total. [+] Adicionada a Tag , que promoverá o Corte conforme configurado em "TipoCorte" Veja: https://www.projetoacbr.com.br/forum/topic/48173-nova-propriedade-tipocorte-em-tacbrsatextratoescpos 11/12/2018 -- ACBrPosPrinter -- [+] Adicionado os métodos abaixo (migrados de ACBrNFeDANFeESCPOS) function CalcularAlturaTexto(Linhas: Integer): Integer; function CalcularAlturaQRCodeAlfaNumM(const QRCodeData: String): Integer; (por: DSA) 04/12/2018 -- ACBrDevice -- [*] Ajuste para melhor detecção de Nomes de Portas inválidos (por Waldir Paim) https://www.projetoacbr.com.br/forum/topic/47900-remoção-de-warnings-hints-e-melhorias-no-código-fonte/ 30/08/2018 -- ACBrECFBematech -- [-] Correção para Item registrado 2 vezes na impressora Bematech MP 4000 TH (Aplicado workaround, quando o ECF responde com um ACK igual a 255.) https://www.projetoacbr.com.br/forum/topic/45654-item-registrado-2-vezes-na-impressora-bematech-mp-4000-th/ (por: DSA) 20/08/2018 -- ACBrPosPrinter -- [*] Métodos LerInfoImpressora e LerStatusImpressora modificados para inserir Entrada e Resultado no Log 23/07/2018 -- ACBrCHQ, ACBrCHQClass -- [+] Adicionada a propriedade "PaginaDeCodigo: Word default 0" 0 = Remove acentos de "Cidade, Favorecido, Textos". Caso contrário, traduz para a página de código em ANSI, usada pelo equipamento https://www.projetoacbr.com.br/forum/topic/44737-acbrchq-nova-propriedade-paginadecodigo/ (por: DSA) 20/07/2018 -- ACBrDevice -- [+] Adicionado no evento: HookAtivar = procedure(const APort: String; Params: String) of object; [+] Adicionado no evento: HookDesativar = procedure(const APort: String) of object; (Que permitem, por exemplo, usar DLLs para acesso a impressoras por interface USB. Veja exemplo de implementação, no Demo: PosPrinterTeste) [*] Melhoria em TACBrDevice.LeString, para que leitura por Hook também considere o parâmetro "Terminador" -- ACBrEscBematech, ACBrEscDaruma, ACBrEscPosEpson -- [*] Melhorias para correto funcionamento com Hook 19/07/2018 -- ACBrDevice -- [+] Ajustes para melhorar as mensagens de Erro, quando Ativar Porta Serial ou Paralela e a mesma for inexistente ou inacessível (por: DSA) 21/02/2018 -- ACBrETQ, ACBrETQClass -- [-] Ajuste para enviar o comando de Limpar a Memória, ante de Impressão da Etiqueta (por: Warquia Pereira) https://www.projetoacbr.com.br/forum/topic/42762-acbretq-tarja-na-primeira-impressão-tlp-2844-e-gc420t/ 16/06/2018 -- ACBrECFEscECF -- [*] Método "CancelaCupom". Bematech não permite o Cancelamento de Cupom, a não ser que seja o último. Modificado para que a mensagem de erro de Canelamento disparada pela Bematech seja mais significativa [*] Métodos "IsBematech, IsDaruma, IsEpson", e propriedade "MarcaECF" tornados Públicos (por: DSA) 14/06/2018 -- ACBrECFDaruma -- [*] Adicionada verificação de retorno para a leitura dos comandos GetEstado e RetornaInfoECF. Pois notado que em alguns equipamentos, em algumas ocasiões o retorno vinha incompleto ou com informações diferentes (por: DSA) 21/05/2048 -- ACBrPosPrinter -- [+] Adicionadas novas Tags para suportar a Impressão em "Modo Página". '' - 'Liga Modo de Impressão em Página (em memória)' '' - 'Desliga Modo de Impressão Página (em memória)' '' - 'Comanda a Impressão da Página na memória' '' - 'Direção Texto no Modo Página: 0-Esquerda/Direta, 1-Topo/Baixo, 2-Direita/Esquerda, 3-Baixo/Topo' '' - 'Posição Inicial Horizontal Modo Página (Esquerda)' '' - 'Posição Inicial Vertical Modo Página (Topo)' '' - 'Largura da Região no Modo Página' '' - 'Altura da Região no Modo Página' '' - 'Espaço entre Linhas na Região no Modo Página' '' - 'Envia a configuração de Coordenadas da Região e direção do Modo Página' [+] Adicionada nova propriedade: "TACBrPosPrinter.ConfigModoPagina" Published, para permitir configurar as definições do Modo Página, por código [*] Demo do ACBrPosPrinter atualizado, para Demonstrar o funcinonamento do "Modo Página" (cool) (por: DSA e André Moraes) -- ACBrEscPosEpson -- [+] Implementado o suporte para o "Modo Página" (por: DSA e André Moraes) 06/04/2018 -- ACBrECFEscECF -- [*] Ajuste no método: TACBrECFEscECFProtocoloEpsonDLL.EnviaComando_ECF, para suportar Strings com Aspas Duplas no texto. (por: DSA) Data: 05/04/2018 -- ACBrETQEpl2 -- [-] Correção no método "ImprimirLinha" (por: Elias) Data: 04/01/2018 -- ACBrBAL -- [*] Inclusão do modelo ACBrBALPrecision. (por: Fabio Junior Borba) Data: 18/03/2018 -- ACBrPosPrinter -- [-] Correção da Emissão do Beep em alguns modelos de Impressoras compatíveis com Epson Esc/Pos (por: DSA) Data: 06/03/2018 -- ACBrETQ -- [+] Adicionada a propriedade: "MargemEsquerda: Integer default 0", que permite deslocar toda a etiqueta para a uma Margem mínima. Útil para impressoras que ajustam a Etiqueta no meio da baia de impressão. -- ACBrETQEpl2 -- [-] Correção nos métodos: "ImprimirLinha" e "ImprimirCaixa", para considerar corretamente as coordenadas informadas. [*] Ajuste no método "ComandoCarregarImagem", para considerar o PCX como padrão -- ACBrETQPpla -- [*] Ajuste em "ComandoImprimirTexto", para não enviar o comando de "reverso", se não houver necessidade -- ACBrETQZplII -- [*] Método "ComandoFonte", modificado para usar o comando '^A' e não '^CF', incorporando o envio da Orientação da Fonte [*] Comando "ComandoBackFeed", modificado para enviar BackFeed a 100% quando ligado [+] Implementado suporte a propriedade: "Origem = ogBottom" (por: DSA) Data: 28/02/2018 -- ACBrPosPrinter -- [*] Modelo "ppEscElgin", modificado para "ppEscVox", a pedido do Fabricante Elgin (por: DSA) Data: 16/02/2018 -- ACBrETQClass -- [+] Adicionado suporte a Unidade "etqDecimoDeMilimetros". (por: DSA) Data: 07/02/2018 -- ACBrPosPrinter -- [+] Adicionado suporte a Tag , que permite restaurar as configurações de fábrica da Impressora. https://www.projetoacbr.com.br/forum/topic/27499-impress%C3%A3o-escpos/ (por: DSA) Data: 03/02/2018 -- ACBrCHQPerto -- [-] Correção na impressão de Cheques Perto. Suporte para multiplos modos de impressão (por: Pedro E. Braga) https://www.projetoacbr.com.br/forum/topic/22521-erro-comunica%C3%A7%C3%A3o-impressora-de-cheques-perto/ Data: 29/01/2018 -- ACBrETQClass, ACBrETQPpla -- [-] Correção em TACBrETQClass.ConverterUnidade, para correta conversão de Milímetros para Dots -- ACBrETQZplII -- [-] Método: TACBrETQZplII.ComandoFonte. Correção na verificação dos limimtes de multiplicador Horizontal e Vertical [*] Método: TACBrETQZplII.ComandoResolucao, modificado para não tentar mudar a resulução da Impressora (por: DSA) Data: 20/01/2018 -- ACBrECFEscECF -- [-] Correção em métodos que retornavam altos valores, estourando o limite de Integer. https://www.projetoacbr.com.br/forum/topic/41007-grande-total-escecf/ (por: DSA) Data: 17/01/2018 -- ACBrEscDiebold -- [-] Correção na impressão do QRCode https://www.projetoacbr.com.br/forum/topic/30649-impressora-diebold-n%C3%A3o-imprime-o-qrcode/ -- ACBrECFEscECF -- [-] Correção em "TACBrECFEscECFComando.AddParamDouble", para evitar arredondamento indevidos em valores altos... https://www.projetoacbr.com.br/forum/topic/40930-venda-de-item-com-valor-99999999/ Data: 16/01/2018 -- ACBrECFEscECF -- [-] Correção no método Cancela Cupom da Daruma FS800i, quando havia um ou mais CCD após o Cupom https://www.projetoacbr.com.br/forum/topic/37529-daruma-fs800i-erro-ao-cancelar-cnf-e-cf-com-ccd/ (por: DSA) Data: 15/01/2018 -- ACBrECFEscECF -- [-] Correção em GetDadosUltimaReducaoZ, da Epson TM900F, quando usando "USB" na porta. Não era capaz de efetuar a leitura https://www.projetoacbr.com.br/forum/topic/40896-dados-%C3%BAltima-redu%C3%A7%C3%A3o-z-epson-t900f/ Data: 11/01/2018 -- ACBrECFVirtual, ACBrECFVirtualBuffer -- [+] Adicionado o método "CancelaDescontoAcrescimoItem" https://www.projetoacbr.com.br/forum/topic/40860-altera%C3%A7%C3%B5es-acbrecfvirtual/ Data: 09/01/2018 -- ACBrECFEscECF -- [-] Correção em "GetEstado", para detectar corretamente o Estado de ECF bloqueado por Redução Z, na Daruma FS800i (por: DSA) -- ACBrDISSmakTecladoLib -- [+] Adicionado novo modelo em ACBrDIS, disSmakTecladoLib, que suporta a carga dinâmica da Biblioteca da Smak 'sk_access.dll' -- ACBrDISSmakSerial -- [+] Adicionado novo modelo em ACBrDIS, disSmakSerial, que Suporta Teclados que Criam uma Porta Serial Virtual, quando conectados. Data: 15/12/2017 -- ACBrETQ -- [+] Adicionada sobrecarga no método "ImprimirTexto", que permite informar a "Fonte" como uma String. [*] O Método "ImprimirTexto", que recebe o parâmetro "Fonte" como Integer, aplicará a seguinte lógica: Valores de 0 a 9 são convertidos para String. Valores de 10 a 35 são convertidos para 'A' a 'Z' -- ACBrETQClass, ACBrETQPpla, ACBrETQEpl2, ACBrETQZplII -- [*] Método "ComandoImprimirTexto", modificado para receber a Fonte como String https://www.projetoacbr.com.br/forum/topic/40429-acbretq-texto-da-fonte-desconfigurado-na-imp-zebra/ -- ACBrETQZplII -- [*] Modificação em "comandoImprimirTexto", para definir as fontes e rotação, como na versao anterior de ACBrETQ. (Usando os comanfos ^CF e ^FW) [*] Método "ComandoResolucao", modificado para levar em consideração o valor da propriedade "ACBrETQ.DPI" Data: 12/12/2017 -- ACBrETQPpla -- [*] Inclusão de um valor mínimo(220) para aAvançoEtq em "ComandosFinalizarEtiqueta". (por: Elias César) Data: 02/12/2017 -- ACBrDevice -- [+] Adicionada a propriedade "ArqLOG: String", para permitir a criação de um Log para Debug de ACBrDevice (por: DSA) -- ACBrECFEscECF - [*] Ajuste para sempre desabilitar o Controle de Porta, quando ECF for Daruma (a fim de evitar travamentos na comunicação) [*] Ajuste para tratamento de retorno de Erro: "140-Relógio está travado" da Daruma FS800i, que ocorre quando o ECF ainda está ocupado, processando o último documento [*] Ajuste em ReducaoZ, ,para considerar como TimeOut mínimo, 120 segundos (por: DSA) -- ACBrETQ* -- [*] Ampla refatoração dos fontes de todas as classes de ACBrETQ, visando buscar simplificação e otimização do código (por: Elias e DSA) -- ACBrETQZplII -- [+] Implementado os métodos: "CarregarImagem", "ImprimirImagem" (por: DSA) Data: 30/11/2017 -- ACBrPosPrinter -- [+] Adicionada nova classe implementando o protocolo Epson Esc/P2, usado por antigas matriciais, como LX300 (Por DSA, e Carlos do Nascimento) Data: 29/11/2017 -- ACBrECFEscECF -- [*] Ajustes para evitar exception quando ECF não responde com os campos esperados [*] Método "GetDadosUltimaReducaoZ", modificado para tentar ler 3 vezes os dados da ReduçãoZ, pois Daruma FS800i, em algumas ocasiões responde ao comando com String vazia [*] Método "VerificaFimLeitura", modificado para zerar o contador de falhas WAK, quando obtiver algum retorno válido do ECF https://www.projetoacbr.com.br/forum/topic/39391-daruma-fs800i-trava-quando-solicita-data-e-hora-do-softwar-b%C3%A1sico/ (por: DSA) Data: 24/11/2017 -- ACBrECFEscECF -- [-] Ajuste para evitar arredondamentos nas chamadas de TACBrECFEscECFComando.AddParamDouble https://www.projetoacbr.com.br/forum/topic/39917-cnf-finalizando-com-1-centavo-a-mais/ (por: DSA) Data: 13/11/2017 -- ACBrECF -- [+] Abertura de bilhete de passagem por: regys.silveira Data: 10/11/2017 -- ACBrPosPrinter, ACBrEscPosEpson, ACBrEscDaruma, ACBrEscBematech -- [+] Adicionado suporte as Tags: - Liga Altura Dupla - Desliga Altura Dupla (por: DSA) Data: 01/11/2017 -- ACBrPosPrinter -- [*] Ajuste para que Cmd.PuloDeLinha default seja "sLineBreak" (por: DSA) Data: 23/10/2017 -- ACBrDevice -- [+] Adicionada a propriedade "TimeOutMilissegundos", para permitir definir um TimeOut em milissegundos... o valor informado, será traduzido para "TimeOut" -- ACBrPosPrinter -- [+] Adicionado em TACBrPosTipoStatus o item "stErroLeitura" [*] Método "LerStatusImpressora", modificado para receber como parâmetro, o número de Tentativas. "Tentativas: Integer, default = 1" [*] Método "TxRx", modificado para definir corretamente o TimeOut de comunicação -- ACBrEscBematech, ACBrEscElgin, ACBrEscPosEpson, ACBrEscDaruma -- [*] Método "LerStatus", modificado para retornar "stErroLeitura" e não "stErro", quando houver falha na leitura da Serial -- ACBrEscPosEpson -- [*] Método "LerStatus", modificado para não mais tentar leitura por 5 vezes. (causando lentidão) Data: 20/10/2017 -- ACBrETQ -- [+] Inclusão de nova propriedade "Velocidade", baseada na contribuição do usuário conforme: https://www.projetoacbr.com.br/forum/topic/39446-definir-velocidade-de-impressão-ppla-e-epl2/ (por: Marcelo A. Rodrigues) -- ACBrETQClass, ACBrETQPpla, ACBrETQEpl2 -- [+] Implementação da nova propriedade "Velocidade". (por: Marcelo A. Rodrigues) Data: 06/10/2017 -- ACBrPosPrinter -- [+] Adicionada a propriedade: "VerificarImpressora: Boolean default False" Quando "True", o ACBrPosPrinter usará o método "LerStatusImpressora", a cada execução do método "Imprimir", e interpretará as respostas da Impressora, emitindo erros no caso de "Tampa Aberta, Sem Papel, OffLine, Erro". IMPORTANTE: A leitura de Status da impressora, somente funciona em Portas Seriais ou TCP [*] Método "Imprimir". Ajuste para converter todos as Quebras de Linha da String recebida para impressão, para o valor definido em "Cmd.PuloDeLinha" [*] Método "Imprimir". Ajuste para esvaziar o Buffer interno de ACBrPosPrinter mesmo quando houver falha na impressão. (por: DSA) Data: 30/09/2017 -- ACBrBALMicheletti -- [-] Acertos para compilar corretamente em qualquer versão do Delphi mais atual. por: Regys.Silveira Data: 29/09/2017 -- ACBrBALMicheletti, ACBrBAL [+] Inclusão da balança Micheletti https://www.projetoacbr.com.br/forum/topic/33420-balança-micheletti/ (por: Juliomar Marchetti) Data: 20/09/2017 -- ACBrTER, ACBrTERClass, ACBrTERWilbor -- [+] Inclusão do parâmetro "DuplaConfirmacao", baseado na contribuição de usuário do fórum. (por: Natanael.Ribeiro) Data: 08/09/2017 -- ACBrECFVirtual -- [-] Ajuste para permitir mais de 100 pagamentos no Cupom. [*] Adicionda verificação para não permitir mais de 999 Itens e 999 Pagamentos [-] Ajuste em "LoadFromINI" para evitar loop Infinito e Estouro de memória Data: 04/08/2017 -- ACBrECF, ACBrECFClass -- [*] Modificações em "GetRodapePaf" introduzindo o campo "InfoRodapeCupom.DavFarm" para Farmácias de manipulação http://www.projetoacbr.com.br/forum/index.php?showtopic=38657 Data: 30/08/2017 -- ACBrECFEscECF -- [-] Revertida modificação implementada em: 18/07/2017. http://www.projetoacbr.com.br/forum/topic/38579-ecf-epson-tm-t900f-não-fazendo-quebra-de-linha -- ACBrETQ -- [+] Inclusão de nova propriedade "BackFeed", baseada na contribuição do usuário conforme: http://www.projetoacbr.com.br/forum/topic/38559-etiqueta-pplb-da-argox-com-back-feed/ (por: Felippi) [*] Exclusão da propriedade "AdicionarComandoP", pois estava obsoleta. Os comandos utilizados por ela ('P' e 'N') já são enviados em outros momentos do código. -- ACBrETQClass, ACBrETQPEpl2 -- [+] Implementação da nova propriedade "BackFeed". [*] Exclusão da propriedade e implementação referente à "AdicionarComandoP". Data: 26/08/2017 -- ACBrECFEscECF -- [-] Ajuste para problema de Loop infinito em Daruma FS800I http://www.projetoacbr.com.br/forum/topic/38287-daruma-fs800i-problema-redu%C3%A7%C3%A3o-z/ Data: 25/08/2017 -- ACBrDevice -- [+] Adicionada a propriedade "NomeDocumento", que é usada apenas no modo de impressão "RAW", e permite definir o nome do documento que será apresentado no Spooler. -- ACBrPosPrinter -- [*] Propriedade "Device", modificada para Published, para permitir editar em tempo de projeto (Object Inspector), os valores de ACBrDevice (por: DSA) Data: 14/08/2017 -- ACBrBALDigitron -- [-] Corrreção na leitura do valor, considerando STX e ETX http://www.projetoacbr.com.br/forum/topic/38234-correção-na-classe-da-balança-digitron/ Data: 04/08/2017 -- ACBrECFEscECF -- [*] Ajuste no método "GetNumCupom", para efetuar checagem do Retorno da Impressora. (Em algumas raras situações o ECF Bematech respondeu o como o registrador errado) (por: DSA) Data: 01/08/2017 -- ACBrDevice -- [*] Ajuste em "Ativar", para não parar por falha quando tenta fechar Socket anterior (por: DSA) Data: 31/07/2017 -- ACBrECFSwedaSTX -- [-] acerto para gera corretamente a descrição da marca da impressora sweda mesmo quando usando stx para evitar diferenças com o arquivo da SEFAZ, o que acaba atrapalhando encontrar a impressora no CNIEE; por: regys.silveira Data: 27/07/2017 -- ACBrETQPpla -- [*] Adicionada o suporte ao atributo de impressão invertida, em PPLA http://www.projetoacbr.com.br/forum/topic/37251-imprimir-texto-com-tarja-acbretq-ppla/ Data: 21/07/2017 -- ACBrPosPrinter -- [-] Correção para impressão com acentos, no Linux (por: DSA) Data: 19/07/2017 -- ACBrBALFilizola -- [+] Ajuste para o modelo C&F C6MT http://www.projetoacbr.com.br/forum/topic/36644-integração-balança-cf-c6mt-filizola/ (por: Juliomar Marchetti) Data: 18/07/2017 -- ACBrECFEscECF -- [*] Ajuste em "TACBrECFEscECFProtocoloEpsonDLL.EnviaComando_ECF", para modifcar todas as quebras de linha para LF antes de enviar para a DLL (Por: DSA) Data: 16/07/2017 -- ACBrPosPrinter -- [*] Correção para Sinal de Gaventa invertido adicionado verificação http://www.projetoacbr.com.br/forum/topic/37180-acbrposprinter-lerstatusimpressora-sinal-invertido-da-gaveta-faltando-verificação/ (por : Juliomar Marchetti) Data: 29/06/2017 -- ACBrECFVirtual -- [-] Correção para Zerar totalizadores de "RelatoriosGerenciais.Contador", após a Redução Z. http://www.projetoacbr.com.br/forum/topic/37469-contador-de-relat%C3%B3rios-gerenciais-em-acbrecfvirtual/ Data: 22/06/2017 -- ACBrECFEscECF -- [*] Método "IdentificaOperador" modificado para verificar o Operador atual, e evitar reprogramar quando for o mesmo... http://www.projetoacbr.com.br/forum/topic/37303-protocolo-esc-ecf-identificar-operador/ (por: Filipe Natividade) Data: 07/06/2017 -- ACBrECF -- [*] Alteração para limpar "InfoRodapeCupom" após fechar/cancelar cupom. (por: Elias César) Data: 04/06/2017 -- ACBrBALFilizola -- [*] Ajuste na função "InterpretarRepostaPeso", para considerar até o primeiro ETX que encontrar. (por: Fabiano Cunha) Data: 19/05/2017 -- ACBrECFVirtual -- [-] Correção para que o contador de Reduções Z (CRZ), seja impresso na Redução Z de acordo com a Redução Z atual (assim como ocorre no ECF) (por: DSA) Data: 13/05/2017 -- ACBrDevice -- [-] Ajuste para detecção de portas USB e DLL quando existe mais de uma exemplo : DLL1 ou USB2 http://www.projetoacbr.com.br/forum/topic/36702-erro-na-acbrdevice-quando-uso-epson-dll/ -- ACBrECFEpson -- [*] Ajuste na impressão de cheques com Epson onde estava centavos ao invés de centavo http://www.projetoacbr.com.br/forum/topic/36703-ecf-epson-não-imprimia-texto-centavos-no-cheque/ (por: Juliomar Marchetti) Data: 09/05/2017 -- ACBrDevice -- [-] Ajuste na detecção de portas Paralelas, Linux (Ex: "/dev/lp?", "/dev/usb/lp?") http://www.projetoacbr.com.br/forum/topic/36617-acbrposprinter-com-epson-tm-t20-usb-no-linux (por: DSA) Data: 28/04/2017 -- ACBrECFVirtual -- [-] Correção em "LoadFromINI", para não considerar o valor do Troco, como Pagamento efetuado. http://www.projetoacbr.com.br/forum/topic/36462-acbrecfvirtual-duvida-com-acbrecf1totalpago (por: BigWings) Data: 27/04/2017 -- ACBrECFNaoFiscal, ACBrECFVirtual -- [+] Implementado suporte ao método "GetNumUltimoItem" (Por: BigWings e DSA) -- ACBrECFVirtual -- [*] Método "ClasstoINI", ajuste para não disparar exceptions quando etntar Salvar e o componente não tiver sido inicializado.. (por: DSA) Data: 20/04/2017 -- ACBrEscBematech, ACBrEscDiebold -- [-] Correção na impressão de Cod.Barras. (bug introduzido em 12/04/2017) -- ACBrEscPosEpson -- [*] Adicionado os métodos públicos "ComandoCodBarrasEscPosEpson" e "ComandoCodBarrasEscPosNo128ABC" (por: DSA) Data: 14/04/2017 -- ACBrPosPrinter -- [+] Classe "TACBrPosPrinterClass", adicionado o método Virtual "Configurar", permitindo as classes filhas, a possibilidade de enviar comandos a impressora após a chamada de "Ativar" [*] Método "TACBrPosPrinter.Imprimir", modificado para chamar "Ativar", caso a porta ainda não esteja Ativa -- ACBrEscDaruma -- [*] Adicionado mecanismo de autoconfiguração, do numero de colunas Normal e Condensada. [*] Método "LerStatus", adicionda verificação do tipo de porta (Serial ou Eth) [*] Método "LerInfo", modificado para que a detecção de colunas Default seja 48 -- ACBrEscBematech -- [*] Método "LerStatus", adicionda verificação do tipo de porta (Serial ou Eth) (por: DSA) Data: 12/04/2017 -- ACBrPosPrinter -- [+] Adicionado o comando "TACBrPosComandos.PuloDeLinha", para permitir definir qual o comando a ser enviado, para pulo de linha (Ex: CR ou CR+LF) [*] Método "TACBrPosPrinterClass.ComandoEspacoEntreLinhas": adicionada implementação genérica, para evitar repetição nas classes filhas -- ACBrEscBematech -- [*] Refatoração para não mais descender de TACBrEscPosEpson e sim de TACBrPosPrinterClass -- ACBrEscDaruma -- [*] propriedade "RazaoColunaFonte.Condensada", modificada para usar a proporção Default (0.75) [-] Método "ComandoQrCode". Ajuste para correta impressão de QRCodes grandes. Caso a correção de Erro não tenha sido especificada, e tamanho do código seja maior do que 256 caracteres, usará 'M' como correção. [*] Método "ComandoEspacoEntreLinhas" removido, pois usará implementação da classe mãe -- ACBrEscDiebold -- [*] Método "ComandoFonte" removido, pois foi migrado para "TACBrEscPosEpson" -- ACBrEscPosEpson -- [*] Método "ComandoFonte" adicionado, para melhor controle e compatibilidade das fontes "Negrito, Condensado, Expandido, Sublinhado",com os diversos modelos de Impressoras compatíveis com Epson EscPos [*] Método "ComandoEspacoEntreLinhas" removido, pois usará implementação da classe mãe Data: 04/04/2017 -- ACBrECFVirtual -- [-] Método "VendeItem", correção para o caso do Desconto / Acrescimo falhar, não ficar registrado o Item vendido na memória do ECF Virtual (por: DSA) Data: 09/03/2017 -- ACBrECFVirtual -- [-] Correção de A.V. quando Ativando o ECFVirtual, que tinha cupom Aberto e um Item Cancelado http://www.projetoacbr.com.br/forum/topic/35435-erro-ao-ativar-acbrecf-utilizando-ecf-virtual/?do=findComment&comment=232343 (por: DSA) Data: 22/02/2017 -- ACBrECFEscECF -- [*] Correção para encontrar a linha correta das informações em "BematechObtemDadosUltimaReducaoZDeLeituraMemoriaFiscal". (por: Elias César) Data: 20/02/2017 -- ACBrECFEscECF -- [*] Alteração para pegar a linha de início corretamente ao ler os dados de RZ pela procedure "BematechObtemDadosUltimaReducaoZDeLeituraMemoriaFiscal". (por: Pedro E. Braga) Data: 20/02/2017 -- ACBrECFClass -- [-] Correção para retornar alíquotas tributadas que possuem índice alfanumérico Exemplo: T01, T02, etc. (por: Elias César) Data: 15/02/2017 -- ACBrECFVirtualBuffer -- [*] Ajuste para que as mascaras de valores do Relatório usem o "FormatFloatBr" (por: DSA) Data: 14/02/2017 -- ACBrECFVirtual -- [*] Propriedade "TACBrECFVirtualClass.ChaveCupom", migrada para "TACBrECFVirtualClassCupom.ChaveDFe".. isso permite acessar e modificar a Chave do DFe a ser cancelado em eventos como: "QuandoCancelarCupom", que já recebia o parâmetro "CupomVirtual" (por: DSA) Data: 13/02/2017 -- ACBrECFVirtual -- [-] Correção para atribuir corretamente os valores em "CancelaItemVendido" quando o item possui acréscimo ou desconto. (por: Elias César) Data: 13/02/2017 -- ACBrECFClass -- [-] Correção para somar os Cancelamentos ISSQN em aberto em "CancelamentoISSQN". (por: Elias César) Data: 10/02/2017 -- ACBrECFClass -- [-] Verificado que alíquotas II, FF e NN não entram na lista de alíquotas, porém a validação falhava quando o índice possuía números (exemplo: I1, F1, N2...). Alterado para não considerar alíquotas zeradas ou que possuem caracteres no índice. (por: Elias César) -- ACBrECFVirtual -- [*] Adicionado registrador específico para TROCO, nas Formas de Pagamento. Antes o ECFVirtual, descontava o TROCO da Forma de pagamento 01-DINHEIRO, o que causava dificuldade na apuração dos resultados (por: DSA) Data: 06/02/2017 -- ACBrECF -- [*] Modificado método "TACBrECF.PafMF_ArqMFD_Binario" para gerar ArquivoMFD com Tipo = "tdmfdTotal" caso a data Inicial ou Final esteja zerada. (por: Elias César) -- ACBrECFVirtual -- [*] Ajuste para que ECF não fique bloqueado por Estado estRequerZ, caso exista algum documento em aberto. http://www.projetoacbr.com.br/forum/topic/35028-melhoria-getestado-acbrecfvirtual/ Data: 03/02/2017 -- ACBrECFClass -- [*] Inclusão do novo método "TotalCancelamentosEmAbertoISSQN"; -- ACBrECFVirtual -- [*] Foram separados todos os Totalizadores entre ICMS e ISSQN. Ou seja, agora o desconto/acréscimo, subtotal e valores cancelados serão separados pelo tipo da alíquota ("T" ou "S"). -- ACBrECFVirtualBuffer -- [*] Foram separados os Totalizadores entre ICMS e ISSQN no relatório do ECF Virtual (ReduçãoZ/LeituraX); (por: Elias César) Data: 31/01/2017 -- ACBrECFVirtual -- [+] Implementado suporte ao método: "GetNumCOOInicial" (por: PauloHenrique) http://www.projetoacbr.com.br/forum/topic/34870-tacbrecfvirtual-numcooinicial-vazio/ Data: 27/01/2017 -- ACBrECFVirtual -- [-] Alteração para incluir também o valor dos acréscimos de itens em "fpCuponsCanceladosEmAbertoTotal". (por: Elias César) -- ACBrBAL -- [-] Correção para NÃO desativar "MonitorarBalanca" após método "LePeso" (por: adenilton) Data: 26/01/2017 -- ACBrDevice -- [-] Correção para impressão em Modo Raw em Lazarus/FPC. Restaurando para o modo anterior, para evitar problemas de impressão em outras Impressoras (por: DSA) Data: 21/12/2016 -- ACBrECFVirtualBuffer -- [*] Melhorias em "TACBrECFVirtualBufferClass.AddBufferRelatorio", para que relatório fique mais semelhante ao de um ECF do convênio 09/09. - Adicionado os Contadores: NumCRO, NumCCF, NumCNF, NumCDC - Adicionado os Totalizadores: FS1, IS1, NS1 - Separação dos Totalizadores de ICMS e ISSQN -- ACBrECFVirtual -- [+] Adicionado suporte aos totalizadores de isenção do ISSQN: FS1, IS1, NS1 [+] Adicionado sobrecarga aos métodos: GetTotalSubstituicaoTributariaISSQN, GetTotalIsencaoISSQN, GetTotalNaoTributadoISSQN [+] Adicionada rotina para efetuar migração de INI do formato antigo para o novo: http://www.projetoacbr.com.br/forum/index.php?showtopic=34210 (por: DSA) Data: 23/12/2016 -- ACBrECFBematech -- [-] Descrição só pode ter no máximo 200 caracteres (compare com linha 1887); Data: 19/12/2016 -- ACBrECF -- [*] Removido e-mail do Relatório de Identificação do PAF-ECF; [*] Inclusão da UF no Relatório de Parâmetros de Configuração. (por: Elias César) Data: 15/12/2016 -- ACBrDevice -- [-] Correção na detecção de Impressora "RAW", com nome de Rede: http://www.projetoacbr.com.br/forum/topic/33998-impressora-nao-encontrada-no-posprinter/ Data: 13/12/2016 -- ACBrECFEscECF -- [-] Correção para Venda de Item com aliquota de Serviço, sendo informada por Indice... Exemplo: S01, S3 http://www.projetoacbr.com.br/forum/index.php?showtopic=33900 -- ACBrDevice -- [*] Ajuste para compilação em FPC inferior a 3.0 (por: DSA) Data: 30/11/2016 -- ACBrBALMagellan -- [-] Correção no método "InterpretarRepostaPeso" (retorno estava vazio). http://www.projetoacbr.com.br/forum/topic/33744-erro-balan%C3%A7a-magellan/ Data: 25/11/2016 -- ACBrECFEscECF -- [-] Ajuste após commit de 24/11/16, para para correto funcionamento da a leitura da CAT 52, por DLL, na Epson. (por: Rodrigo Fruhwirth) Data: 24/11/2016 -- ACBrECFClass, ACBrEscECF, ACBrECFBematech, ACBrECFDaruma, ACBrECFSwedaStx -- [-] Correção para funcionamento do método "PafMF_GerarCAT52" em ACBrECFEscECF, modificando a assinatura do método para receber o Número de Série como parâmetro opcional: procedure PafMF_GerarCAT52(const DataInicial, DataFinal: TDateTime; const DirArquivos: String; NumeroSerie: String = ''); override; (por: DSA) Data: 21/11/2016 -- ACBrECFEscECF -- [-] Método "GetDadosUltimaReducaoZ", Bematech MP4200. Correção para retorno de "GrandeTotal" quando CRZ for superior a 256 http://www.projetoacbr.com.br/forum/index.php?showtopic=33568 Data: 19/11/2016 -- ACBrECFEscECF -- [-] Correção de Bug quando usando Epson com porta "USB"/"DLL". Evitando A.V. na execução de comandos que tenham um grande retorno de dados (Ex: LeituraXSerial) (por: DSA) Data: 18/11/2016 -- ACBrDevice -- [+] Adicionado o tipo: TACBrECFTipoDownloadMFD = (tdmfdTotal, tdmfdData, tdmfdCOO); -- ACBrECF -- [*] Método "ArquivoMF_DLL(NomeArquivo: AnsiString)", renomeado para: "ArquivoMF_Binario_DLL(NomeArquivo: AnsiString)" [*] Método "ArquivoMFD_DLL(NomeArquivo: AnsiString)", renomeado para: "ArquivoMFD_Binario_DLL(NomeArquivo: AnsiString)" [+] Adicionado os métodos: ArquivoMFD_Binario_DLL(NomeArquivo: AnsiString; DataInicial, DataFinal: TDateTime); ArquivoMFD_Binario_DLL(NomeArquivo: AnsiString; COOInicial, COOFinal: Integer); [*] Método "PafMF_Binario(const PathArquivo: String)", removido. Use o método: "PafMF_ArqMF_Binario" [*] Método "PafMF_ArqMF", renomeado para "PafMF_ArqMF_Binario" [*] Método "PafMF_ArqMFD", renomeado para "PafMF_ArqMFD_Binario", e assinatura modificada para: procedure PafMF_ArqMFD_Binario(const APathArquivo: String; DataInicial: TDateTime = 0; DataFinal: TDateTime = 0; Assinar: Boolean = True); -- ACBrECFBematech, ACBrECFDaruma, ACBrECFEpson, ACBrECFEscECF, ACBrECFSwedaSTX -- [*] Aplicada modificações em "ArquivoMFD_Binario_DLL", para o funcionamento por Periodo de Data e Intervalo de COO -- ACBrECFEpson -- [*] Ajuste para que métodos da DLL, para geração de MF, MFD não gravem a linha de EAD [*] Ajuste no Path informado para a DLL, segundo recomendações da Epson -- ACBrECFFiscNET -- [+] Implementação inicial dos métodos: "ArquivoMF_Binario_DLL" e "ArquivoMFD_Binario_DLL" (Por: Pedro Braga e DSA) http://www.projetoacbr.com.br/forum/topic/32980-arquivo-mf-e-mfd-apos-primeira-reducao/ Data 13/11/2016 -- ACBrECF, ACBrECFClass -- [*] Método "CancelaDescontoAcrescimoItem", modificado inserindo novo parâmetro: "TipoAcrescimoDesconto: String = 'D'" [*] Método "GetRodapePaf" modificado para atender ao requisito XXXVI do PAF-ECF [*] TACBrECFRodape modificado inserindo as propriedades "Placa" e "QtdeKM" -- ACBrECFBematech, ACBrECFEpson, ACBrECFFiscNET, ACBrECFSwedaSTX -- [+] Adicionado suporte ao método: "CancelaDescontoAcrescimoItem" -- ACBrECFEscECF -- [*] Método "CancelaDescontoAcrescimoItem" modificado para suportar o parâmetro "TipoAcrescimoDesconto" -- ACBrECFFiscNET -- [*] Método "TraduzirTag", modificado para suportar modelo "URANO/1FIT LOGGER" (por: Pedro E. Braga) - http://www.projetoacbr.com.br/forum/index.php?showtopic=32980 Data: 09/11/2016 -- ACBrBal, ACBrBALLibratek [+] Adicionado a balança libratek wt3000-i http://www.projetoacbr.com.br/forum/topic/31203-acbrbal-com-balan%C3%A7a-libratek-wt3000-i/ por : Juliomar Marchetti Data: 03/11/2016 -- ACBrECFFiscNET -- [*] Ajuste para nunca tentar imprimir mais de 8 linhas do Rodapé www.projetoacbr.com.br/forum/topic/15230-acbrecf-fiscnet-fechacupom/ Data: 01/11/2016 -- ACBrECFEpson -- [*] Ajuste no método "LinhaRelatorioGerencial", para que o mesmo Feche o Relatório Gerencial, quando o Limite máximo de linhas for atingido. http://www.projetoacbr.com.br/forum/topic/32569-certificação-paygo-passo-26 (por: DSA) Data: 21/10/2016 -- ACBrCHQBematech -- [-] acerto para impressão correta de cheques na impressora Bematech Data: 18/10/2016 -- ACBrBAL -- [+] Inclusão de dois comandos: "SolicitarPeso" e "InterpretarResposta()" com objetivo de utilizar o ACBrBAL dentro do ACBrMTer. (por: Elias César) -- ACBrBALClass e filhas -- [+] Incluídos os comandos "SolicitarPeso", "AguardarRespostaPeso" e "InterpretarRespostaPeso", dividindo o Comando "LePeso" em partes; [*] Refatoração nas classes para utilização dos novos comandos; [*] Modificação pra que ACBrBALClass implemente uma Balança Genérica. Com isso a ACBrBALGenerica foi excluída. (por: Elias César) Data: 11/10/2016 -- ACBrDevice -- [-] Correção para suporte a portas paralelas (por: DSA e Waldir Paim) http://www.projetoacbr.com.br/forum/index.php?showtopic=32722 Data: 10/10/2016 --ACBrBAL -- [*] Refatoração das classes ACBrBALAFTS, ACBrBALSaturno, ACBrBALFilizola, ACBrBALLider, ACBrBALLucasTec, ACBrBALRinnert, ACBrBALToledo2180, ACBrBALUrano e ACBrBALUranoPOP(por: Elias César Vieira) Data: 07/10/2016 -- ACBrPosPrinter -- [*] Removido detecção de porta aberta de "TACBrPosPrinter.DesativarPorta", que passou para TACBrDevice (por: DSA) -- ACBrDevice -- [-] Método: "DeduzirTipoPorta". Correção na detecção do tipo de porta Paralela (LPT, /dev/lp) (Por: Waldir Paim) [*] Método "Desativar". Ajuste para não fechar a porta Serial, enquanto a mesma ainda estiver Ativa e ocupada. (por: DSA) [-] Método: "GetPrinterRawIndex". Correção para detecção do Nome da Impressora compartilhada e remoção de Hint (Por: Waldir Paim) [*] Método "EnviaStringRaw", remoção de Warning (Por: Waldir Paim) Data: 02/10/2016 -- ACBrDevice -- [+] Adicionado o suporte a portas "RAW", permitindo usar o "Nome da Impressora", do sistema operacional, na definição da "Porta" Exemplo: "SWEDA SI-300S" ou "RAW:SWEDA SI-300S" Use "*" para imprimir na impressora Default [+] Nova sintaxe para atribuição de portas do tipo "Arquivo". Exemplo: "C:\TEMP\saida.prn" ou "FILE:C:\TEMP\saida.prn" [+] Adicionada nova propriedade "DeviceType: TACBrDeviceType", sendo que TACBrDeviceType = (dtFile, dtSerial, dtTCP, dtRawPrinter, dtHook) Essa propriedade é detectada automaticamente, na atribuição da propriedade "Porta", mas pode ser atribuida posteriormente, caso a detecção automática não esteja correta. -- ACBrECF -- [*] "FechaCupom" Ajuste para detecção de Quebra de linha com [CR] -- ACBrPosPrinter -- [-] Ajuste para ignorar as tags e quanto propriedade "CortaPapel" for False. [-] Correção na exibição de mensagens de erro com acentuação. [*] Ajuste para não fechar a porta da impressora, enquanto a mesma ainda estiver ocupada. (por: DSA) Data: 26/09/2016 -- ACBrECFVirtual -- [*] Incluída procedure "GetEstadoECFVirtual" para possibilitar alteração da propriedade fpEstadoECF durante "GetEstado" por parte das classes filhas. (por: Elias César) Data: 22/09/2016 -- ACBrECF -- [-] Remoção de virgula a mais -- ACBrECFEpson -- [*] Correção para Bug acidentalmente introduzido em 10/09/2016. Erro: 0204 - Campos em falta. (por: DSA) Data: 20/09/2016 -- ACBrECFDaruma, ACBrECFEscECF -- [-] Correções para impressão de Cod.Barras na Daruma FS800i (por: DSA) Data: 19/09/2016 -- ACBrEscDaruma -- [-] Ajuste no comando (fonte normal), para desligar modo condensado, na DR700 (por: DSA) Data: 15/09/2016 -- ACBrECFDaruma -- [-] Ajuste no indice da alíquota no método carregaAliquotas. (por: Rodrigo Frühwirth) Data: 14/09/2016 -- ACBrECF -- [*] Ajuste para correta impressão da mensagem de "Paraiba Legal" http://www.projetoacbr.com.br/forum/index.php?showtopic=32200 Data: 13/09/2016 -- ACBrECFBematech -- [-] Ajuste para correta verificação do Erro "Sem Papel" (por: DSA) Data: 11/09/2016 -- ACBrECFEscECF -- [-] Correção para o tipo de dados de string para ansistring, pois no delphi ele verifica a tipagem de dado (por: Juliomar Marchetti) Data: 10/09/2016 -- ACBrECFClass -- [*] Classe "TACBrECFRodapeRestaurante", adicionado propriedade "ContaCliente: Boolean" para Sinalizar o tipo de conta "Mesa" ou "Cliente" (por: Rodrigo Frühwirth) -- ACBrECF -- [*] Método "GetRodapeRestaurante", adicionado tratamento para a propriedade TACBrECFRodapeRestaurante.ContaCliente, imprimndo a expressão "CONTA DE CLIENTE" no lugar de "MESA" de acordo com a necessidade da aplicação. (por: Rodrigo Frühwirth) [*] Métodos PafMF_ArqMF e PafMF_ArqMFD adicionado novo parâmetro "Assinar: Boolean = True", que permite omitir o processo de assinatura do ACBr. (por: Rodrigo Frühwirth) [*] Troca de FormatFloat por FormatFloatBr para evitar formação errada de decimais em Linux ou S.O. em Ingles (por: DSA) -- ACBrECFEpson -- [*] Método EpsonTraduzirTagBloco implementado montagem do QrCODE. (por: Rodrigo Frühwirth) [-] Método "GetNumUltimoItem" modificado para sempre deve ler o número do último item direto do ECF para evitar leitura erronea, em casos de falta de papel ou desligamento (por: Rodrigo Frühwirth) [-] Método "FechaNaoFiscal" estava fixo a quebra das linhas com 50 colunas e deve ser pelo número de colunas da ECF. (por: Rodrigo Frühwirth) [-] Método "FechaPortaSerialDLL" adicionado sleep(1000) antes de tentar abrir a porta novamente pelo ACBr, pois em micros muito lentos estava dando muitas mensagens de retentar ao ativar a ECF. (por: Rodrigo Frühwirth) [-] Método "FechaCupom" ajustado para evitar perda de dados da Mensagem da Observação, quando a mesma contem caracteres de controle. (por: Rodrigo Frühwirth) -- ACBrECFEscECF -- [-] Método "Ativar". Caso o ECF seja Bematech e MaxLinhasBuffer = 0, limita em 5 linhas, pois a mesma congela quando recebe um buffer muito grande. (por: Rodrigo Frühwirth) [-] Métodos "FechaNaoFiscal", "Sangria", "Suprimento" ajuste da quebra de linha das observações de acordo com as Colunas e limitado a 8 linhas. (por: Rodrigo Frühwirth) -- ACBrECFFiscNET -- [*] Método "Ativar" ajustado número de colunas para o Modelo "ZPM/1FIT LOGGER". (por: Rodrigo Frühwirth) [-] Método "GetNumSerie", retornando com espaços em branco em alguns modelos (por: Rodrigo Frühwirth) Data: 09/09/2016 -- ACBrEscPosEpson -- [*] Ajuste no Comando de impressão de LogoTipo, para permitir informar o KeyCode no formato antigo (FS+'p')... para tal, informe: KeyCode1 := 1..255; KeyCode2 := 0 -- ACBrEscBematech -- [*] Ajuste para suportar KeyCodes no mesmo padrão da Epson: KeyCode1 := 1..255; KeyCode2 := 0 Data: 08/09/2016 -- ACBrECF -- [+] Tratamento no método GetEstadoClass e GetGrandeTotalClass para retornar a propriedade IgnorarErroSemPapel ao estado inicial para evitar problemas por: Juliomar Marchetti Data: 08/09/2016 -- ACBrECF -- [+] Mudança para imprimir a data do laudo http://www.projetoacbr.com.br/forum/index.php?showtopic=32295 por: Juliomar Marchetti Data: 24/08/2016 -- ACBrECFEscECF -- [-] Alteração para que os valores dos totalizadores não sejam sobrepostos caso existam alíquotas duplicadas no ECF. (por: Elias César) Data: 23/08/2016 -- ACBrECFClass -- [-] Correção na função GetDadosReducaoZ para que não sejam criadas alíquotas zeradas quando utilizado ECFVirtual. (por: Elias César) Data: 22/08/2016 -- ACBrECFEscECF -- [-] Aplicado Workaround para problema de Leitura de Dados da Ultima Redução Z em Bematech MP4200-TH FI II, versões até 01.00.02 e inferiores. Caso o CRZ seja maior que 256, o ECF devolve informações da Redução Z errada. (por: DSA) Data: 18/08/2016 -- ACBrECFVirtual -- [-] Correção nos retornos de GetTotalNaoTributado e GetTotalIsencao (estavam invertidos) (por: Amarildo Lacerda) http://www.projetoacbr.com.br/forum/index.php?showtopic=31929 Data: 27/07/2016 -- ACBrECFNaoFiscal, ACBrECFVirtual, ACBrECFVirtualBuffer -- [*] Ajustes para permitir calculos com Truncamento, quando: ArredondaItemMFD := False (por: DSA) http://www.projetoacbr.com.br/forum/topic/31494-truncar-valor-total-item-acbrecfnaofiscal/ Data: 12/07/2016 --ACBrBAL -- [*] Inclusão da ACBrBALLibratek (por Marciano da Rocha) Data: 27/06/2016 -- ACBrECFEscECF -- [-] Correção em "LinhaRelatorioGerencial", na impressão de Cod.Barras ou caracteres de controle, que continham CR ou LF (por: DSA) Data: 24/06/2019 -- ACBrECFEscECF -- [-] Correção no método "FechaCupom", para ECFs Epson TM800F/900F. (por: DSA) http://www.projetoacbr.com.br/forum/topic/30761-erro-fechacupom-ecf-epson-tm-t900f Data: 10/06/2016 -- ACBrECF -- [*] Métodos: "SubtotalizaCupom" e "EfetuaPagamento". Ajustes para evitar que falhas na leitura das informações para exibição do MemoBobina, disparem exception, invalidando o comando anterior, que foi executado com sucesso (por: DSA e Elias) Ajustes para -- ACBrECFVirtual -- [-] Correções no calculo dos Totalizadores em Cancelamento de Item Vendido com desconto [-] Correções no calculo dos Totalizadores de Aliquotas em Cancelamento do Cupom com Desconto no Subtotal (por: douglas_k) http://www.projetoacbr.com.br/forum/index.php?showtopic=30568 Data: 08/06/2016 -- ACBrECFDaruma -- por: regys.silveira [*] Acerto na leitura da data/hora da impressora para não depender de configurações do sistema operacional. Data: 07/06/2016 -- ACBrECFVirtual -- [-] Correção de Bug no calculo do Rateio do Desconto/Acredcimo no SubTotal (por: douglas_k) http://www.projetoacbr.com.br/forum/index.php?showtopic=30478 Data: 03/06/2016 -- ACBrECFEscECF -- [-] Corrigido Bug em "Ativar", que em algumas situações não chamava "AtivarPorta" caso "ControlePorta" estivesse ativo. (por: DSA) Data: 21/05/2016 -- ACBrECF -- [+] Adicionado o método: function CalculaTotalItem(AValorUnitario: Double; AQtd: Double = 1; ADecimais: Integer = 2; FlagAT: Char = ' '): Double; Que permite a aplicação, computar antecipadamente, o Total do Item, de acordo com as regras do ECF, considerando os parâmetros de Arredondamento. (por: DSA) Data: 11/05/2016 -- ACBrECFVirtual -- [+] Adicionado suporte aos registradores: - NumCFC (Numero Total de Cupons Cancelados) - NumGNFC (Número de Comprovantes não fiscais cancelados) - TotalCancelamentosOPNF (Valor Total de Cancelamentos em Operações não fiscais) [+] Adicionada sobrecarga no método "FechaNaoFiscal", para permitir o fechamento de Comprovantes não fiscais, que não exigam pagamento (Sangria, Suprimento) [+] Correção de Bug nos métodos "Sangria" e "Suprimento". O valor da Sangria/Surpimento também era somado em uma Forma de Pagamento [*] Método: "CancelaCupom", modificado para realizar o corretamente o cancelamento de Operações não fiscais (por: DSA) -- ACBrECFVirtualBuffer -- [*] Método: "AddBufferRelatorio", modificado para exibir: - Número de Cancelamentos Não Fiscal - Total Não Fiscal - Total Não Fiscal Cancelado (por: DSA) Data: 05/05/2016 -- ACBrECF, ACBrECFClass -- [+] Adicionada a propriedade "NumMaxLinhasRodape: Integer (readonly)", que retornará o número máximo de Linhas suportado nas Observações do Rodapé, para o Modelo de ECF (geralmente 8 linhas) [*] Método "FechaCupom", modificado para fazer uso de "NumMaxLinhasRodape" (por: DSA) -- ACBrECFEscECF -- [*] Método "FechaCupom" modificado, para efetuar tratamento dos caracteres de controle de Impressão [-] Método "Ativar", correção na detectação da mudança de protocolo DLL/COM [*] Método "Ativar", detecção de "NumMaxLinhasRodape = 20" no caso de Bematech 01.00.02 (por: DSA) -- ACBrECFVirtual -- [*] Modificado para que "NumMaxLinhasRodape := 0" (sem limites) (por: DSA) Data: 19/04/2016 -- ACBrECFEscECF -- [-] Metodo LinhaRelatorioGerencial, aplicado workaround para bug em Bematech na impressao de linhas do Gerencial (por: DSA) http://www.projetoacbr.com.br/forum/index.php?showtopic=29469 Data: 15/04/2016 -- ACBrEscDiebold -- [-] Correção na impressão de Code128 (por: Fabio Souza) http://www.projetoacbr.com.br/forum/index.php?showtopic=23975 Data: 06/04/2016 -- ACBrECFEscECF -- [-] Método "LinhaRelatorioGerencial". Removido workaround aplicado para Bematech, pois estava causando problemas de alinhamento na impressão dos relatórios. [*] Modificado tamanho máximo de Buffer de envio para Bematech, para 256 bytes para evitar travamentos do ECF. (por: DSA) -- ACBrECFClass -- [-] Correção de Bug na exibição de mensagens de erros com acentos, do método "FormMsgDoProcedure" (por: DSA) Data: 04/04/2016 -- ACBrPosPrinter -- [-] Ajuste para que a Porta Serial seja desativa, mesmo quando houver erro no envio da Impressão, caso "ControlePorta = True". (por: DSA) -- ACBrECFEscECF -- [-] Método "GetEstado".Correção para detecção do estado de Pagamento. Em algumas situações o estado simulado de Pagamento (após SubTotalização com Zero) era incorretamente interpretado (por: DSA) Data: 31/03/2016 -- ACBrBAL, ACBrBALAFTS -- [+] Adicionado suporte a novo modelo "AFTS" (por: Paulo Henrique de Castro) http://www.projetoacbr.com.br/forum/topic/29063-componente-acbrba-balan%C3%A7a-afts/ Data 30/03/2016 -- ACBrECFVirtual, ACBrECFVirtualBuffer -- [+] Adicionado suporte ao método "CancelaItemNaoFiscal" (por: DSA e Amarildo Lacerda) [-] Correção de Bug no método "LerINI", que não considerava o Desconto/Acrescimo de SubTotal do cupom. http://www.projetoacbr.com.br/forum/topic/29019-sat-implementado-cancelaritemnaofiscal/ Data: 29/03/2016 -- ACBrBAL, ACBrBALSaturno -- [+] Adicionado suporte a novo modelo "Saturno" (por: Wislei de Brito Fernandes) http://www.projetoacbr.com.br/forum/topic/12619-componente-acbrba-balança-saturno/ Data: 26/03/2016 -- ACBrECFVirtual -- [-] Correções no método "CancelaCupom". - Erro "List index () out of bounds", quando todos os Itens do Cupom já estavam cancelados - Rotina não considerava o fato do Item já estar cancelado, subtraindo o mesmo novamente dos totalizadores (por: DSA) --ACBrBALMuller, ACBrBALRinnert, ACBrBALToledo2090 -- [-] Correção nas units novas das balanças http://www.projetoacbr.com.br/forum/topic/28952-erro-ao-re-compilar-acbr-trunk2-acbr_serialdpk/ por : Juliomar Marchetti Data: 24/03/2016 --ACBrBALMuller, ACBrBALRinnert, ACBrBALToledo2090 -- [+] Adição de mais modelos de Balanças ao componente! http://www.projetoacbr.com.br/forum/topic/28900-modelos-de-balan%C3%A7a-novos/ por : Juliomar Marchetti Data: 24/03/2016 -- ACBrECF -- [-] Método "LinhaRelatorioGerencial". Correção de Bug causado em 22/03/2016, com remoção de Warning em ACBrUtil [*] Metodos GetDadosReducaoZ, GetDadosUltimaReducaoZ, MontaDadosReducaoZ modificados para retornar "String" e não "AnsiString" -- ACBRECF, ACBrECFClass, ACBrECFBematech -- [*] Ajuste no método "VendeItemEx", para permitir informar os seguintes parâmetros: CST_PIS: String = ''; BaseCalculoPIS: Double = 0; AliquotaPIS: Double = 0; ValorPIS: Double = 0; QuantidadeVendidaPIS: Double = 0; ValorAliquotaPIS: Double = 0; CST_COFINS: String = ''; BaseCalculoCOFINS: Double = 0; AliquotaCOFINS: Double = 0; ValorCOFINS: Double = 0; QuantidadeVendidaCOFINS: Double = 0; ValorAliquotaCOFINS: Double = 0; CEST: String = '' (por: DSA) Data: 22/03/2016 -- ACBrECFEscECF -- [-] Método "GetEstado". Correção para detecção do Estado, quando o ECF possui Bloqueio por hardware (tampa aberta ou sem papel) (por: DSA) http://www.projetoacbr.com.br/forum/index.php?showtopic=28830 [-] Método: "AbreCupomVinculado". Correção para Epson TM800F, que não considera as Formas de Pagamento que não permitem Vinculado, como sequencia de pagamento (por: DSA) http://www.projetoacbr.com.br/forum/index.php?showtopic=28839 [+] Método "GetNumUltimoItem". Implementado leitura dos registradores do ECF, para o Modelo Epson TM800F (por: DSA) Data: 21/03/2016 -- ACBRECF, ACBrECFClass, ACBrECFBematech -- [*] Ajuste no método "VendeItemEx", para permitir informar o valor do campo "CEST" (por: DSA) Data: 17/03/2016 -- ACBrECFDaruma, ACBrECFEscECF -- [-] Método "ArquivoMFD_DLL", ECF FS800i, ajuste para funcionamento correto em modo OnLine. (por: Samuel Tonini) http://www.projetoacbr.com.br/forum/index.php?showtopic=28771 Data: 14/03/2016 -- ACBrECFVirtual -- [-] Correção de bug no calculo de Total por Aliquota, quando havia desconto/ acréscimo, na venda do Item (por: DSA) http://www.projetoacbr.com.br/forum/index.php?showtopic=28573 Data: 11/03/2016 -- ACBrDevice -- [+] Adicionado os valores de SendBytesCount e SendBytesInterval em: "DeviceToString" e "SetParamsString" (por: DSA) Data: 08/03/2016 -- ACBrECFVirtual -- [-] Correção de Bug introduzido em 07/03/2016, após ajustes para compilação em 64 bits -- ACBrECFEscECF -- [*] Método "LinhaRelatorioGerencial", aplicado workaround para característica da Bematech (por: DSA) Data: 26/02/2016 --ACBrECFEpson -- [-] Ajuste para que o método "CarregaFormasPagamento" considere apenas o numero da Formas de pagamento cadastradas http://www.projetoacbr.com.br/forum/topic/28186-carregaformaspagamento-ecfepson/ Data: 19/02/2016 --ACBrECFEpson -- [-] Ajuste para que o método "CarregaFormasPagamento" considere todas as FPGs da memória http://www.projetoacbr.com.br/forum/topic/28186-carregaformaspagamento-ecfepson/ Data: 17/02/2016 -- ACBrECFVirtualBuffer -- [*] Modificada a rotina "TACBrECFVirtualBufferClass.AddBufferRelatorio", para constar o valor de "CuponsCanceladosEmAberto" (se o mesmo não for vazio) Data: 08/02/2016 -- ACBrDevice -- [*] Adicionado controle de falhas em "EnviaStringSerial". Em algumas situações específicas, o Device para de receber dados, e isso ocasionava um Loop infinito nesse método. (por: DSA) Data: 07/02/2016 -- ACBrECFEscECF -- [-] Método DadosUltimaReducaoZ, ajuste para correta leitura dos totalizadores Não Tributados em Daruma FS800I. Esse modelo não retorna o valor da alíquota para Totalizadores não tributados http://www.projetoacbr.com.br/forum/index.php?showtopic=27897 -- ACBrECF -- [*] Método FechaCupom, ajuste para não limitar em 8 linhas de observação, quando se tratar dos modelos ecfEscEcf ou ecfECFVirtual http://www.projetoacbr.com.br/forum/index.php?showtopic=27926 Data; 04/02/2016 -- ACBrETQPpla -- [*] Ajuste para permitir SubFontes até 999 em "ImprimirTexto" http://www.projetoacbr.com.br/forum/topic/27887-subfonte-do-componente-acbretq/ Data: 16/03/2015 -- ACBrCHQ -- [*] Adicionado modelo ACBrCHQElgin baseado na impressora Elgin ImpreCheq. (Laércio S Amici | Emerson Virissimo da Silva) Data: 27/01/2015 (por: DSA) -- ACBrECF -- [+] Adicionada a propriedade "TotalCancelamentosEmAberto: Double" -- ACBrECFClass -- [*] Renomeada a propriedade e métodos "TotalCancelamentosNaoTransmitidos" para "TotalCancelamentosEmAberto" [*] Modificação em GetDadosReducaoZ para considerar o valor de "TotalCancelamentosEmAberto" em "Total Cancelado ICMS" -- ACBrECFVirtual -- [*] Renomeada a propriedade e métodos "TotalCancelamentosNaoTransmitidos" para "TotalCancelamentosEmAberto" [-] Correção em "DescontoAcrescimoItemAnterior", para acumular valores de Descontos e Acrescimos nos Totalizadores [-] Correção em "CancelaItemVendido", para estornar os Descontos e Acrescimos efetuados no Item Cancelado, dos Totalizadores [-] Método "CancelaCupom", corrigido para considerar o SubTotal Bruto (sem Descontos), quando acumular nos totalizadores de Cancelamento [-] Correção em "CancelaCupom", para estornar os Descontos e Acrescimos efetuados no Subtotal do Cupom, dos Totalizadores -- ACBrECFVirtualBuffer -- [-] Correções na montagem do Relatório X/Z. - Descontos e Acrescimos sempre serão impressos - Adicionada a Impressão da Venda Líquida - Impressão de Total Cancelado considera "TotalCancelamentosNaoTransmitidos" - Corrigida a impressão dos Indices das Aliquotas de ICMS e Não Tributados Data: 25/01/2015 (por: DSA) -- ACBrECFClass -- [*] Ajuste em GetAsString, para que valores Decimais sempre usam apenas 2 casas -- ACBrECFVirtual -- [*] Refactoring, criando uma nova classe: "TACBrECFVirtualClassCupom", que conterá todos os Itens, Pagamentos e CNFs do Cupom Virtual. Facilitando a passagam dessa classe por parâmetro. [*] Propriedades "SubTotal" e "TotalPago", passam a ser ReadOnly e dependem do conteudo de "TACBrECFVirtualClassCupom" [+] Adicionado o evento "QuandoCancelarCupom(const NumCOOCancelar: Integer; CupomVirtual: TACBrECFVirtualClassCupom; var PermiteCancelamento: Boolean)" para permirir que a aplicação tenha um melhor controle sobre o Cupom a ser cancelado (ou não), e informar os dados do Cupom a ser cancelado, caso o mesmo não seja o último cupom (na memória do ECFVirtual) [+] Adicionado suporte a rateio de Desconto/Acrescimo no Subtotal, usando a mesma regra do ECF real, para considerar o "Residuo" [*] Modificação na assinatura do método: "SubtotalizaCupomVirtual" [*] Modificação na assinatura do método: "VerificaPodeCancelarCupom" [*] Modificação na assinatura do método: "RegistraItemNaoFiscalVirtual" [+] Adicionada sobrecarga no método "CarregaTotalizadoresNaoTributados", para retornar corretamente apenas F1, N1, I1 [-] Ajuste em AchaICMSAliquota, para encontrar corretamente "F1, N1, I1" e apenas esses. [*] Totalizador: "CuponsCanceladosNaoTransmitidos" renomeado para "CuponsCanceladosEmAberto" [*] Totalizador: "CuponsCanceladosTotalNaoTransmitidos" renomeado para "CuponsCanceladosEmAbertoTotal" [*] Método "VendeItem", modificado para fazer uso de "DescontoAcrescimoItemAnterior" [-] Método "DescontoAcrescimoItemAnterior", corrigido, para considerar acréscimos em VendaBruta e GrandeTotal [-] Método "CancelaItemVendido", corrigido, para não subtrair Item cancelado de VendaBruta [-] Método "SubtotalizaCupom", corrigido, para considerar acréscimos em VendaBruta e GrandeTotal [-] Método "SubtotalizaCupom", modificado para considerar o Rateio de Desconto ou Acréscimo nas Aliquotas do Cupom. (com suporte a resíduo) [-] Método "FechaCupom", modificado para não zerar Valor de "TotalPago" [*] Método "CancelaCupom", modificado para suportar o parâmetro: "NumCOOCancelar" chamando o novo evento "QuandoCancelarCupom". [-] Método "CancelaCupom", modificado para não subtrair de VendaBruta ou GT -- ACBrECFVirtualBuffer -- [*] Ajustes para compatibilização com o Refactoring Data: 21/01/2015 -- ACBrECFDaruma -- [*] Melhoria para que rotina de Cancelamento não acuse TimeOut em cupons com muitos itens: (por: Luiz Fernando) http://www.projetoacbr.com.br/forum/topic/27571-cancelamento-de-cupom-daruma-fs700/ Data: 20/01/2015 -- ACBrECFEscECF -- [+] Adicionada sobrecarga no método PafMF_GerarCAT52, para usar o método da classe do Fabricante e não o genêrico (por: DSA) Data: 19/01/2015 -- ACBrECF -- [*] Metodo "CancelaCupom" modificado para receber o Número do Cupom a ser cancelado. Procedure CancelaCupom( NumCOOCancelar: Integer = 0 ) Isso permitirá informar o Número do COO a ser cancelado, pois Modelos de ECF como ecfEscEcf e ecfECFVirtual, podem permir o cancelamento de Cupons que não sejam apenas o último. -- ACBrECFEscECF -- [*] Metodo "CancelaCupom", modificado para fazer uso do parâmetro "NumCOOCancelar" - O ACBrECF cuidará para cancelar todos os CCD's vinculados ao COO Informado - Se o NumCOOCancelar for um CCD, o ACBrECF cancelará todos os Vinculados e o Cupom Fiscal de origem do mesmo. Nota: Bematech MP4200-TH-FI v 01.01.00, não está permitindo cancelar Cupom Fiscal, que não seja o último emitido. [+] Implementado o suporte a propriedade "TipoUltimoDocumento". Por enquanto, penas para Epson TM800/900, pois depende de comando exclusivo do Fabricante. [+] Adicionado o método: Function EstornaCCD( NumCupomFiscal: Integer; ADiante: Boolean = True ) : Integer; -- ACBrECFBematech -- [-] Ajuste no calculo do Path do arquivo "Bemafi32.ini", quando PathDLL não for informado. [+] Ajuste para configuração correta do "Bemafi32.ini", fazendo uso da chave: "ProtocoloUnico" Data: 16/01/2015 -- ACBrECFVirtual, ACBrECFVirtualBuffer -- [+] Implementado o método DescontoAcrescimoItemAnterior http://www.projetoacbr.com.br/forum/index.php?showtopic=27414 Data: 13/01/2015 -- ACBrPosPrinter -- [+] Adicionado o evento: "OnEnviarStringDevice", que permite capturar todas as saídas de Impressão, e decidir se as envia ou não para o Device http://www.projetoacbr.com.br/forum/index.php?showtopic=27350 [-] Correção em TACBrPosPrinter.TxRx, para leitura de status do Equipamento http://www.projetoacbr.com.br/forum/index.php?showtopic=27194 12/01/2016 -- ACBrECFVirtualBuffer -- [-] Correção de Bugs introduzidos acidentalmente em 08/01/2016. (Não permtia sobrescrever, por completo, o método "AbreCupom". [*] Remoção da Linha tracejada inserida no final de "AddBufferCabecalho_Item", pois a Linha é inserida na criação do valor Default da propriedade "CabecalhoItem" (por: DSA) -- ACBrEscPosEpson -- [*] Ajuste para permitir tolerância de falhas na leitura de Status (por: DSA) 08/01/2016 -- ACBrECFVirtualBuffer -- [*] Ajuste de layout do comprovante de venda, para melhor compatibilidade com o antigo ecfNaoFical [-] Correção para não imprimir o consumidor no Cabeçalho e Rodapé [*] Ajuste para que cabeçalho dos Itens não seja impresso antes da identificação do consumidor no cabeçalho do cupom http://www.projetoacbr.com.br/forum/index.php?showtopic=27218 02/01/2016 -- ACBrECFFiscNET -- [*] Simplificação do método FechaCupom, para evitar erros na sequencia de envio dos comandos http://www.projetoacbr.com.br/forum/topic/26441-fechamento-cupom-ecffiscnet/ 22/12/2015 -- ACBrECFVirtual -- [-] Correção de Bug no calculo do G.T., quando há cancelamento de Vendas em aberto e de Cancelamento de Itens. (por: Amarildo Lacerda) http://www.projetoacbr.com.br/forum/index.php?showtopic=26685 -- ACBrPosPrinter -- [*] Ajuste para permitir caracteres da faixa 0 a 127 para Cod.Barras CODE93 (por: DSA) 21/12/2015 -- ACBrECFEscECF -- [*] Ajuste para correta impressão de Cod.Barras e Caracteres de Controle em Epson TM-800/900F, e Bametech MP4200-THFI (nota: Para a Impressão de Cod.barras usando a DLL da Epson como túnel, é requer necessário uma atualização da mesma) (por: DSA) 11/12/2015 -- ACBrECF -- [*] FechaCupom modificado para ajustar as Linhas do Cupom, limitando-as em 8 linhas, se necessário. Isso evita erros em alguns ECFs. http://www.projetoacbr.com.br/forum/index.php?showtopic=26640 (por: DSA) 04/12/2015 -- ACBrECFVirtual, ACBrECFVirtualBuffer -- [*] Adicionado controle para TotalDescontos e TotalAcrescimos, na Redução Z [*] Ajustes para Redução Z ficar mais próxima da real http://www.projetoacbr.com.br/forum/index.php?showtopic=26477 (por: Amarildo Lacerda) 03/12/2015 -- ACBrECFEscECF -- [*] Ajuste em GetDadosUltimaReducaoZ para Epson TM-T800/900F. Usado comando específico do fabricante, para ler Dados da Ultima Redução Z (por: DSA) 30/11/2015 -- ACBrECFEscECF -- [-] Ajuste em GetDadosUltimaReducaoZ para o caso de ECFs que não retornam os Totalizadores não Tributados (Epson TM-T800F).. Nesse caso o valor do Registrador será -1 ou não existirá no .INI (por: DSA) 26/11/2015 -- ACBrSMS -- [-] acertos para quebrar as mensagens corretamente http://www.projetoacbr.com.br/forum/topic/25928-sms-trunk2/ -- ACBrSMS -- [-] http://www.projetoacbr.com.br/forum/topic/25928-sms-trunk2/#comment-170671 -- ACBrECFSwedaStx -- [+] Adicionado o código de retorno 54-Emitindo Leitura de Memória Fiscal, aguarde... Na lista de Erros a serem ignorados http://www.projetoacbr.com.br/forum/topic/26247-redu%C3%A7%C3%A3o-z-swedastx/ 25/11/2015 -- ACBrECFEpson -- (por: Amarildo Lacerda) [+] Implementado o método "CancelaItemNaoFiscal" [+] Implementado a Impressão de Cheques, usando as cordenadas do arquivo "poscheque.dat" http://www.projetoacbr.com.br/forum/index.php?showtopic=26206 -- ACBrECFVirtual -- [-] Corrigida a Sequencia de programação de II e NN em CriarMemoriaInicial http://www.projetoacbr.com.br/forum/index.php?showtopic=26215 24/11/2015 -- ACBrEscECF -- [-] Ajuste na leitura de DadosUltimaReducaoZ dos ECFs Epson TM-800/900, onde as aliquotas de ICMS não eram corretamente identificadas, devido o fato do ECF retornar as aliquotas sem o ponto decimal (por: DSA) 23/11/2015 -- ACBrECFDaruma, ACBrECFEscECF -- [-] http://www.projetoacbr.com.br/forum/topic/25972-erro-na-geração-de-arquivo-na-daruma-fs800i/ 19/11/2015 -- ACBrECF -- [+] Adicionado o método: "GerarNotaGaucha" (por: Rafael Sartori) http://www.projetoacbr.com.br/forum/topic/26094-gerar-arquivo-nota-gaucha-acbrecfpas/ -- ACBrECFVirtual -- [+] Incluido totalizador para separar o cancelamento de CFe assinados e não gerados XML (por: Amarildo Lacerda) http://www.projetoacbr.com.br/forum/topic/25378-sugest%C3%B5es-de-controle-o-ecfvirtua-sat/ -- ACBrECFEscECF -- [*] Ajuste para tentar conexão sem Handshake, para detectar mais facilmente a Daruma FS800i (por: Rafael Vivan) http://www.projetoacbr.com.br/forum/index.php?showtopic=25183 17/11/2015 -- ACBrBALToledo -- [*] Refatoração no método de Leitura de Peso, para melhor suporte aos diversos protocolos da Toledo, e correta interpretação de respostas múltiplas (por: DSA) -- ACBrECFVirtual -- [*] Ajuste para evitar exception no comando de abertura de Gaveta (por: DSA) 15/11/2015 [*] melhoria da leitura de mensagens no ACBrSMS, contribuição: Duarte acerto no demo do ACBrSMS para as novas melhorias http://www.projetoacbr.com.br/forum/topic/25928-sms-trunk2/#comment-168444 por: Duarte 14/11/2015 -- ACBrSMS -- [+] Implementação da leitura de mensagens no ACBrSMS, contribuição http://www.projetoacbr.com.br/forum/topic/25928-sms-trunk2/#comment-168444 por: Duarte Data: 10/11/2015 -- ACBrDevice -- [*] Ajuste para método "EnviaStringSerial" considerar os Bytes realmente enviados. (por: DSA) -- ACBrECFEscECF -- [-] Ajuste para problema de Loop infinito em Daruma FS800I http://www.projetoacbr.com.br/forum/topic/25830-loop-daruma-fs800i/ [*] Diminuindo constante tempo de espera WAK de 200 para 50 -- ACBrECFSwedaStx -- [-] Correção na atribuição de Data de geração no método: "PafMF_GerarCAT52" http://www.projetoacbr.com.br/forum/topic/14569-erro-ao-gerar-cat52-ecfswedastx/ Data: 04/11/2015 -- ACBrEscDaruma -- [*] Ajuste para QRCode suportar Largura de Módulo = 3 (por: DSA) Data: 01/11/2015 -- ACBrECF -- [-] Aplicado correção para quebra de linha do GetRodapePaf deixando #10 (por: Juliomar) Data: 26/10/2015 -- ACBrPosPrinter -- [*] Refatoração nos métodos LerInfo e LerStatus para melhor suporte a portas TCP (por: DSA) -- ACBrEscPosEpson -- [-] Correção em LerInfo, para detecção da presença de Guilhotina (por: DSA) Data: 22/10/2015 -- ACBrPosPrinter -- [*] Ajuste para correta impressão de CODE128c (por: DSA) http://www.projetoacbr.com.br/forum/topic/25385-tm-t81-sat-c%C3%B3digo-barra/ [+] Adicionada a propriedade TagsNaoSuportadas: TStringList readonly. Permite verificar quais as tags o modelo selecionado não suporta. -- ACBrEscPosEpson -- [*] Ajuste para considerar valor Default da largura da Barra como 2 (0=2) (por: DSA) -- ACBrEscBematech, ACBrEscDiebold, ACBrEscDaruma -- [*] Ajustes para traduzir Tag de , , para [+] Adicionada em TagsNaoSuportadas (por: DSA) Data: 21/10/2015 -- ACBrECFVirtual -- [-] Alterado o codigo que estava copiando o GTAtual para a Venda Bruta http://www.projetoacbr.com.br/forum/topic/25377-ecfvirtual-corrigido-valor-venda-bruta-gravado-no-ini/ (por: Amarildo Lacerda) Data: 16/10/2015 -- ACBrECFSwedaStx -- (por: DSA) [-] Ajuste para envio de comandos com decimais sempre usando ",", independente do S.O. utilizado Data: 17/10/2015 (por: DSA) -- ACBrDevice -- [+] Procedure EnviaByte( const AByte : Byte ) [+] procedure Limpar ; [+] Function BytesParaLer: Integer; [*] Function "LeString" modificada para permitir a leitura por "Terminador" -- ACBrSerial -- [*] Refatoração em várias units para usar métodos de TACBrDevice ao invés de usar métodos diretamente de TBlockSerial. Isso permitirá que dispositivos Seriais usem Portas no formato "TCP:ip_maquina:NumPorta" -- ACBrECF -- [*] Método "IdentificaConsumidor" modificado para codificar as informações do Nome e do Endereço do Consumidor na página de código do ECF -- ACBrPosPrinter -- [+] Adicionado suporte a "LerInfoImpressora" e "LerStatusImpressora" em Portas TCP Data: 16/10/2015 -- ACBrECFEscECF -- (por: DSA) [-] Ajuste para não enviar a Data e Hora do PC quando parâmetro DataHora informado for 0 http://www.projetoacbr.com.br/forum/topic/25264-tm-t800ftm-t900f-redu%C3%A7%C3%A3o-z/ [-] Correção para correto tratamento da Resposta de Epson TM800F, em Delphi com USB/DLL -- ACBrECFSwedaStx -- (por: DSA) [-] Corrigida rotina de leitura de CMC7 http://www.projetoacbr.com.br/forum/topic/6891-leitura-de-cmc7-na-swedastx/ Data: 15/10/2015 -- ACBrECFSwedaStx -- (por: DSA) [*] Modfificadas as rotinas GetDataHora, GetDataHoraSB, GetDataMovimento, GetDataHoraUltimaReducaoZ para mitigar problemas com FormtatSettings Data: 13/10/2015 -- ACBrECFFiscNET -- [-] VendeItem, aplicado ajuste para Venda sem Departamento e com ArredondaItemMFD, no caso de ECFs que não possuem departamento programado (por: DSA) Data: 07/10/2015 -- ACBrECFEscECF -- [*] Workaround para problema de Loop na Bematech MP4200, modificados para monitorar comandos 22 e 26 (por: DSA) http://www.projetoacbr.com.br/forum/topic/22790-bematech-mp-4200-th-fi-entrando-em-loop/?do=findComment&comment=161992 Data: 05/10/2015 --ACBrECFVirtualBuffer -- [-] Ajuste para constar a Data do Movimento na Redução Z (por: Amarildo Lacerda) http://www.projetoacbr.com.br/forum/index.php?showtopic=24929 -- ACBrEscElgin -- [+] Implementado o método LerStatus. (por: tiagoshimizu) http://www.projetoacbr.com.br/forum/topic/24897-lestatus-impressoras-elgin-vox/ Data: 03/10/2015 -- ACBrECFEscECF -- (por: DSA) [*] Classe TACBrECFEscECF refatorada para permitir o uso de Protocolos Virtuais [+] Adicionado suporte a Epson TMT800/900 por "USB", necessitando porém, da biblioteca: "InterfaceEpson.dll" versão: 4.4.6 ou superior, na mesma pasta do .EXE... Configure ACBrECF.Porta := 'USB'; Data: 02/10/2015 -- ACBrECFEscECF -- [*] Aplicado Workaround para problema de Loop infinito em Bematech MP4200 (por: DSA e Rodrigo de Carvalho Ribeiro) http://www.projetoacbr.com.br/forum/topic/22790-bematech-mp-4200-th-fi-entrando-em-loop/?page=1 Data: 22/09/2015 -- ACBrECFEscECF -- [+] Adicionada leitura de DataHoraEmissao em DadosUltimaReducaoZ http://www.projetoacbr.com.br/forum/index.php?showtopic=24508 (por: Felipe Hoffmann) Data: 21/09/2015 (por: DSA) -- ACBrPosPrinter -- [*] Modificação para melhor flexibilização em comandos de controle de Caracteres impressos em conjunto -- ACBrEscDiebold -- [*] Melhoria para a impressão de Expandido (não imprime dupla altura) [-] Correção de Impressão de Textos com Formatações de Caracteres sobrepostas Ex: Negrito + Expandido, Negrito + Condensado Data: 18/09/2015 -- ACBrECFBematech -- (por: DSA) [*] Rotina que detecta final de leitura em capturas de leituras pela Serial, modificada, para evitar Falta de resposta (TimeOut) em algumas máquinas Data: 11/09/2015 -- ACBrPosPrinter -- (Por: Fabio Souza e DSA) [+] Adicionado suporte ao modelo Diebold, através do modo Esc/Pos Usado modelo TSP143M para testes http://www.projetoacbr.com.br/forum/index.php?showtopic=23975 [+] Adicionado suporte ao código de Barras UPCE Data: 08/09/2015 -- ACBrDevice -- (por: DSA) [*] Refatoração em TagProcessor.AcharProximaTag, movendo-a para ACBrUtil, para permitir o uso da mesma no método ACBrUtil.StripHTML Data: 31/08/2015 -- ACBrECFEscECF -- [-] Ajuste em CancelaCupom para situação de falha na detectação do Estado de Pagamento (por: Luiz Fernando) http://www.projetoacbr.com.br/forum/index.php?showtopic=23913 Data: 28/08/2015 (por: Amarildo Lacerda) -- ACBrECFVirtualBuffer -- [*] Correção para método LinhaCupomVinculado que estava imprimindo conteudo duas vezes http://www.projetoacbr.com.br/forum/index.php?showtopic=23999 Data: 26/08/2015 (por: DSA) -- ACBrEscElgin -- [+] Adicionado suporte a Impressora Elgin VOX e demais que usam EscElgin Data: 25/08/2015 (por Macgayver Armini/Isaque Pinheiro) -- ACBrECF -- [*] Adicionado canvas com suporte idêntico ao da VCL para o Firemonkey Correção das teclas de interceptação para o Firemonkey Adição de suporte a formulário de mensagem personalizado para o FireMonkey Correção da chamada Application.MainForm do Firemonkey [+] Criado dois eventos para Firemonkey: fsOnCriarFormMsg: TACBrFMXCustomForm; //Variavel do Evento de Formulário Personalizado fsOnDrawFormMsg: TACBrECFMsgAguarde; //Variavel para o usuário desenhar ou enviar para qualquer componente [*] Rerirecionado as propriedades de Published para Public property FormMsgColor property FormMsgColorFont property FormMsgFonte Data: 22/08/2015 (por: DSA) -- ACBrEscBematech -- [-] Correção para impressão de CODE128 em Bematech Data: 21/08/2015 (por: DSA) -- ACBrECFEscECF -- [-] Ajuste para correta programação da Identificação do Aplicativo (PAF-ECF), respeitando o numero de Colunas do Equipamento http://www.projetoacbr.com.br/forum/topic/23828-identificapaf/ -- ACBrPosPrinter -- [-] Ajuste para comando de Pulo de Linhas funcionar em Impressoras configuradas com o EspacoEntreLinhas muito baixo [*] Se a porta não é Serial, força o comando de Inicialização a cada Desativação da Porta. (corrige problema de Impressão em Bematech com Porta por compartilhamento ex: "\\localhost\mp4200" ) -- ACBrECFVirtualPrinter -- [-] Correção de congelamento, quando TACBrPosPrinter.ControlePorta estava habilitado -- ACBrECFVirtualBuffer -- [*] Remoção de do comando da Abertura de gaveta (desnecessário, pois agora TACBrPosPrinter tem um melhor controle sobre o estado de Inicialização da Impressora) -- ACBrECFVirtual -- [+] Programando um Relatório Gerencial padrão '01-DIVERSOS' durante a criação da Memória Inicial [-] Correção de Bug em AbreRelatorioGerencial, para usar como Indice padrão o Indice "01" Data: 20/08/2015 (por: DSA) -- ACBrPosPrinter -- [+] Adicionada a propriedade ACBrPosPrinter.Inicializada: Boolean (read only) Sinalizando se a Impressora já recebeu os comandos de programação para: Modo Esc, Espaçamento entre linhas e Página de Código [+] Adicionado o metodo "ACBrPosPrinter.Inicializar" (Nota: método "Zerar", já chama "Inicializar") [*] Melhorada a rotina de Impressão, para detectar a necessidade de enviar comando de Inicialização para a Impressora, caso o mesmo ainda não tenha sido enviado [+] Adicionada a propriedade ACBrPosPrinter.ConfigGaveta property SinalInvertido: Boolean default False; property TempoON: Byte default 50; property TempoOFF: Byte default 200 [*] Removida a propriedade GavetaSinalInvertido [*] Tag modificada para usar parâmetros de "ConfigGaveta" [+] Adicionada a Tag de Bloco: N, "Abertura de Gaveta Específica (1 ou 2)" -- ACBrEscBematech -- [*] Rotina de Impressão de QRCode revisada para respeitar o tamanho do módulo -- ACBrECFVirtualBuffer -- [*] Ajuste para abertura de gaveta em Impressoras que necessitam do envio de comando de Inicialização (Bematech) Data: 19/08/2015 (por: DSA) -- ACBrECFVirtualBuffer -- [-] Correção para alinhar fonte a Esquerda, no final da impressão do Cabeçalho -- ACBrECFEscECF -- [+] Método "DadosUltimaReducaoZ, adicionado workaround para Falta de Informação de Grande Total em retorno do ECF. Data: 15/08/2015 -- ACBrECFVirtual -- (por: DSA) [-] Ajuste para permitir executar "CancelaCupom" após Vinculado Data: 14/08/2015 -- ACBrEscBematech -- [-] Correção para impressão correta de QRCode na Bematech. http://www.projetoacbr.com.br/forum/index.php?showtopic=23313 -- ACBrECF -- [*] Correção para respeitar propriedade "IgnorarTagsFormatacao" (por:DSA) Data: 06/08/2015 -- ACBrDevice -- (por: DSA e Amarildo Lacerda) [+] Adicionado suporte a Impressoras TCP através da notação "TCP:ip_maquina:porta" http://www.projetoacbr.com.br/forum/index.php?showtopic=23211 Data: 05/08/2015 -- ACBrEscBematech -- (Por: Ronaldo Negreiros Daniel) [*] Ajuste para leitura correta do QRCode gerado pelas Impressoras Bematech http://www.projetoacbr.com.br/forum/index.php?showtopic=23313 -- ACBrECFBematech -- (por: DSA) [-] Correção para GetDadosUltimaReducaoZ. Leitura errada de comprovantentes Não Fiscais programados com Indice inferior a 03 Data: 04/08/2015 -- ACBrECF -- (por: DSA) [*] Ajuste para correta exibição de caracteres acentuados em MemoBobina -- ACBrEscBematech -- [-] Correção para impressão de QRCode na MP2500 http://www.projetoacbr.com.br/forum/index.php?showtopic=23313 Data: 27/07/2015 -- ACBrPosPrinter -- (por: DSA) [+] Adicionada as tags: - Bloco - Configura se deve exibir conteudo abaixo do Cod.Barras: 0-NAO; 1-SIM - Bloco - Configura a Largura das Barras do Cod.Barras: 0 a 5. (0=default) - Bloco - Configura a Altura do Cod.Barras: 0 a 255. (0=default) - Bloco - Configura o Tipo de QRCode: 1,2 - Bloco - Configura a Largura do QRCode: 1 a 16 - Bloco - Configura o Error Level do QRCode: 0 a 3 - Bloco - Configura a Impressão ou não do Logo Tipo: 0-NÃO, 1-SIM (default = 1) - Bloco - Configura a posição KC1 do Logo a ser impresso. Ex: 0=48 - Bloco - Configura a posição KC2 do Logo a ser impresso. Ex: 1=49 - Bloco - Configura o aumento Horizonal do Logo, de 1 a 4 - Bloco - Configura o aumento Vertical do Logo, de 1 a 4 Data: 15/07/2015 -- ACBrECFVirtual -- [-] Estava abrindo a porta serial antes de abrir na virtual (quando usa ESCPOS)... (por: Amarildo Lacerda) -- ACBrECFVirtualPrinter -- [-] A PosPrinter deve receber a configuração da porta configurada na ACBrECF (por: Amarildo Lacerda) Data: 26/07/2015 -- ACBrECFVirtual -- (por: DSA) [*] Adicionada chamada a registros de Log -- ACBrPosPrinter -- [+] Adicionada a propriedade ConfigLogo.IgnorarLogo, que permite que a Tag "" seja ignorada. Data: 15/07/2015 -- ACBrECFVirtual -- [-] Estava abrindo a porta serial antes de abrir na virtual (quando usa ESCPOS)... (por: Amarildo Lacerda) -- ACBrECFVirtualPrinter -- [-] A PosPrinter deve receber a configuração da porta configurada na ACBrECF (por: Amarildo Lacerda) Data: 14/07/2015 -- ACBrPosPrinter -- (por: Regys Silveira) [+] Adicionado método AbrirGaveta ao ACBrPosPrinter, permitindo chamar o comando quando necessario. Data: 09/07/2015 -- ACBrECFEscECF -- (por: DSA) [*] Ajustes de Tamanho de colunas e Pag.Codigo para a Daruma FS800i [-] Correção de GetNumLoja para Epson TM-T800 [+] Implementação de GetNumLoja para Daruma FS800i [+] Implementação de TraduzirTag e TraduzirTagBloco em Epson e Daruma (a testar) [+] Implementação de chamada a Metodos de uso da DLL (Ex: EspelhoMFD_DLL) em Daruma (a testar) [-] Correção para numeração automática de Posição em ProgramaAliquota, ProgramaFormaPagamento, ProgramaRelatorioGerencial, ProgramaComprovanteNaoFiscal Data: 08/07/2015 -- ACBrECFEscECF -- (por: DSA) [*] Ajuste para AbreNaoFiscal quando o CNPJ/CPF é recusado pelo ECF http://www.projetoacbr.com.br/forum/index.php?showtopic=22762 [*] Ajustes para correta interpretação após Redução Z em Daruma FS800i [*] Ajustes para falta de valor zerado, nas respostas da Daruma FS800i http://www.projetoacbr.com.br/forum/topic/22659-daruma-fs800i/ Data: 06/07/2015 -- ACBrECFEscECF -- (por: DSA) [*] Workaround para falta de resposta do ECF Daruma FS800i em EfetuaPagamento Data: 03/07/2015 -- ACBrECFSwedaStx -- (por: DSA) [-] Correção para VerificaFimLeitura, em mudança de estado com Erro = 0 Data: 02/07/2015 -- ACBrECFEscECF -- (por: DSA) [-] Ajuste do tamanho máximo de Buffer a ser enviado pro ECF em Relatórios http://www.projetoacbr.com.br/forum/index.php?showtopic=22615 Data: 29/06/2015 -- ACBrECFSwedaStx -- (por: DSA) [-] Ajustes para decodificar Página de Código em AbreRelatorioGerencial Data: 28/06/2015 -- ACBrECFSwedaStx -- (por: DSA) [-] Tentativa de correção de A.V. em algumas versões do Delphi http://www.projetoacbr.com.br/forum/topic/22492-erro-classe-acbrecfswedastx-trunk2/ [-] Correção para captura de informações pela Serial Data: 19/06/2015 -- ACBrCHQ -- [-] Adicionado o suporte a impressora de cheques Elgin Contribuição: Laercio Data: 16/06/2015 -- ACBrECFEscECF -- (por: DSA) [-] Corrigido Bug na detecção do estado "estPagamento" após a Subtotalização do Cupom [*] Melhorada rotina de Sincronismo com o ECF, adicionando 5 tentativas. [*] Melhorada a rotina de calculo de Checksum, para desprezar buffer de Resposta adicional e não solicitado. [+] Adicionada verificação de Falha de Resposta ao pedido de Status (ECF mudo) problema detectado na Leitura de DadosUltimaReducaoZ em Bematech MP4200-TH Data: 15/06/2015 -- ACBrECFBematech e ACBrDevice -- (por: batiati) [*] Inclusão da propriedade "Margem" na classe ConfigBarras http://www.projetoacbr.com.br/forum/index.php?/topic/22083-acbrecf-centralizar-c%C3%B3digo-de-barras/ Data: 08/06/2015 -- ACBrECFSwedaStx -- (por: DSA) [-] Correção na leitura do Status de Pouco Papel Data: 06/06/2015 -- ACBrSMS -- [+] Adicionado método para apagar mensagens http://www.projetoacbr.com.br/forum/index.php?/topic/22003-acbrsms-apagar-mensagem/#entry141709 Data: 03/06/2015 -- ACBrETQ -- (por: Elias) [+] Adicionado a propriedade ArqLOG [+] Adicionado o evento OnGravarLog Data: 03/06/2015 -- ACBrETQ -- (por: DSA e Elias) [*] Refactoring em todas as classes para simplificação de código Data: 02/06/2015 -- ACBrETQ -- (por: DSA e Elias) [-] Correção de bug na Impressão de Etiquetas, usando IniciarEtiqueta e FinalizarEtiqueta Data: 25/05/2015 -- ACBrEscECF -- [*] Ajuste para compatibilizar com Epson TM-T800F 01.01 http://www.projetoacbr.com.br/forum/index.php?showtopic=21780 Data: 12/05/2015 (por: regys.silveira) -- ACBrECFEscECF -- [-] acertos no tratamento de aliquotas para o protocolo EscECF [-] Acertos no tratamento de retorno das impressoras Daruma EscECF [-] Acertos no retorno de aliquotas Data: 04/05/2015 (por: DSA) -- ACBrDevice -- [*] Ajustes de Units para FMX [+] Adicionado TCriticalSection para evitar chamadas concorrentes a escrita na porta do Device [*] Tipo: TACBrECFTipoCodBarra modificado para: TACBrTipoCodBarra [+] Criada novas classes para processamento genérico de TAGs: TACBrTag, TACBrTags, TACBrTagProcessor. -- ACBrECF -- [*] Modificado para usar o TACBrTagProcessor -- ACBrECFClass, ACBrECFBematech, ACBrECFDaruma, ACBrECFEpson, ACBrECFFiscNet, ACBrECFSwedaStx, ACBrECFEscECF, -- [*] Mecanismo de tradução de Tags ajustado para TACBrTagProcessor e ACBrConsts -- ACBrPosPrinter -- [+] Criado novo componente: TACBrPosPrinter, que permite manipular Impressoras NAO fiscais, de bobina, usando a linguagem EscPos ou similares, por meio de TAGS no texto. Controla a formatação de caracteres Ex: Negrito, expandido, condensado, etc e a impressão de Cod.Barras e QRCode. Compatível com: ppEscPosEpson, ppEscBematech, ppEscDaruma Data: 27/04/2015 (por: DSA) -- ACBrECFSwedaSTX -- [-] Correção para correta impressão de Descrição Grande http://www.projetoacbr.com.br/forum/index.php?showtopic=21320 Data: 20/04/2015 (por: DSA) -- ACBrECF -- [+] Adicionada a propriedade TotalizadoresNaoTributados, que retorna uma lista de Objetos com os Totalizadores Não Tributados Disponíveis e ativados no ECF { Exemplos: F1, F2, F3, N1, N2, N3, I1, I2, I3, FS1, NS1, IS1 } [+] Adicionado o método: CarregaTotalizadoresNaoTributados, para ler do ECF e popular a lista de Totalizadores Nao Tributados existentes e ativados. [+] Adiconado o método: LerTotaisTotalizadoresNaoTributados, para ler o Valor Total acumulado em Cada Totalizador Nao Tributado existente. [+] Adicionado método AchaTotalizadorNaoTributadoIndice( Indice : String ) para efetuar Busca e retornar o Objeto do Totalizador Nao Tributado referente ao Indice. Se não encontrar, retorna NIL [+] Adicionado o método: SomaTotalizadorNaoTributadoIndice(Indice: String): Double; que retorna o total de um Grupo de Totalizador Nao Tributado. Exemplo: SomaTotalizadorNaoTributadoIndice('F'), retorna a Soma de F1, F2 e F3 [*] Método AchaICMSAliquota, modificado, para: - Considerar corretamente todos os Totalizadores Nao Tributados existentes no ECF - Um Exception será disparado, se o Totalizador Nao Tributado informado, não existir no ECF -- ACBrECFEscECF -- [*] Méotodo GetEstado modificado para considerar o Cupom Aberto, mesmo quando existir uma Redução Z pendente em conformidade com os demais modelos -- ECFTeste -- [+] Adiconado Menu "Variaveis -> Totalizadores Não Fiscais", para demonstrar e testar o funcionamento dos métodos: CarregaTotalizadoresNaoTributados, LerTotaisTotalizadoresNaoTributados, AchaTotalizadorNaoTributadoIndice. Data: 27/04/2015 (por: DSA) -- ACBrECFSwedaSTX -- [-] Correção para correta impressão de Descrição Grande http://www.projetoacbr.com.br/forum/index.php?showtopic=21320 Data: 07/04/2015 (por: DSA) -- ACBrECFEscECF -- [*] Removida a restrição de apenas permitir Letras no cadastro de Formas de Pagamento ou Relatório Gerencial http://www.projetoacbr.com.br/forum/index.php?showtopic=20904 -- ACBrECFSwedaStx -- [-] Ajuste para correta detecção de Tampa aberta ou fim de papel http://www.projetoacbr.com.br/forum/index.php?showtopic=20803 Data: 01/04/2015 -- ACBrECFEscECF -- (por: DSA) [*] Ajuste para correta impressão de linhas sem conteudo no modelo Bematech MP4200 Data: 31/03/2015 -- ACBrECFBematech -- (por: DSA) [*] Adicionado suporte a impressão do Operador, no rodapé do Cupom Fiscal, caso o mesmo tenha sido informado com "IdentificaOperador" Data: 30/03/2015 -- ACBrECFDaruma -- (por: DSA e Elias) [-] Corrigido Bug na leitura de COO após a emissão de Leitura de Memória Fiscal Data: 07/03/2015 -- ACBrECFEscECF -- (por: DSA) [+] Adicionado suporte ao método: GetNumUltimoItem, usando cache de respostas Data: 06/03/2015 -- ACBrECFDaruma -- [*] Ajuste no método: MudaHorarioVerao para compatibilizar com protocolo novo em modelos mais recentes (por: jperim) http://www.projetoacbr.com.br/forum/index.php?showtopic=20198 Data: 04/03/2015 -- ACBrBAL -- [*] Inclusão do modelo ACBrBALToledo9091_8530_8540. (por Rafael Dipold) Data: 20/02/2015 -- ACBrECFBematech -- (por: DSA) [+] Ajuste para permitir a identificação do consumidor no Rodapé, conforme instruções do suporte da Bematech Data: 05/02/2015 -- ACBrECF -- [-] acerto para adicionar a chave no rodape de imposto aproximado, conforme manual a chave deve ser impressa. por Regys Silveira [-] Acerto na impressão do numero do DAV, está duplicando a quebra de linha. Data: 30/01/2014 -- ACBrECFEscECF -- (por: DSA) [*] Workaround para erro 16-3 (Data em intervalo inválido.), durante a Impressão da Redução Z, na Epson TM-T800F http://www.projetoacbr.com.br/forum/index.php?showtopic=19759 Data: 26/01/2014 [-] Acerto no caminho onde ficam os inis da dll bematech, http://www.projetoacbr.com.br/forum/index.php?showtopic=19683 por: daniel.breda Data: 23/12/2014 -- ACBrETQ -- [-] Corrigido Bug que impedia impressao de Etiquetas usando apenas o método "Imprimir" (por: DonizeteFalcon) http://www.projetoacbr.com.br/forum/index.php?showtopic=19007 Data: 19/12/2014 -- ACBrECFEscECF -- (por: DSA) [-] Aplicado workaround para problema em emissão de Vinculado na Epson TM-T800F http://www.projetoacbr.com.br/forum/index.php?showtopic=18825 -- ACBrECFBematech -- [-] Aplicado workaround para termino prematuro de Relatórios enviados pela Serial http://www.projetoacbr.com.br/forum/index.php?showtopic=19179 Data: 11/12/2014 -- ACBrECF -- (por: DSA) [-] Correção para acentuação no método "GetRodapeImposto", em sistemas com UTF8 'Você pagou aproximadamente:....." Data: 03/12/2014 -- ACBrECFFiscNet -- [*] Ajustes para ECFs que retornam o DadosUltimaReducaoZ fora do padrão http://www.projetoacbr.com.br/forum/index.php?showtopic=18502 (por: Simone D. Russo) Data: 29/11/2014 -- ACBrBal -- (por: Regys Silveira) [+] Adicionada balança Lider. Contribuição: Laércio Amici Data: 29/11/2014 -- ACBrECFFiscNet -- (por: DSA) [-] Ajuste em DadosUltimaReducaoZ para que não seja interrompida por exceção, caso ECF ainda não contenha uma Redução Z na memória Data: 18/11/2014 -- ACBrECFEscECF -- (por: DSA) [-] Correção nos métodos de Captura de MF/MFD usando a DLL, para o modelo da Epson Data: 17/11/2014 -- ACBrECF -- (por: DSA) [-] Aplicando Conversão de Encoding no parâmetro "Observacao" antes de chamar: "OnDepoisFechaCupom" e "OnDepoisFechaNaoFiscal". Antes o parâmetro era informado com o Encoding do ECF Data: 15/11/2014 -- ACBrECF -- (por: DSA) [*] Adicionado o parâmetro "IgnorarAcentos: Boolean = False" no método AchaFPGDescricao Data: 14/11/2014 (por: Elton) -- ACBrECF -- [-] Correção do rodapé para impostos separados. Era impresso impostos municipais no ModoCompacto, mesmo quando não eram informados se houvesse imposto estadual; [*] A impressão dos impostos não vai mostrar impostos estaduais ou municipais se estes não forem informados, mesmo quando não no modo compacto, conforme o modelo; [+] Adicionada linha que informa o valor realmente gasto nos produtos/serviços conforme o modelo (subtotal - impostos); Data: 12/11/2014 -- ACBrECF -- [+] Ajustes para impressão dos impostos separados por esfera seguindo os novos modelos disponibilizados pelo IBPT. Exemplo do FechaCupom no ECFTeste (Delphi) foi alterado para exemplificar o uso. A compatibilidade foi mantida. (por: EMBarbosa e clever-x) Data: 10/11/2014 (por: DSA) -- ACBrECFEpson -- [*] Ajuste nos métodos ArquivoMFD_DLL para suportar a "finSintegra" Data: 06/11/2014 (por: Juliomar) [-] Correção na impressão do DAV: http://www.projetoacbr.com.br/forum/index.php?/topic/18505-dav-imprimindo-incorretamente/ Data: 30/10/2014 (por: DSA) -- ACBrECFEscECF -- [-] Metodos de Leitura de MFD por DLL não recebiam valor da propriedade PathDLL http://www.projetoacbr.com.br/forum/index.php?showtopic=18392 Data: 29/10/2014 (por: DSA) -- ACBrECF -- [+] Adicionado o método: "VendeItemEx", que permite a passagem de parâmetros necessários para a emissão de documentos fiscais eletrônicos. Leia os parâmetros existentes e sua explicação em ACBrECF.pas, linha: 605 [*] Refactoring em VendeItem, criando novos métodos que são compartilhados com VendeItemEx. Criado os métodos: IniciaVendeItem e FinalizaVendeItem -- ACBrECFBematech -- [+] Implementado suporte para o método VendeItemEx, compatibilizando com a Plataforma Fiscal da Bematech, (usando o pacote 85/01) -- ACBrECFSwedaSTX -- [*] Melhorias no gravação do LOG Data: 18/10/2014 (por: DSA) -- ACBrECFEscECF -- [*] Aplicado workaround para o modelo Epson, na detectção do estado "estRequerZ" Data: 17/10/2014 (por: DSA) -- ACBrECFVirtual -- [-] Correção de bug na Criação de memória virtual, onde as aliquotas padrões eram perdidas Data: 15/10/2014 (por: DSA) -- ACBrECF -- [*] Ajustes para ConfigBarras usar valores default de cada Classe -- ACBrECFEpson -- [-] Correção de Bug na rotina de analise de Erro... ocasionando erro na carga de Formas de Pagamento Data: 14/10/2014 (por: DSA) -- ACBrECFEscECF -- [-] Correção para método: GetDataHoraSB, no modelo Epson Data: 13/10/2014 (por: DSA) -- ACBrECFEpson -- [-] Removido o método interno "RemoveCaracteresNaoImprimiveis" criado em 28/05/2014 Pois esse metodo removia os caracteres de Controle de Impressão impossibilitando o uso de TAGS de formatação. A remoção de caracteres não imprimiveis dever ser tratada pela rotina chamadora... Data: 11/10/2014 (por: DSA) -- ACBrECFEpson -- [*] Refactoring no método de Descrição de Erro, para permitir o uso em outras classes (EscEcf) -- ACBrECFEscECF -- [*] Ajustes para compatibilização com Epson TM-T800F. [+] Adicionada rotina para sincronização da sequencia com o ECF [+] Adicionado tratamento de erro, para o caso de erro de falha na sincronização [+] Ajuste na rotina de Descrição dos Erros, para considerar códigos de erros internos da Epson [*] Ajuste em "PulaLinhas", para correto funcionamento com a Epson [*] Melhorias no mecanismo de gravação de Log, refletindo toda a comunicação serial [*] Ajuste na página de código para 850, quando ECF for Epson [*] Ajuste em RetornaInfoECF, para compatibilizar com a resposta da Epson [-] Correção para o Cancelamento de Comprovante Não Fiscal [*] Ajuste para evitar erros na Carga de Aliquotas, na Epson, quando não há nenhuma aliquota programada Data: 07/10/2014 (por: DSA) -- ACBrECF -- [-] Corrigido bug na modificação de ECFVirtual em run-time, (não era atualizado na classe interna) -- ACBrECFVirtual -- [*] Adicionado ponto de herança em LeArqINI e GravaArqINI, permitindo aos ECFs Virtuais, salvar outros arquivos ao mesmo tempo da persistência da memória do ECF Virtual Data: 06/10/2014 (por: DSA) -- ACBrECFVirtual -- [*] Modificada a visibilidade das propriedades: Colunas, NomeArqINI, NumSerie, NumECF, NumCRO, CNPJ, IE, IM para para Protected, elas devem ser redeclaradas como Published nas classes filhas (Ex: ACBrECFVirtualNaoFiscal), se necessário [*] Evento: OnGravaArqINI renomeado para: QuandoGravarArqINI [*] Evento: OnLeArqINI renomeado para: QuandoLerArqINI [+] Adicionada propriedade "ChaveCupom", para armazenar código externo do documento gerado no ECFVirtual -- ACBrECFEscECF -- [*] Melhorias no gravação do Log, para tentativa de compatibilização com Epson TM-T800F Data: 05/10/2014 (por: DSA) -- ACBrECFVirtual -- [*] Coleção de objetos: ItensCupom, PagamentosCupom e CNFCupom modificados de TObjectList para tipos específicos. -- ACBrECFVirtualPrinter -- [*] Modificada visibilidade de propriedades relacionadas a controle de impressão de Published para Protected, elas devem ser redeclaradas como Published nas classes filhas (Ex: ACBrECFVirtualNaoFiscal), se necessário Data: 03/10/2014 -- ACBrDIS -- [-] Correção de Bug que impedia o funcionamento dos efeitos de animações -- ACBrDISGertecTEC65lib -- [+] Adicionado novo modelo "disGertec65Lib" (que depende da 'tec65_32.dll') Data: 02/10/2014 -- ACBrETQ -- [+] Adicionada procedure "IniciarEtiqueta" e "FinalizarEtiqueta", que possibilitam desenhar vários modelos de etiquetas antes de enviar os comandos de impressão (por: Elias) -- ACBrETQClass -- [+] Adicionada propriedade "ETQInicializada" que possibilitará verificar se os comandos de inicialização da etiqueta já foram incluídos na variável ListaCmd [+] Adicionada propriedade "ETQFinalizada" que possibilitará verificar se os comandos de finalização da etiqueta já foram incluídos na variável ListaCmd (por: Elias) -- ACBrETQPpla -- [+] Implementado método IniciarEtiqueta; [+] Implementado método FinalizarEtiqueta(Copias:Integer = 1;AvancoEtq:Integer = 0); [*] Ajuste na procedure Imprimir(Copias: Integer = 1; AvancoEtq: Integer = 0) para que utilize as novas rotinas "IniciarEtiqueta" e "FinalizarEtiqueta" no momento de enviar os comandos de impressão (por: Elias) -- ACBrETQPpla -- [+] Implementado método IniciarEtiqueta; [+] Implementado método FinalizarEtiqueta(Copias:Integer = 1;AvancoEtq:Integer = 0); [*] Ajuste na procedure Imprimir(Copias: Integer = 1; AvancoEtq: Integer = 0) para que utilize as novas rotinas "IniciarEtiqueta" e "FinalizarEtiqueta" no momento de enviar os comandos de impressão (por: Elias) -- ACBrETQPEpl2 -- [+] Implementado método IniciarEtiqueta; [+] Implementado método FinalizarEtiqueta(Copias:Integer = 1;AvancoEtq:Integer = 0); [*] Ajuste na procedure Imprimir(Copias: Integer = 1; AvancoEtq: Integer = 0) para que utilize as novas rotinas "IniciarEtiqueta" e "FinalizarEtiqueta" no momento de enviar os comandos de impressão (por: Elias) Data: 10/09/2014 -- ACBrECFEscECF -- [+] Adicionado suporte aos métodos: EspelhoMFD_DLL, ArquivoMFD_DLL, ArquivoMF_DLL para o Modelo MP4200 da Bematech (por: DSA) Data: 11/08/2014 -- ACBrECFFiscNet -- [-] A Elgin K retorna em alguns casos um byte a mais gerando um número de série com 21 caracteres, foi implementado a verificação e remoção se necessário do byte excedente. Data: 28/07/2014 -- ACBrBAL -- [+] Adicionado mecanismo de Gravação de Log (por: DSA) [*] Refactoring de GravaLog para ACBrUtil.pas procedure WriteLog(const ArqTXT, AString: AnsiString; TranslateUnprintable: Boolean); Data: 17/07/2014 -- ACBrECFSwedaSTX -- [*] Modificações em ArquivoMFD_DLL para correta geração dos arquivos: "LMFC cotepe 17/04" e "Arq.MFD", (por: Arthur) http://www.projetoacbr.com.br/forum/index.php?showtopic=13524 Data: 15/07/2014 -- ACBrECFClass -- (por: DSA) [-] Correção a bug introduzido em 16/06/2014. Problema no carregamento de Formas de Pagamento acentuadas: http://www.projetoacbr.com.br/forum/index.php?showtopic=16475 Data: 30/06/2014 -- ACBrECFDaruma -- [*] Ajuste para imprimir corretamente a Identificação do Consumidor no Rodapé no modelo: "010400" (antigas FS600) (Por: Ivan) http://www.projetoacbr.com.br/forum/index.php?showtopic=16123 Data: 28/06/2014 -- ACBrECFDaruma -- [*] Ajuste para evitar a modificação inadvertida de DecimaisQtd e DecimaisPreco (por: DSA) Data: 20/06/2014 -- ACBrECFBematech, ACBrECFDaruma -- [*] Ajustes para geração de Arquivos com Finalidade finSintegra e finSPED http://www.projetoacbr.com.br/forum/index.php?showtopic=16129 Data: 18/06/2014 (por: DSA) -- ACBrECFFiscNET -- [*] Ajusta para que GetDadosUltimaReducaoZ leia corretamente os Totalizadores de alíquotas, mesmo se o índice 0 não estiver programado corretamente Data: 16/06/2014 (por: DSA) -- ACBrECF -- [+] Adicionada a propriedade "ECFVirtual", que permite fazer com que o ACBrECF comande um outro componente do tipo TACBrECFVirtual. Nesse caso, o modelo deve ser ajustado para "ecfVirtual" e ambos componentes associados [*] Refactoring de código [*] Ajustes para suportar TACBRECFVirtualClass como um TACBRECFClass [+] Adicionada a propriedade "AsString" em TACBrECFAliquota, TACBrECFFormaPagamento, TACBrECFComprovanteNaoFiscal, para permitir salvar e recuperar mais fácilmente valores desses objetos [*] Ajustes para tentativa de compatibilização com FireMonkey (FMX) -- ACBrECFVirtualNaoFiscal -- [+] Criado novo componente, que servirá de base para todos os ECFs virtuais, que precisarão de Impressão similar a de um ECF. Trata-se de um grande refactoring da Unit ACBrECFNaoFiscal.pas. Ou seja, este ECF Virtual é um emulador de ECF - Permite salvar no componente, propriedades fixas do ECF como: Colunas, NumECF, NumSerie, CNPJ, IE, Cabeçalho, Comandos de Controle da Impressora - Possui disparo de Eventos quando lê e grava o .INI (memória do ECF), permitindo persisti-lo em Banco de Dados ou de outra forma. - Deve ser usado em conjunto com ACBrECF, e ACBrECF.Modelo := ecfECFVirtual Data: 15/06/2014 -- ACBrECFFiscNET -- [-] Correção de leitura de Totalizadores Parciais Tributados dos Dados da Ultima Redução Z (por: DSA) http://www.projetoacbr.com.br/forum/index.php?showtopic=16114 Data: 06/06/2014 -- ACBrECFDaruma -- [+] Implementado método GetNumLoja (por: DSA) Data: 28/05/2014 -- ACBrECFEpson -- [*] Adicionada verificação para evitar erro de Impressão em Linha de CCD ou Gerencial, pois o ECF não suporta o caracteres inferores a #32 (por: DSA) Data: 21/05/2014 -- ACBrECF -- [+] Nova Propriedade, ControlePorta: Boolean = false Quando True, faz com que o ACBrECF ative e desative a porta a cada comando enviado. Util para ECFs com Porta Serial Virtual (driver USB) (por: DSA) -- ACBrECFBematech, ACBrECFSwedaSTX, ACBrECFEpson -- [*] Melhoria no registro do Log (por: DSA) Data: 17/05/2014 -- ACBrECFFiscNET -- [*] Ajuste para Modelo "URANO/1FIT LOGGER" em 48 col (por:DSA) www.projetoacbr.com.br/forum/index.php?showtopic=10775 -- ACBrECFDaruma -- [-] Correção para impressão de Dados do Consumidor no Rodape do Cupom (por: DSA) www.projetoacbr.com.br/forum/index.php?showtopic=15636 Data: 10/04/2014 -- ACBrECFBematech -- [*] Melhorada rotina de Leitura da DLL, para conseguir configurar a Porta Serial no arquivo .INI corretamente (por:DSA) [*] Implementada rotina de descarga da DLL (por: DSA) -- ACBrECFDaruma -- [*] Implementada rotina de descarga da DLL (por: DSA) Data: 25/04/2014 -- ACBRCHQBematech -- [*] Segunda Versao ACBrCHQBematech (por William Duarte) Data: 08/04/2014 -- ACBrECFEpson -- [*] IdentificaOperador modificado para não imprimir Relatório Gerencial após a sua execução (por: DSA) Data: 07/04/2014 -- ACBrECFEpson -- [*] Adicionada verificação para evitar erro de Impressão em Linha de CCD ou Gerencial, pois o ECF não suporta o caracter "FF" ou #12 (por: DSA) Data: 04/04/2014 -- ACBrECFSwedaSTX -- [-] Corrigido Bug em RegistraItemNaoFiscal, que não conseguia intrepretar Acentos (por: DSA) Data: 31/03/2014 [-] Corrigido Bug em VerificaFimImpressao, onde na impressão de comandos lentos, como no caso da ReduçãoZ, o ECF acusava TimeOut muito antes do estabelecido (por: DSA) [*] Removido código experimental para uso da USB por DLL, pois isso não funcionou adequadamente e não será suportado pela DLL da Bematech, já que a mesma criou um Driver de Porta Serial Virtual (por: DSA) Data: 16/02/2014 -- ACBrBase.pas -- [-] Correção no método TACBrInformacoes.FieldByName, para evitar A.V. em rotinas chamadoras, e compatibilização com TDataset.FieldByName (por: DSA) Data: 05/01/2014 -- ACBrECF -- [*] Ajuste no método PafMF_GerarCAT52 para utilizar a nomenclatura de arquivos conforme definido na lei, o que deve corrigir a geração deste formato de arquivo para alguns modelos de ECF (por:DSA) Data: 04/01/2014 -- ACBrECFFiscNET -- [-] Correção da captura dos Valores das Aliquotas no método: DadosUltimaReducaoZ http://www.projetoacbr.com.br/forum/index.php?/topic/13813-erro-elgin-em-getdadosultimareducaoz Data: 14/11/2013 -- ACBrECFEpson -- [-] Correção na rotina de interpretação da Fim de Leitura do ECF. Em algumas raras situações o ACBrECF poderia não ler todo o Buffer de resposta acusando erro no Checksum e invalidando o Pacote recebido. (por: DSA) Data: 04/11/2013 -- ACBrECFEscECF -- [-] Remoção de código que usava outra classe de ACBrECFClass para EspelhoMFD_DLL, ArquivoMFD_DLL e ArquivoMF_DLL, por causar interferências na classe Principal (fpDevice é compatilhado) (por: DSA) Data: 08/10/2013 -- ACBrECFBematech -- [*] Aplicado refactoring para facilitar e otimizar leitura do número do proprietário (por: DSA) [*] Adicionado código para verificar versão mínima da DLL da Bematech como: 6.1.1.6, para evitar erros na geração de arquivos por Download da MFD (por: DSA) [*] ArquivoMFD_DLL por CRZ, modificado para usar método específico da DLL (por: DSA) -- ACBrECFEscECF -- [*] Tentativa de implementação dos métodos: EspelhoMFD_DLL, ArquivoMFD_DLL e ArquivoMF_DLL, usando classes já existentes... (por: DSA) Data: 28/09/2013 -- ACBrECFEscECF -- [-] Correção do método GetDataMovimento (por: DSA) http://www.projetoacbr.com.br/forum/index.php?/topic/12487-erro-datamovimento-mp4200/ -- ACBrECFBematech -- [*] Ajuste do método ArquivoMFD_DLL para utilizar a nova função "Bematech_FI_ArquivoMFDPath" (por: DSA) http://www.projetoacbr.com.br/forum/index.php?/topic/ 10674-ajustes-para-gerar-cat52-para-impressora-bematech-informando-caminho/ Data: 23/09/2013 -- ACBrECFDaruma -- [-] Acerto na geração dos menus fiscais "Arq.MF" e "Arq.MFD" para impressora Daruma. por: regys.silveira Data: 13/09/2013 -- ACBrECF -- [+] Modificado rotina de impressão do texto referente ao Paraíba Legal para atender a legislação fo Ato Cotepe 09/13. por: Juliana Tamizou Data: 09/09/2013 -- ACBrECF -- [+] Adicionados os métodos PafMF_ArqMF e PafMF_ArqMFD para geração dos respectivos menus fiscais, os métodos já efetuam a geração automática dos arquivos .TXT de mesmo nome com a assinatura EAD. por: regys.silveira Data: 19/08/2013 -- ACBrECFEpson -- [-] Correção no retorno de DataHoraSB quando o ECF ainda não possui nenhuma Redução Z emitida www.projetoacbr.com.br/forum/index.php?showtopic=11922 Data: 29/08/2013 -- ACBrECFEscECF -- [-] Correção no método DescontoAcrescimoItemAnterior (por: DSA) Data: 08/08/2013 -- ACBrECF -- [*] Ajuste para evitar TimeOut em CortaPapel para as classes: (por: DSA) ACBrECFEpson, ACBrECFDaruma, ACBrECFFiscNET, ACBrECFSwedaSTX, ACBrECFEscECF Data: 08/08/2013 -- ACBrECF -- [*] Ajuste de tamanho máximo no método ProgramaFormaPagamento para as classes: ACBrECFFiscNET e ACBrECFSwedaSTX (por: DSA) Data: 07/08/2013 -- ACBrECFEpson -- [*] Tratamento para remover caractere não alfanuméricos do Codigo (por: DSA) www.projetoacbr.com.br/forum/index.php?showtopic=11698 Data: 01/08/2013 -- ACBrECF -- [*] Refactoring em GetDataHoraSB, efetando os modelos: ecfBematech, ecfFiscNET, ecfEpson. Usando uma única rotina para captura da Data e Hora do Sw.Básico através da Captura de informações da Leitura da Memoria Fiscal. (por: DSA) Data: 25/07/2013 -- ACBrECFFiscNet -- [-] Corrigido Bug na leitura de DadosUltimaReducaoZ (por: DSA) -- ACBrBALFilizola -- [-] Correção na leitura, só tenta ler novamente se o peso for Instável (por: DSA) -- ACBrBAL -- [*] Revisão em demais fontes e pequenos ajustes (por: DSA) Data: 24/07/2013 -- ACBrECFEscECF -- [-] Correção no protocolo de comunicação. Adicionando tratamento para o caso do ECF retornar WACK (ocupado) durante o envio do comando. (por: DSA) [*] Modificada as rotinas "ProgramaRelatorioGerencial, ProgramaFormaPagamento, ProgramaComprovanteNaoFiscais, AchaFPGDescricao, AchaRGDescricao, AchaCNFDescricao" para usar apenas caracteres válidos na Descricao, de acordo com o Previsto na Lei: " Máximo de 15, Mínimo de 4 caracteres ASCII de posição 65 a 90 (letras maiúsculas) ou 97 a 122 (letras minúsculas)" (por: DSA) [-] Correção no retorno de "GetTotalPago", criando controle interno para administrar o valor, já que o Protocolo não retorna essa informação (por: DSA) [*] Aplicado ajuste em "VendeItem", inserindo tratamento no tamanho mínimo do código do Produto de acordo com a Lei. Se o mesmo for inferior a 3, são inseridos zeros a esquerda. Ex: "1" = "001" (por: DSA) Data: 22/07/2013 -- ACBrECFSwedaSTX -- [-] Correção do formato de data na Impressão de cheque (por: giulianon) http://www.projetoacbr.com.br/forum/index.php?/topic/11315-sweda-erro-atributo-invalido/?p=68665 Data: 18/07/2013 -- ACBrECF -- [*] Modificada a assinatura do método "EfetuaPagamento", inserindo novo parâmetro "CodMeioPagamento: Integer, default = 0", para compatibilização com o novo protocolo que exige essa informação no Pagamento, de acordo com a tabela fixa abaixo. Valores diferentes de tabela abaixo serão considerados "7" 1-Dinheiro, 2-Cheque, 3-Cartão de Crédito, 4-Cartão de Débito, 5-Cartão Refeição/Alimentação, 6-Vale Refeição/Alimentação (em papel), 7-Outros (por: DSA) -- ACBrECFBematech -- [*] Refactoring em TraduzirTag e TraduzirTagBloco para compartilhar código com ACBrECFEscECF (por: DSA) -- ACBrECFEscECF -- [+] Implementado leitura do NumLoja (apenas para Bematech) (por: DSA) [+] Adicionado suporte a Tags de Formatação e Código de Barras (apenas para Bematech) (por: DSA) [-] Corrigido bug na leitura de NumCRO (por: DSA) [-] Correção em AbreCupomVinculado, inserindo rotina que procura pela sequencia de pagamento de acordo com os pagamentos Efetuados e o valor de "CodFormaPagto" informado na abertura do Vinculado/CCD (por: DSA) Data: 18/07/2013 -- ACBrECF -- [+] Adicionada informação de rodapé para: ER 02.01 - Requisito XXVIII item 8 http://www.projetoacbr.com.br/forum/index.php?/topic/11450-incluir-numero-de-nota-serie-d-no-rodap%C3%A9-do-cupom-fiscal/ por: cleber Data: 17/07/2013 -- ACBrECF -- [*] Refactoring em rotinas de Fechamento de Cupom. Simplificação da decisão de exibir os dados do Consumidor nas linhas de Observação ou em comando especial quando suportado pelo ECF (por: DSA) Data: 15/07/2013 -- ACBrECFEscECF -- [-] Corrigido cancelamento de Cupom Fiscal seguido de CCD [*] Adicionado suporte para cancelar vários CCDs [-] Correção no numero de Colunas suportadas para a Bematech [*] Ajuste em IdentificaPAF para imprimir Nome Programa corretamente na 2a linha Data: 04/07/2013 -- ACBrECF -- [+] Adicionada nova propriedade ACBrECF.DataHoraUltimaReducaoZ, que retorna a Data e Hora da emissão da última redução Z (por: DSA) [+] Adiciona a propriedade DadosReducaoZ.DataHoraEmissao, que só será preenchida quando for chamada por DadosUltimaReducaoZ (por: DSA) -- ACBrECFBematech -- [+] Adicionada suporte a propriedade ACBrECF.DataHoraUltimaReducaoZ, (por:DSA) -- ACBrECFDaruma -- [+] Adicionada suporte a propriedade ACBrECF.DataHoraUltimaReducaoZ, (por:DSA) -- ACBrECFEpson -- [+] Adicionada suporte a propriedade ACBrECF.DataHoraUltimaReducaoZ, (por:DSA) -- ACBrECFFiscNET -- [+] Adicionada suporte a propriedade ACBrECF.DataHoraUltimaReducaoZ, (por:DSA) -- ACBrECFSwedaStx -- [*] Adicionado suporte a identificação do Consumidor no rodapé do Cupom (por:DSA) [+] Adicionada suporte a propriedade ACBrECF.DataHoraUltimaReducaoZ (por:DSA) -- ECFTeste -- [*] Modificado em Lazarus e Delphi para exibir o retorno de ACBrECF.DataHoraUltimaReducaoZ (por: DSA) -- ACBrETQZplII -- [-] Correção do metodo Imprimir, para suportar o número de cópias (por:DSA) Data: 17/06/2013 -- ACBrECF e correlatos -- [+] Acerto para geração do arquivo MF binário do Paf-ECF ver: http://www.projetoacbr.com.br/forum/index.php?/topic/10809-ato-cotepe-201-requisito-vii-item-4-arq-mf-binario/ por: regys.silveira constribuição: suporte.syspro Data: 09/05/2013 -- ACBrBal -- [-] Alterado tempo de sleep após envio de comando de LePeso para corrigir AV. http://www.projetoacbr.com.br/forum/index.php?/topic/10080-access-violation-ao-ler-peso-da-balança-urano-pop-z-us-202-pop-light Data: 01/04/2013 -- ACBrECFEscECF -- [+] Criado mecanismo de memória temporária em disco, para manter o valor das propriedades que não podem ser retornadas pelo protocolo como SubTotal, TotalPago, TotalAPagar, etc. Isso permite perssitir em arquivo os valores de propriedades que seriam perdidos com o re-inicio do programa. (por: DSA) [-] Correção no retorno de GetTotalPago (por: DSA) Data: 15/05/2013 -- ACBrECF -- [+] Adicionado campos ao rodape para informar o valor dos impostos conforme lei de transparência dos impostos, vejam no demo do ACBrECF como utilizar Data: 20/04/2013 -- ACBrPosPrinter -- [+] Inclusão do componente ACBrPosPrinter para comunicação com impressoras não fiscais. (Daniel Simões de Almeida) Data: 17/03/2013 -- ACBrECF -- [+] Adicionada funcionalidade de Impressão de Rodapé de Bar e Restaurantes (por: Rafael Batiati) [-] Correção de Bug no método IdentificaPAF, que mesmo quando o MD5 era informado vazio, adicionava o prefixo "MD-5:" (por: DSA) [*] Ajuste nas sub-propriedades de InfoRodape, que não precisavam ser salvas no DFM/LFM e ajuste valores Default (por: DSA) -- ACBrECFBematech -- [*] Ajuste no método GetDadosUltimaReducaoZ para consequir recuperar corretamente os valores dos Registradores de Operações não Fiscais, mesmo quando os mesmos não estão programados na sequencia correta, no ECF (por: DSA) Data: 28/02/2013 -- ACBrECF -- [-] Correção de bug, onde o ACBrECF perdia as configurações de InfoRodape, quando o modelo era modificado (por: DSA) [-] Modificação da exibição da informação no rodapé para o programa Nota Legal, de "DF". O Sufixo "NL" só deve ser exibido após o MD5, se houver identificação do consumidor. (a pedido de homologador PAF-ECF) (por: DSA) [*] Modificação da exibição da informação no rodapé para o programa Paraiba Legal, O texto atual da lei, impede a impressão de todo texto em uma única linha, pois ultrapassa 56 caracteres. O CPF do identificação do consumidor será impresso na linha de baixo (a pedido de homologador PAF-ECF) (por: DSA) [*] Ajustes em GetDadosUltimaReducaoZ em vários modelos para que o comando não seja interrompido, caso a Data de Movimento retornada pelo ECF seja inválida (por: DSA) Data: 04/02/2013 -- ACBrECF -- [-] Correção do rodape Cupom Mania estava pegando a data do computador (por: Rafael Dias) Data: 02/02/2013 -- ACBrECFFiscNet -- [-] Correção do método ArquivoMFD_DLL para os modelos Urano (por: Welkson e DSA) http://www.projetoacbr.com.br/forum/index.php?/topic/ 8864-menu-fiscal-usando-urano-patch-no-acbrecf/ Data: 30/01/2013 -- ACBrECFSwedaStx -- [-] Acerto no ajuste de hora da Redução Z por: Carlos Nascimento Data: 24/01/2013 -- ACBrECF -- [*] Corrigida a acentuação em métodos de relatórios de DAV_* (por: DSA) Data: 21/01/2013 -- ACBrECFSwedaSTX -- [+] Adicionada leitura dos registradores: NumCFC, NumGNFC, NumCFD, NumNCN (por DSA) Data: 10/01/2013 -- ACBrECFFiscNet -- [-] Correção de erro em DescontoAcrescimoItemAnterior que ocorria em alguns modelos: http://www.projetoacbr.com.br/forum/index.php?/topic/ 1957-descontoacrescimoitemanterior-swedastx/?p=48234 Data: 21/12/2012 -- ACBrDevice -- [*] Ajuste para permitir Hooks de comunicação com outras bibliotecas ou DLLs -- ACBrECFBematech -- [*] EXPERIMENTAL. Inicio dos ajustes para funcionar com portas USB através da Bemafi32.DLL, usando os NOVOS métodos Bematech_FI_EnviaComando, Bematech_FI_LeituraRetorno Data: 20/12/2012 -- ACBrECFDaruma -- [-] Correção de bug introduzido em 29/11/2012, onde a leitura do COO fica incorreta após o comando de Cancelamento (por: DSA) Data: 18/12/2012 -- ACBrECFDaruma -- [-] Acerto na geração de arquivos da NFP. (por: Regys Silveira) Data: 29/11/2012 -- ACBrECFDaruma -- [-] Acerto para retornar corretamente o número do CCF quando efetuar o cancelamento de cupom fiscal. (por: Regys Silveira) Data: 22/11/2012 -- ACBrECFBematech -- [-] Correção da Leitura de Totalizadores de Sangria e Suprimento em LerTotaisComprovanteNaoFiscal (por: DSA) [-] Correção da leitura de Totalizadores Não fiscais em DadosUltimaReducaoZ -- ACBrECFDaruma -- [+] Adicionado retorno para os métodos: GetTotalAcrescimosOPNF, GetTotalCancelamentosOPNF, GetTotalDescontosOPNF -- ACBrECFEpson -- [-] Correção da leitura de Totalizadores de ISSQN em DadosUltimaReducaoZ -- ACBrECFFiscNet -- [*] Refactoring, intruduzindo métodos Internos para: LeMoeda, LeInteiro, LeTexto [+] Adicionado retorno para os métodos: GetTotalAcrescimosOPNF, GetTotalCancelamentosOPNF, GetTotalDescontosOPNF -- ACBrECFSwedaSTX -- [-] Corrigida leitura de TotalOperacaoNaoFiscal em DadosUltimaReducaoZ Data: 20/11/2012 -- ACBrECF -- (por: DSA) [*] Refactoring em método: GetDadosReducaoZ e MontaDadosReducaoZ -- ACBrECFClass -- (por: DSA) [*] Refactoring em método: GetDadosReducaoZ e MontaDadosReducaoZ [*] Classe TACBrECFDadosRZ modificada para conter o método MontaDadosReducaoZ [-] Método TACBrECFDadosRZ.MontaDadosReducaoZ, modificado para montar .INI apenas com as variaveis que foram realmente informadas (eliminando problema de registradores zerados) [+] Inserido método TACBrECFDadosRZ.CalculaValoresVirtuais para calcular valores que não tenham sido retornado pelo ECF como: TotalOperacaoNaoFiscal, TotalICMS, TotalISSQN, ValorVendaBruta, VendaLiquida -- ACBrECFBematech -- (por: DSA) [*] Refactoring em: GetDataHora, GetDataHoraSB e GetDataMovimento [*] Revisão e refactoring em GetDadosUltimaReducaoZ -- ACBrECFDaruma -- (por: DSA) [*] Revisão e refactoring em GetDadosUltimaReducaoZ -- ACBrECFEpson -- (por: DSA) [*] Refactoring em: GetDataHora, GetDataHoraSB e GetDataMovimento [*] Revisão e refactoring em GetDadosUltimaReducaoZ, modificado para usar a classe TACBrECFDadosRZ -- ACBrECFEpson -- (por: DSA) [*] Revisão e refactoring em GetDadosUltimaReducaoZ, modificado para usar a classe TACBrECFDadosRZ -- ACBrECFSwedaSTX -- (por: DSA) [*] Revisão e refactoring em GetDadosUltimaReducaoZ, modificado para usar a classe TACBrECFDadosRZ [+] Implementado retorno para os métodos: GetTotalAcrescimosISSQN, GetTotalCancelamentosISSQN, GetTotalDescontosISSQN, GetTotalIsencaoISSQN, GetTotalNaoTributadoISSQN, GetTotalSubstituicaoTributariaISSQN, GetTotalAcrescimosOPNF, GetTotalCancelamentosOPNF, GetTotalDescontosOPNF, GetTotalTroco [-] LerTotaisAliquotas modificado para ler valores de aliquotas do ISSQN Data: 31/10/2012 -- ACBrECFEpson -- [-] Adicionada verificação do sucesso de Envio do Comando quando usando USB e a DLL da Epson (por: DSA) Data: 24/10/2012 -- ACBrECF -- [+] Adicionado novo modelo de ECF, ecfEscECF, que contempla o protocolo EscECF, de acordo com o Convênio ICMS 09/09, (experimental) (por: DSA) Data: 22/10/2012 -- ACBrECF -- [+] Adicionada a impressão do Nota Legal (DF) Ver propriedade InfoRodapeCupom.NotaLegal e suas subpropriedades. [+] Adicionada a expressão "NL" ao MD5 para o DF. [+] Adicionado a impressão do Paraíba Legal no rodapé do cupom fiscal ver propriedade InfoRodapeCupom.ParaibaLegal (por: Regys Silveira) Data: 22/10/2012 -- ACBrECFBematech -- [*] Ajuste no método ArquivoMFD_DLL para nova versão da DLL 6.1.1.1 (por: DSA) -- ACBrECFSwedaSTX -- [*] Adicionado suporte a página de código 1252 como default (por: DSA) Data: 17/10/2012 -- ACBrBal -- [+] Adicionado o modelo de balança Megellan conforme contribuição do tópico. http://www.djsystem.com.br/acbr/forum/viewtopic.php?f=10&t=7711 (por: Regys Silveira) Data: 05/10/2012 -- ACBrECFSwedaSTX -- [-] Correção para emissão da ReducaoZ quando último cupom permaneceu aberto e ECF indica estado ecfRequerZ (por: DSA) Data: 01/10/2012 -- ACBrECFDaruma -- [-] Aplicação do patch feito por usuário do fórum http://www.djsystem.com.br/acbr/forum/viewtopic.php?f=10&t=7484 (por: Regys Silveira) Data: 26/09/2012 -- ACBrECFEpson -- [-] Correção para imprimir acentos corretamente quando usando a porta USB (pela DLL do Fabricante) (por: DSA) [-] Correção para imprimir TAGs de formatação e Cod.Brras quando usando a porta USB (pela DLL do Fabricante) (por: DSA) Data: 19/09/2012 -- ACBrECFBematech, ACBrECFSwedaSTX -- [-] Correção do método PafMF_GerarCAT52, que ficava em Loop infinito quando usando um periodo de mais de um dia. http://www.djsystem.com.br/acbr/forum/viewtopic.php?p=39803#p39803 -- ACBrECFFiscNet -- [*] Ajustes para a compatibilização do modelo: ELGIN K http://www.djsystem.com.br/acbr/forum/viewtopic.php?f=10&t=7333&p=39696 Data: 17/09/2012 -- ACBrECFFiscNet -- [-] Acerto no método ArquivoMFD_DLL para zpm fit/logger (por: Natanael) Data: 15/09/2012 -- ACBrECF -- [*] Métodos VendeItem revisados para usar a função ArredondaABNT. (por:DSA) -- ECFTeste (Lazarus) -- [+] Adicionada rotina de teste de Arredondamento (por:DSA) Data: 13/09/2012 -- ACBrECF -- [+] Adicionado Troco em cartão ao relatório de configuração do paf-ecf. por: regys silveira [*] Melhorada exibição de informações do LOG durante o proceso de Ativação (por: DSA) Data: 12/09/2012 -- ACBrECFSwedaSTX -- [+] Adicionado suporte a leitura de CMC7 (por: DSA) Data: 30/08/2012 -- ACBrECF -- [*] Ajustes para que o ACBrECF efetue o LOG corretamente dos comandos, mesmo quando houver falha na verificação dos parâmetros. (por: DSA) [*] Revisão do tratamento dos parâmetros de entrada de vários métodos. (por:DSA) Data: 28/08/2012 -- ACBrECF -- [*] Modificação no tratamento de TimeOut, para permitir que o LOG do ACBrECF informe o conteudo do buffer serial lido até o momento do erro Data: 27/08/2012 -- ACBrECFDaruma -- [*] Ajustes na rotina abertura de porta Serial pela DLL/.SO, para compatibilizar com nomenclatura utilizada pelo .SO (COM1 e COM10 ao invez de /dev/ttyS0 e /dev/ttyUSB0 respectivamente) (por: DSA) -- ACBrECFBematech -- [-] Ajuste no método PafMF_GerarCAT52 para compilação em Linux (por: DSA) Data: 28/07/2012 -- ACBrECFSwedaSTX -- [*] Método CorrigeEstadoErro modificado para suportar problemas de ECF a muito tempo sem uso, onde é necessário informar a Data e Hora atual (por: DSA) [+] Implementado o método: PafMF_GerarCAT52 (por: DSA) Data: 23/07/2012 -- ACBrECFDaruma -- [*] Adicionada verificação para respostas do ECF iniciando com dois sinais ":", (por: DSA) Data: 23/07/2012 -- ACBrECF -- [*] Adicionada informação de Milisegundos na gravação do Log (por: DSA) -- ACBrECFFiscNet -- [*] Ajuste para leitura de Dados da Ultima Redução Z em modelos antigos, que em algumas ocasiões não enviam todos os dados (por: DSA) Data: 20/07/2012 -- ACBrDIS -- [*] Melhorada significativamente a performance da exibição de Display de Teclados PS/2 (por: DSA) Data: 11/07/2012 -- ACBrECFBematech -- [*] Geração do arquivo da nota fiscal paulista (CAT52) (por Regys Silveira) Data: 11/07/2012 -- ACBrECF, ACBrECFDaruma -- [*] Geração do arquivo da nota fiscal paulista (CAT52) (por Regys Silveira) Data: 11/07/2012 -- ACBrECFSwedaSTX -- [-] Totalizador I3 estava equivocadamente sendo chamado de N3 na função GetDadosUltimaReducaoZ. (por EMBarbosa) Data: 10/07/2012 -- ACBrECF -- [*] Acerto no relatório de meios de pagamento do menu fiscal para o novo layout estabelecido no ato cotepe. (por: Régys Silveira) Data: 05/07/2012 -- ACBrECFSweda -- [+] Implementado NumReducoesZRestantes (por Régys Silveira) Data: 04/07/2012 -- ACBrECFBematech -- [-] Corrigido retorno da propriedade NumCOOInicial, que retornava o COOInicial da Redução Z do dia anterior, e não do dia atual (por: DSA) -- ACBrECFEpson -- [+] Implementado NumReducoesZRestantes (por DSA) Data: 03/07/2012 -- ACBrECF -- [+] Implementado o contador de reduções Z restantes baseado na leitura X, implementei no ACBrECF assim vai valer para todas as impressoras que não possuem esse registrador, nas impressoras que possuem sobrescrever o método e utilizar o registrador próprio. (por: Régys Silveira) Data: 02/07/2012 -- ACBrECF -- [+] Adicionado contador que retorna o numero de reduções z restantes na impressora fiscal, funcionando para bematech, fiscnet e daruma. (por: Régys Silveira) Data: 19/06/2012 -- ACBrECF -- [-] Correção da leitura da data para formação do Minas Legal. (por: Régys Silveira) Data: 18/06/2012 -- ACBrSMS -- [+] Adicionado evento para informar o andamento do envio de mensagens em lote. (por: Régys Silveira) Data: 13/06/2012 -- ACBrECFEpson -- [*] Método VendeItem modificado para tratar o campo Unidade com apenas caracteres alfa-numéricos, a fim de evitar Erro: 0206 - Campo alfanumérico inválido.(DSA) Data: 10/06/2012 -- ACBrSMS -- [+] Adicionada propriedade IntervalorEntreMensagens para que o usuário possa setar o tempo de espera entre o envio de várias mensagens. (por: Régys Silveira) Data: 23/05/2012 -- ACBrECF -- [+] Implementado recurso para checar se no meio da venda o arquivo auxiliar permanece integro, caso não esteja, dispara uma exceção informando que o arquivo esta inválido. Recurso implementado para atender um teste feito por um homologador. (por: Isaque Pinheiro e DSA) Data: 18/05/2012 -- ACBrECF -- [*] Modificado comportamento da propriedade "ArredondaItemMFD". Se a mesma for True, o ACBrECF, irá re-avaliar o estado desta propriedade logo após a primeira chamada a VendeItem. Caso o ECF não possua essa característica, o ArredondaItemMFD será modificado para False (por: DSA) [*] Modificada funcionamento da propriedade "Arredonda", para que a mesma leve em consideração as propriedades (MFD e ArredondaItemMFD) além de verificar se o ECF possue o flag de Arredondamento Interno ajustado. É importante frisar que o valor das propriedades "ArredondaItemMFD" e portanto agora de "Arredonda" só é confiável após a primiera Venda de Item (por: DSA) -- ACBrDevice -- [-] Correção de Bug introduzido na rev.3516, que impede o funcionamento de portas Paralelas causando o erro: "Impressora NaoFiscal não está pronta." (por: DSA) Data: 17/05/2012 -- ACBrECF -- [+] DadosReducaoZClass modificado inserindo nova lista de Objetos, "TodasAliquotas", que permite visualizar todas as aliquotas existentes, e na ordem correta de programação no ECF, independente de Tipo ser ICMS ou ISSQ (por: DSA) [-] Correção de Bug em DadosReducaoZ, String resultante não contemplava as Aliquotas de ISS. (por: DSA) http://www.djsystem.com.br/acbr/forum/viewtopic.php?f=10&t=5790&p=30444 -- ACBrECFDaruma -- [-] Correção de Bug em DadosUltimaReducaoZ, String resultante não contemplava as Aliquotas de ISS. (por: DSA) http://www.djsystem.com.br/acbr/forum/viewtopic.php?f=10&t=5790&p=30444 -- ACBrECFFiscNet -- [-] Correção do método DadosUltimaReducaoZ, que retornava apenas as 8 primeiras aliquotas. (por: wpereira) http://www.djsystem.com.br/acbr/forum/viewtopic.php?f=10&t=5859&p=30508 -- ACBrECFSwedaSTX -- [-] Corrigido Bug na detecção de Arredondamento para Modelos com protocolo superior a "D" (ST200) (por: DSA) Data: 09/05/2012 -- ACBrDevice -- [-] Correção de Bug introduzido na rev.3516, impedindo o uso de portas Paralelas ou Arquivos TXT (por: DSA) Data: 08/05/2012 -- ACBrECFDaruma -- [-] Corrigido bug de detecção de Tipo de ECF durante processo de Ativação, no caso de falha de comunicação seguido de nova tenativa (Retentar Ativado) (por: DSA) Data: 06/05/2012 -- ACBrECF -- [*] Método ACBrECF.VendeItem modificado inserindo um novo parâmetro: (CodDepartamento: Integer = -1). (Por: EasyTef) [+] Adicionado suporte a Comunicação pela DLL do Fabricante. Isso permitirá ao ACBr usar o acesso nativo a USB disponibilizado pelo Fabricante. (por: DSA) - A DLL do fabricante precisa estar corretamente instalada e configurada - O usuário pode informar para ACBrECF.Porta, valores como: "USB" ou "DLL.COM1", feito isso o ACBrECF usará a DLL do Fabricante para se comunicar com o ECF - Para que seja possível a implementação dessa funcionalidade a DLL do Fabricante deve disponibilizar método na DLL que permita transmitir um pacote de dados já montado, e responder usando a sintaxe do protocolo. Exemplo: DWORD ECF_Serial_Enviar_Dados( LPSTR Comando, WORD TimeOut, LPSTR Retorno) -- ACBrECFEpson -- [+] Adicionado suporte a Comunicação pela DLL do Fabricante, permitindo o uso de portas USB, e um considerável aumento da velocidade. (por: DSA) -- ACBrECFFiscNet -- [*] Método VendeItem modificado para fazer uso do novo parâmetro: (CodDepartamento: Integer = -1). (Por: EasyTef) Data: 09/04/2012 -- ACBrECFFiscNET -- [-] Correção na leitura dos dados da última redução Z http://djsystem.com.br/acbr/forum/viewtopic.php?f=10&t=5570 Data: 09/04/2012 -- ACBrECFDaruma -- [-] Correção na detecção de Aliquota. Estava assumindo 'F2,N2,I2' quando informava apenas 'F,N,I' Data: 05/04/2012 -- ACBrECFEpson -- [-] Importante correção no Protocolo de comunicação, após conversa com o suporte técnico da Epson. Eliminando mensagens de Erro como ACK = 2, o que geralmente causavam a falta de resposta de ECF. (DSA) Data: 04/04/2012 -- ACBrECF -- [+] Incluido novo Exception, EACBrECFSemPapel que é disparado apenas na situação de FIM DE PAPEL. Todas as classes de ECF foram revisadas para efetuar o tratamento adequado para essa situação (DSA) [+] Adicionado novo evento: OnErrorSemPapel, que pode ser disparado quando o ACBrECF detectar a exceção EACBrECFSemPapel. Se o evento não for programado a exceção EACBrECFSemPapel será levantada. (DSA) [+] Adicionada nova propriedade Publica: IgnorarErroSemPapel, que pode ser ligada, quando desejamos ler alguma valor do ECF sem que o mesmo dispare a exceção EACBrECFSemPapel. Ela sempre será desligada após a execução do próximo comando. (DSA) [+] Adicionada nova propriedade Published: IgnorarTagsFormatacao, se configurada para True, o ACBrECF ignorará as Tags: ,,,,,,,, ,. Util quando o ECF apresentar problemas em relatórios com Tags de Formatação (DSA) [*] Modificação de todos Exceptions para EACBrECFErro (por: Elton) -- ACBrECFBematech -- [*] Leitura e detecção de Erro aprimorada para modelos com MFD, evitando mensagens de erro das antigas Matriciais (DSA) Data: 27/03/2012 -- ACBrECF -- [*] Acerto na impressão de informações do Cupom Mania como pedido pelos homologadores do RJ. (por: Regys Silveira) Data: 15/03/2012 -- ACBrECF -- [*] Relatório de Meios de Pagamento do PAF-ECF, modificado conforme solicitação da POLIMIG, informando a coluna de Total Geral somando Fiscal e Nao-Fiscal (por: DSA) [*] Adicionado a linha "ITEM 8 Recompõe Número Série" no relatório de Parametros de Configuração do PAF-ECF (por: DSA) [-] Método: "IdentificaPAF" modificado em todos modelos para imprimir o MD5 sempre na primeira linha, conforme solicitação da POLIMIG (por: DSA) -- ACBrECFDaruma -- [-] Método DadosUltimaReducaoZ modificado para que o mesmo não informe valores que ele não é capaz de ler do ECF... Removido: NumeroCOOInicial := '0', GNFC := 0, CCDC := 0 (por: DSA) -- ACBrECFSwedaSTX -- [-] Método DadosUltimaReducaoZ modificado para que a Data do Movimento seja informada usando o mesmo padrão de DadosReducaoZ (DD/MM/YY) (por: DSA) Data: 04/03/2012 -- ACBrECF -- [*] Criado novo tipo de exceção: EACBrECFTimeOut, para ser disparada apenas quando há erro de TimeOut, e somente nessa circunstância... Data: 01/03/2012 -- ACBrECF -- [*] Relatórios emitidos por PafMf_* modificados para evitar o uso da Tag "" http://www.djsystem.com.br/acbr/forum/viewtopic.php?f=10&t=4932 -- ACBrECFBematech -- [-] Tentativa de Correção para a impressão da Tag "" -- ACBrECFSwedaSTX -- [-] Ajuste para evitar erros de TimeOut após o acionamento da Gaveta Data: 27/02/2012 -- ACBrECF -- [*] Acerto para não limpar a marcação de minas legal e cupom mania. Conforme post no fórum: http://djsystem.com.br/acbr/forum/viewtopic.php?f=10&t=3334&p=24334#p24334 por: Regys -- ACBrSMS -- [*] Diversos ajustes nos fontes para remoção de alguns Warning e Hints por: Regys Data: 25/02/2012 -- ACBrSerial -- [*] Diversos ajustes nos fontes para remoção de alguns Warning e Hints (DSA) -- ACBrECF -- [+] Adicionada propriedade: TipoUltimoDocumento : TACBrECFTipoDocumento que retorna o Tipo de Ultimo Documento emitido (não será possivel implementa-la em todos modelos de ECF) (DSA) [+] Adiconada a Function EstornaCCD( const Todos: Boolean = True) : Integer Efetua o cancelamento do(s) CCD(s), se este for o último documento emitido. Retorna o número de CCDs que conseguiu cancelar. (DSA) -- ACBrSwedaSTX -- [+] Adicionado método GetDataHoraSB (DSA) -- ACBrECFFiscNET -- [-] Corrigido o retorno do método: GetDataHoraSB (DSA) [+] Adicionado método: GetTipoUltimoDocumento (DSA) [+] Adicionado Function: EstornaCCD (DSA) -- ACBrECFEpson -- [+] Adicionado método: GetTipoUltimoDocumento (DSA) [+] Adicionado Function: EstornaCCD (DSA) [-] Corrigido método: GetSubTotal, para retornar o valor correto quando o documento aberto se tratar de um Cupom Não Fiscal (DSA) Data: 24/02/2012 -- ACBrECF -- [*] Melhoria no tratamento de TAGs, adicionando mecanismo para tratamento especial com TAGS de Bloco, como por exemplo Cod.Barras (DSA) [+] Adicionado suporte a Impressão de TAGs em Cupom Vinculado (DSA) [-] Correção de Impressão em PafMF_RelParametrosConfiguracao (acentos e ajuste para máximo de Colunas) (DSA) -- ACBrECFSwedaSTX -- [+] Adicionado suporte as TAGs de Códigos de Barra Data: 11/02/2012 -- ACBrECFFiscNet -- [-] Correção de Fechamento de Cupom com Identificação de Consumidor e Identifi- cação de PAF-ECF (DSA) -- ACBrBALDigitron -- [+] Novo modelo de Balança adicionado (Digitron). http://www.djsystem.com.br/acbr/forum/viewtopic.php?f=10&t=2287 -- ACBrBALUrano -- [-] Correção para Leitura de Peso em alguns modelos (por: DSA) http://www.djsystem.com.br/acbr/forum/viewtopic.php?f=10&t=3905 Data: 09/02/2012 -- ACBrECFSwedaSTX -- [-] Correçao da interpretação na leitura de DataMovimento, que não considerava o Ano com 4 dígitos (DSA) Data: 04/02/2012 -- ACBrECFFiscNet -- [-] Correçao de Fechamento de Cupom com Mensagem promocional em DataRegis. (DSA) http://www.djsystem.com.br/acbr/forum/viewtopic.php?f=10&t=4542 -- ACBrECFBematech -- [-] Correção da Leitura da DataHoraSB em alguns modelos (DSA) http://www.djsystem.com.br/acbr/forum/viewtopic.php?f=10&t=4548 Data: 02/02/2012 -- ACBrECF -- [*] Possibilidade de desabilitar MsgPoucoPapel, atribuindo valor negativo por: DSA Data: 31/01/2012 -- ACBrSMS -- [+] Liberação do componente ACBrSMS. por: Régys Silveira Data: 24/01/2012 -- ACBrECFDaruma -- [+] Acerto para utilizar as aliquotas F1, F2, I1, I2, N1, N2 e serviços idem. por: Régys Silveira Data: 08/01/2012 -- ACBrECFDaruma -- [+] Acerto no método de retorno das alíquotas da Redução Z, conforme relato no fórum: http://djsystem.com.br/acbr/forum/viewtopic.php?f=10&t=4425 por: Régys Silveira Data: 27/12/2011 -- ACBrECF -- [+] Adicionados métodos para a impressão do DAV normal. por: Régys Silveira Data: 14/12/2011 -- ACBrECF -- [*] Modificada a assinatura do método IdentificaPAF para: IdentificaPAF( NomeVersao, MD5 : String) ; [*] Método IdentificaPAF modificado para no caso de falha da programação no ECF, usar a impressão de InfoRodapeCupom.MD5 [*] Adicionado tratamento em InfoRodapeCupom.MD5 para evitar impressão dupla do prefixo "MD-5:" [-] Corrigida a impressão do prefixo de InfoRodapeCupom.MD5 no Rodapé do Cupom, de acordo com o última versão do PAF-ECF -- ACBrECFSwedaSTX -- [-] Corrigida programação de IdentificaPAF, para considerar o numero de colunas do ECF Data: 10/12/2011 -- ACBrECFSwedaSTX -- [-] Corrigido Bug na geração do ArquivoMFD por Data. (Gerava apenas com dados da MF) [-] Corrigido método CortaPapel, adicionando suporte para parâmetro Parcial/Total e ao modelos antigos de STX -- ACBrECFFiscNET -- [-] Corrigida a impressão de TAGs Negrito e Expandido, suportando os novos e antigos modelos de Versão [+] Adicionado suporte a TAGs de Cod.Barras Data: 07/12/2011 -- ACBrECFEpson -- [-] Corrigido Bug na Re-Ativação do componente após chamar as funções da DLL [*] Adicionado tratamento para Verificação de Parâmetro na geração de Arquivo MFD por COO, que atualmente não é suportado pela DLL da Epson. -- ACBrECFNaoFiscal e ACBrDevice -- [-] Correções para evitar mensagens: "I/O error 103" Data: 29/11/2011 -- ACBrECF -- [*] Acerto na impressão do relatório de configurações do Paf-ECF por: Regys Silveira, Koplin, Juliomar Data: 09/11/2011 -- ACBrECFEpson -- [-] Correções na detecção do Fim de resposta do Protocolo Serial (por: DSA) [-] Correção no envio do Comando da Redução Z com o ajuste de Hora para no máximo de +-5 min. (por: DSA) Data: 08/11/2011 -- ACBrECFDaruma -- [*] Acerto para ler a variável do submodelo quando estiver disponível e quando não estiver obter do flag da impressora. (por: Regys Silveira) Data: 07/11/2011 -- ACBrBal -- [+] Adicionado novo modelo de balança MGNA http://djsystem.com.br/acbr/forum/viewtopic.php?f=5&t=3473 Data: 31/10/2011 -- ACBrECFEpson -- [-] Corrigido Desconto/Acréscimo de Item Anterior na FBIII (por: DSA) Data: 27/10/2011 -- ACBrSerial -- [*] Organização de vários fontes para o uso das constantes de ACBrConsts (por: DSA) -- ACBrECFBematech -- [*] Completa re-escrita dos métodos ArquivoMFD_DLL, e EspelhoMFD_DLL para que os mesmos façam uso das novas rotinas da Bemafi32.DLL, Bematech_FI_ArquivoMFD e Bematech_FI_EspelhoMFD respectivamente (por: DSA) [*] Ajustes no método CRZToCOO para encontrar o COO quando CRZ Inicial e Final forem iguais. (por: DSA) Data: 21/10/2011 -- ACBrECFBematech -- [-] Acerto no método CRZToCOO para funcionar com qualquer impressora bematech [*] Melhora na resposta de erros retornados pela dll por: Régys Silveira Data: 25/10/2011 [-] Corrigido bug em método LinhaRelatorioGerencial que não disparava Exception quando MaxBuffer > 0 -- ACBrECFSwedaSTX -- [-] Correção de Bugs na detecção de Fim de Leitura do Protocolo STX Data: 22/10/2011 -- ACBrECFSwedaSTX -- [*] Otimização de código (refectoring) (Por: DSA) [-] Corrigido método ArquivoMFD_DLL por COO (Por: DSA) Data: 21/10/2011 -- ACBrECF -- [*] Alteração na formação do rodapé conforme alterações da especificação de requisitos do paf-ecf, [-] Acerto na formação do ano do Cupom Mania para ddmmaa por: Régys Silveira -- ACBrECFSwedaSTX -- [-] Corrigido Bug no método Vendeitem para ECF ST100 (Protocolo D), que não possuem o parâmetro IAT (Por: DSA) [*] Melhorado método AbrePortaSerialDLL (Por: DSA) Data: 20/10/2011 -- ACBrECF -- [*] Método TACBrECF.AssinaArquivoComEAD modificado para verificar se o arquivo gerado pela DLL do ECF já possui ou não registro EAD -- ACBrECFEpson -- [*] Declarações da DLL modificadas de PAnsiChar para AnsiString [*] Removido TypeCast PAnsiChar() de todas as chamadas a DLL [+] Adicionado método interno: FechaPortaSerialDLL para melhor controle da transição entre o controle da Serial pela DLL de volta para o ACBrECF -- ACBrECFBematech -- [*] Remoção de declaração de métodos da DLL não utilizados xBematech_FI_HabilitaDesabilitaRetornoEstendidoMFD e xBematech_FI_RetornoImpressoraMFD [*] método VerificaFimLeitura modificado para re-tentar 10 vezes e não apenas 3 http://www.djsystem.com.br/acbr/forum/viewtopic.php?p=16820#p16820 [*] Método AbrePortaSerialDLL: - Modificado para ajustar parâmetros em BemaFI32.ini antes da abertura da Porta Serial pela DLL, caso o mesmo seja encontrado na mesma pasta de Bemafi32.DLL - Adicionado pequeno intervalo entre o desativamento do ACBrECF e a abertura da DLL, para previnir erros de porta ocupada [*] Removido TypeCast PAnsiChar() de todas as chamadas a DLL -- ACBrECFSweda -- [*] Declarações da DLL modificadas de PAnsiChar para AnsiString [*] Removido TypeCast PAnsiChar() de todas as chamadas a DLL -- ACBrECFSwedaSTX -- [*] Declarações da DLL modificadas de PAnsiChar para AnsiString [*] Removido TypeCast PAnsiChar() de todas as chamadas a DLL [*] Função de abertura da porta serial pela DLL modificada para usar "ECF_AbreConnectC", que permite informar o Path para os arquivos [*] Removido Tipo interno, TACBrECFSwedaInfo34A1 por falta de uso. [-] Melhorado suporte ao protocolo STX quando o Tipo de retorno for "!" http://www.djsystem.com.br/acbr/forum/viewtopic.php?f=10&t=3427 -- ACBrECFFiscNET -- [*] Métodos ArquivoMFD_DLL modificados para usar as DLLs padrões da ZPM quando o modelo nao for Elgin e (TermoPrinter ou DataRegis) Data: 15/10/2011 -- ACBrECFDaruma -- [*] Código de ativação modificado para ficar mais segura a detecção de MFD [*] Métodos EspelhoMFD_DLL e ArquivoMFD_DLL modificados para não tentar descarregar a DLL da Memória. Melhora na re-ativação do ECF após a execução dos métodos. (por DSA) Data: 10/10/2011 -- ACBrECFBematech -- [*] Método CarregaFormasPagamento modificado para usar informação do Registrador 49 nos modelos 25 e MFD, pois esse Registrador retorna corretamente a informação da Forma de Pagamento que permite ou não Vinculado -- ACBrECFFiscNET -- [*] Método ArquivoMFD_DLL modificado para efeetuar a Leitura da MF corretamente nos modelos Elgin e DataRegis http://www.djsystem.com.br/acbr/forum/viewtopic.php?f=10&t=3346 http://www.djsystem.com.br/acbr/forum/viewtopic.php?f=10&t=2951 [+] Implementada a leitura da Venda Bruta no método DadosReducaoZ (Por: Endrigo) -- ACBrECFEpson -- [-] Método CancelaCupom modificado para conseguir cancelar o cupom mesmo após a impressão de Vários Vinculados. [+] Implementado Retorno Estendido em vários métodos. [+] Classe Interna faz uso de Retorno Estendido para otimizar comunicação com o ECF. [+] Implementado suporte para ArredondaItemMFD para os novos ECFs FBIII -- ACBrETQ -- [*] Modificado o método: ImprimirTexto, inserindo um novo Parâmetro: ImprimirReverso : Boolean = False, por enquanto disponivel apenas no modelo: EPL2 ou PPLB. http://www.djsystem.com.br/acbr/forum/viewtopic.php?f=10&t=3329 Data: 06/10/2011 -- ACBrECF -- [*] Removida a classe TACBrECFCodBarras, que era utilizada antes para Impressão de Cod.Barras na Daruma. Atualmente o Cod.Barras é melhor suportado pelas TAGs de Formatação (Veja Demo ECFTeste) -- ACBrECFDaruma -- [*] Removido suporte para a Classe TACBrECFCodBarras -- ACBrECFEpson -- [*] Rotina Ativar tenta detectar se o ECF está em 115200 ou 38400, já que as novas FBIII vem por default em 115200 e as antigas por default 38400 [-] Correção da exibição dos caracteres acentuados nas mensagens de erro [*] Otimização de comandos com parâmetros numéricos [*] Método DescontoAcrescimoItemAnterior ajustado para fazer uso do novo comando de Desconto/Acrescimo de Item Distante [*] Método CarregaFormasPagamento não mais tenta carregar todas as Formas de Pagamento não programadas. Ou seja, atualmente ele para na primeira mensagem "Tipo de pagamento não definido". [*] Método TraduzirTag modificado para permitir sobreposição de Tags de caracter como por exemplo: Negrito+Sublinhado [*] Implemetado suporte as Tags de Código de Barras Data: 04/10/2011 -- ACBrECF -- [*] Acerto da string do Minas Legal conforme retificação da ER 1.09 por: Régys Silveira Data: 26/09/2011 -- ACBrECF -- [*] Alterado o marcador de cupom mania para a ER 1.09 por: Régys Silveira Data: 27/09/2011 -- ACBrECFSwedaSTX -- [-] informação do numero de colunas diferente para este modelo [-] informação padrão do numero de colunas usados nas impressões PAF por: Juliomar Marchetti Data: 26/09/2011 -- ACBrECF -- [+] Adicionado espelho do cupom não fiscal quando do cancelamento. por: Juliomar Marchetti Data: 17/09/2011 -- ACBrECF -- [+] Adicionado suporte as Tags de Formatação: e . Exemplo: ALINHAR A DIREIRA CENTRALIZAR [*] Parse de Tags melhorado para suportar caracteres "<",">" e "/" dentro da String envolvida pelas Tags Data: 04/09/2011 -- ACBrECF -- [-] Melhorias na estética do relatório de configurações do PAF-ECF (por: Régys Silveira) Data: 02/09/2011 -- ACBrECF -- [-] Implementação do relatório de configurações do Paf-ECF. (por: Régys Silveira) Data: 29/08/2011 -- ACBrECFDaruma -- [-] Acerto na definição do produto para a nova versão dll da daruma. (por: Régys Silveira) Data: 25/08/2011 -- ACBrECFDaruma -- [+] Adicionado modo pré-venda, funciona somente para impressoras MACH 1, 2 e 3 ver o DemoDaruma na pasta projetos como funciona. (por: Régys Silveira) Data: 22/08/2011 -- ACBrECFDaruma -- [+] Adicionado propriedade RespostasComando com um set de campos de dados retornados pela impressora fiscal. Ver o Demo ACBr Daruma para exemplos de como utilizar. (por: Régys Silveira) Data: 17/08/2011 -- ACBrECF -- [+] Adicionada propriedade no ACBrECF que permite montar o rodapé do cupom fiscal conforme a legislação do Paf-ECF, ver no DemoECF como proceder Obs.: O MD5 informado ficou a cargo da aplicação para que o usuário tenha a liberdade de preenche-lo como quiser. (por: Régys Silveira) Data: 16/08/2011 -- ACBrECFDaruma -- [+] Adicionado a reimpressão do vinculado [-] Corrigida a sobreposição do BMP promocional quando existe código de barras. (por: Régys Silveira) Data: 05/08/2011 -- ACBrECFDaruma -- [+] Implementado recurso para que os dados da ultima redução Z, alimente a propriedade "DadosReducaoZClass", essa propriedade antes só conseguia ser ultilizada para armazenar dados antes da emissão da redução Z, esse recurso só foi implementado para o ECF Daruma. (por: Isaque Pinheiro) Nota: Após a implementação desse recurso nos demais ECFs, o arquivo .INI continua sendo gerado, mas de maneira bem mais eficaz, porque terá todos os dados da class nele, o que já esta acontencedo com a Daruma. Data: 18/07/2011 -- ACBrECFBematech -- [-] Acerto de bug no vendeitem para a impressora bematech mp20f1-II, estava sendo enviado o comando com departamento "00", o que ocasiona erro de CMD inválido. (por: Régys Silveira) Data: 22/07/2011 -- ACBrSwedaSTX -- [+] Adicionado o suporte a tags de formatação para a sweda (por: Carlos Nascimento / Régys Silveira) Data: 18/07/2011 -- ACBrECF -- -- ACBrECFBematech -- [+] Adicionado o suporte a tags de formatação ao rodapé do comprovante não fiscal [+] Adicionado o suporte a códigos de barras por tags para a bematech (por: Régys Silveira) Data: 17/07/2011 -- ACBrECF -- [+] Adicionada a propriedade PaginaDeCodigo. Se o seu valor for diferente de 0 o componente sempre fará a tradução para a página de código do ECF (por DSA) [+] Adicionado suporte a página de código do ECF. O componente agora aceita caracteres acentuados e os traduz para a página de código nativa do ECF. A leitura da resposta também é interpretada e traduzida para o comando de String nativo do Delphi/Lazarus (Ansi ou UTF8) (por DSA) [+] Adiconado suporte as TAGs de formatação em: Epson e FiscNet (por DSA) Data: 14/07/2011 -- ACBrECFDaruma -- [+] Formatação de fontes do relatório gerencial e rodapé do cupom fiscal ver no Demo do ACBrECF como utilizar as tags - já funcionando para Daruma completo e Bematech somente a formatação (por: Régys Silveira) Data: 12/07/2011 -- ACBrECFDaruma -- [+] Carga do bitmap promocional (por: Régys Silveira) Data: 12/07/2011 -- ACBrSwedaSTX -- [+] Numero de série do MFD [+] Submodelo do ECF [*] Melhoria na impressão da linha do gerencial (por: Carlos Nascimento) Data: 11/07/2011 -- ACBrECF -- [*] Acerto para que o cancelamento parcial seja mostrado na bobina do ACBrECF (por: Régys Silveira) Data: 30/06/2011 -- ACBrECFDaruma -- [+] Método para cancelamento de item não fiscal [+] Método para impressão da segunda via do Comprovante não fiscal [+] Indice do bitmap promocional em todos os comprovantes fiscais e não fiscais já funcionando na Daruma. [+] Dados do cliente no comprovante não fiscal. [-] Acertos gerais da Daruma. (por: Régys Silveira) Data: 29/06/2011 -- ACBrECFDaruma -- [-] Acerto nas mensagens de erro do método ArquivoMFD_DLL. (por: Régys Silveira) Data: 28/06/2011 -- ACBrECFDaruma -- -- ACBrECF -- -- ACBrECFSwedaSTX -- -- ACBrECFSweda -- -- ACBrECFEpson -- [*] Acerto para funcionamento em Linux. (por: Carlos Nascimento Filho) Data: 28/06/2011 -- ACBrECFDaruma -- [*] Alteração para utilizar a nova DLL da Daruma, testes realizados junto ao pessoal da Daruma utilizando a DLL disponibilizada no site. (por: Régys Silveira) Data: 20/06/2011 -- ACBrECFDaruma -- [-] Acerto no método de identificação do ECF, para guardar os valores também no registro do windows, algumas funções da dll Daruma buscam desse local a identificação do ECF. (por: Régys Silveira) -- ACBrECFBematech -- [-] Acerto no flag de desconto do issqn para impressoras matriciais. [-] Acerto no subModelo do ECF para impressoras matriciais, esse retorno não existe nelas. (por: Régys Silveira) Data: 03/06/2011 -- ACBrECFClass -- [*] A class "TACBrECFDAV" e "TACBrECFDAVs" foi movida para ACBrPAFClass (por: Isaque Pinheiro) Data: 02/06/2011 -- ACBrECFDaruma -- [-] Corrigida interpretação de Flag de Pouco Papel em Daruma MFD (por: DSA) Data: 01/06/2011 -- ACBrECF -- [+] Implementado método: DescontoAcrescimoItemAnterior nos modelos: ACBrECFBematech, ACBrECFDaruma, ACBrECFFiscNet, ACBrECFEpson, ACBrECFSwedaSTX -- ACBrECFBematech -- [-] Corrigido calculo do Valor do Desconto, em VendeItem, quando o mesmo era informado em Porcentagem -- ACBrECFSwedaSTX -- [-] Corrigida rotina de busca de Aliquota por Indice. (por: Fernando Gutierres Damaceno) -- ACBrTER -- [+] Implemetado método: ACBrTER.LeBalanca (por: Marcelo Ferreira) [+] Novo Projeto de Demonstração e Exemplo (por: Marcelo Ferreira) Data: 12/05/2011 -- ACBrECF -- [*] Modificada a rotina de Verificação de Valor do GT que trabalha em conjunto com o componente ACBrAAC, para suportar a Recuperação do valor do GT (por: DSA) [*] Cabeçalho padrão dos Itens desenhados na Bobina, com 14 caracteres, para suportar a exigência do PAF-ECF (por: DSA) Data: 10/05/2011 -- ACBrECF -- [+] Adicionado TotalICMS e TotalISSQN nos dados da Redução Z. Mantis #945 (sugestão de Allan Wolski) Data: 10/05/2011 -- ACBrECF -- [+] Padronização de código usando função "PathWithDelim", alertado (por Vanderlei). Data: 09/05/2011 -- ACBrECF -- [+] Adicionada a propriedade PathDLL, que permite informar o caminho das DLL de cada fabricante (por Isaque Pinheiro) ex: case ACBrECF.Modelo of ecfNenhum: ACBrECF.ECF.PathDLL := ''; ecfBematech: ACBrECF.ECF.PathDLL := '.\DLLs\Bematech'; ecfSweda: ACBrECF.ECF.PathDLL := '.\DLLs\Sweda'; ecfDaruma: ACBrECF.ECF.PathDLL := '.\DLLs\Daruma'; ecfFiscNET: ACBrECF.ECF.PathDLL := ''; ecfYanco: ACBrECF.ECF.PathDLL := ''; ecfDataRegis: ACBrECF.ECF.PathDLL := ''; ecfUrano: ACBrECF.ECF.PathDLL := ''; ecfEpson: ACBrECF.ECF.PathDLL := ''; end; Data: 09/05/2011 -- ACBrAAC -- [*] Componente ACBrAAC volta para o Package ACBrComum, para poder ser usado por ACBrECF e ACBrPAF.. (por: DSA) ** NOTA: Isso exige a completa re-instalação dos Packages ACBrComum e ACBrSerial Data: 07/05/2011 -- ACBrECF -- [+] Adicionada a propriedade EAD, que permite ligar o componente ACBrECF a um componente ACBrEAD já existente. Isso evita a necessidade de programação dos eventos de Captura das Chaves em vários componentes, além de carregar apenas uma vez o OpenSSL na memória (por: DSA) -- ACBrECFDaruma -- [-] Corrigido método de abertura de Porta Serial pela DLL (por: DSA) -- ACBrECFUrano -- [+] Adicionado comando de abertura de gaveta (por: Ivan) -- ACBrTER -- [-] Corrigido Bug na Leitura da Resposta dos Terminais (por: marcelo_sp) [+] Adicinado programa Demo para Delphi (por: marcelo_sp) Data: 05/05/2011 -- ACBrAAC -- [+] - Novo componente ACBrAAC (Arquivo Auxiliar Criptografado), que permite criar e manter o Arquivo.Auxiliar de acordo com as exigências do PAF-ECF, deve ser usado em conjunto com o componente ACBrECF. [*] Demo: ECFTeste.lpi (Lazarus) modificado para demonstrar o funcionamento do componente ACBrAAC... (versão em Delphi a fazer) -- ACBrECF -- [+] - Nova Propriedade AAC, que permite interligar o componente ACBrECF com o componente ACBrAAC [*] - Limpeza e ajuste de código Data: 26/04/2011 -- ACBrECF -- [-] - Acerto no método de geração do menu fiscal LMFC Ato Cotepe 17/04 Por: Régys Silveira Data: 25/04/2011 -- ACBrECF -- [-] - Acerto no método de retorno da data e hora do SB, segunda a bematech este comando só deve ser utilizado quando a impressora estiver livre em outras situações causa erro. Por: Régys Silveira Data: 21/04/2011 -- ACBrECF -- [*] - Remoção de comentários desnecessários dos fontes (limpeza) [*] - Propriedade Cliche passou a ser AnsiString para suportar os caracteres de controle (expandido, negrito, etc) -- ACBrECFBematech -- [-] - Corrigido retorno de GetSubTotal, quando documento é Comprovante NAO fiscal [-] - Corrigido retorno de GetTotalPago, quando o documento é Comprovante NAO fiscal para ECFs MFD ou MP25 Data: 13/04/2011 -- ACBrECF -- [*] - Alteração no relatório de "DAV Emitidos" para o novo roteiro de testes Por: Régys Silveira Data: 09/04/2011 -- ACBrECF -- [-] - Na funcão "TACBrECF.GetMFAdicional: String;", mudei a var "Letra: Char" para "Letra: AnsiChar", por incompatibilidade com o D2010. por: Isaque Pinheiro Data: 23/03/2011 -- ACBrECF -- [*] - Alteração no relatório do menu fiscal meio de pagamento para acumular por data e descricao da finalizadora. Por: Régys Silveira Data: 22/03/2011 -- ACBrECF -- [*] - Acertos nos relatórios do menu fiscal do paf-ecf para ficar conforme pedido dos homologadores. Por: Régys Silveira Data: 18/03/2011 -- ACBrECF -- [*] - Adicionados novos métodos para auxiliar no menu fiscal do paf-ecf: * PafMF_LX_Impressao; * PafMF_LMFC_Impressao; * PafMF_LMFC_Espelho; * PafMF_LMFC_Cotepe1704; * PafMF_LMFS_Impressao; * PafMF_LMFS_Espelho; * PafMF_MFD_Espelho; * PafMF_MFD_Cotepe1704; * PafMF_RelMeiosPagamento; * PafMF_RelDAVEmitidos; * PafMF_RelIdentificacaoPafECF. - Novo método para assinar arquivos com EAD: * AssinaArquivoComEAD. - Adicionados novos eventos para assinatura de arquivos pelo ACBrECF, funcionam idênticos aos do componente ACBrPAF * OnPAFCalcEAD; * OnPAFGetKeyRSA. Por: Régys Silveira Data: 15/03/2011 -- ACBrECF -- [*] - Adicionado novo parâmetro ao método ArquivoMFD_DLL para dizer a finalidade da geração do arquivo, se foi gerado pelo menu fiscal LMFC ou pelo menu fiscal Arq.MFD. Por: Régys Silveira Data: 13/03/2011 -- ACBrETQ -- [+] - Adicionado suporte a novo protocolo EPL2 (que é igual ao PPLB) Por: José Luís Schiavo e DSA [*] - Modificada a assinatura do método: CarregarImagem, para: CarregarImagem(AStream : TStream; NomeImagem: String; Flipped : Boolean = True; Tipo: String = 'BMP' ); overload; Pois alguns modelos de Impressoras suportam imagens diferentes de BMP e não suportadas pelo Delphi. A mudança também permitira o uso desse método em aplicações console [+] - Adicionado o método: CarregarImagem(ArquivoImagem, NomeImagem: String; Flipped : Boolean = True ) (Uma sobrecarga do método já existente) [+] - Adicionada a propriedade "DPI", que permite informar ao ACBrETQ, quantas DPI o equipamento comandado suporta. Dessa maneira é possível utilizar unidades de medida em Milimitros ou Polegadas mesmo em modelos EPL2 e PPLB (que originalmente só suportam medidas em Dots) [*] - Aplicação Demo - ETQTeste, modificada para melhor exemplifiar as novas funcionalidades Versão 1.0.0 10/03/2011 -- ACBrECFDaruma -- [*] - Método ReducaoZ usa a data/hora do próprio ECF ao invez da data/hora do micro, se a mesma não for informada -- ACBrECFFiscNet -- [-] - Método FechaCupom corrigido para funcionar corretamente com Fechamento contendo Observações e a Identificação do Operador Versão 1.0.0 09/03/2011 -- ACBrECF -- [*] - Eventos OnAntesSubtotalizaCupom, OnDepoisSubtotalizaCupom e OnErrorSubtotalizaCupom Não estavam declarados. Versão 1.0.0 19/02/2011 -- ACBrDevice -- [+] - Adicionado método: ACBrDevice.AcharPortasSeriais(const AStringList : TStrings ; UltimaPorta : Integer) ; que preenche a Lista de String com as portas existentes do S.O. -- ACBrECF -- [*] - Método ACBrECF.AcharECF agora faz uso de ACBrDevice.AcharPortasSeriais, agilizando muito a busca. Versão 1.0.0 01/02/2011 -- ACBrRFD -- [*] - Modificado para usar o novo componente ACBrEAD, que permite efetuar a assinatura digital de forma muito mais eficiente e segura (leia mais em ACBrComum-change-log.txt) - No Delphi isso causará a dependencia estática da DLL libeay32.dll em todos os programas que usem os componentes ACBrECF ou ACBrRFD.. - A DLL pode ser encontrada em: ACBr\DLLs\OpenSSL - Copie-a para a pasta do seu executável. -- ACBrECFDaruma -- [-] Modificadas as chamadas da DLL, removendo o typecast de PAnsiChar(), conforme relatado em: http://www.djsystem.com.br/acbr/forum/viewtopic.php?f=10&t=567 [-] Corrigido problema de Leitura de Aliquotas com 0 na FS345 Versão 1.0.0 24/12/2010 -- ACBrECF -- [+] Novos Eventos para acompanhar as operações básicas do ECF, Exemplo: OnAntesAbreCupom, OnDepoisAbreCupom, OnErrorAbreCupom, etc (por: Franklin e Elton) [+] Adicionadas propriedades: - "NumGNFC" é o "Contador de Operação Não Fiscal Cancelada" armazenando o número de cupons de Operaçôes Não Fiscais que foram cancelados; - "NumCFD" é o "Contador de Fita-Detalhe Emitida"; - "NumNCN" é o "Contador de Débito ou Crédito não Emitidos", ou seja, os Comprovantes de Débito ou Crédito (CDC) que não foram emitidos. Em geral, ao fazer uma venda com forma de pagamento que permite CDC, mas não se emita um CDC no final, esse contador é incrementado; - "NumCCDC" é o "Contador de Débito ou Crédito Cancelados", ou seja, cada CDC cancelado é contado nesse registrador; - "TotalCancelamentosOPNF", "Total das Operações Não Fiscais Canceladas" Exemplo, ao cancelar uma Sangria ou Suprimento; - "TotalDescontosOPNF", "Total dos Descontos nas Operações Não Fiscais"; - "TotalAcrescimosOPNF","Total dos Acréscimos nas Operações Não Fiscais"; - "ParamDescontoISSQN", é o parâmetro da impressora que define se o Desconto em ISSQN está (ou não) habilitado; (por: Elton) [*] Modificado GetDadosReducaoZ para retornar dados das novas propriedades acima. Também foram adicionadas propriedades já implementadas que não estavam saindo no INI mas são requeridos pelo PAF, a saber: - "NumGNF", "Contador Geral de Operaçôes Não Fiscais"; - "NumCCF", "Contador de Cupom Fiscal"; - "NumCDC", "Contador de Comprovantes de Débito ou Crédito"; - "NumGRG", "Contador Geral de Relatório Gerencial"; - "NumCFC", "Contador de Cupom Fiscal Cancelado"; (por: Elton) [*] Modificado GetDadosReducaoZ, onde TotalISSQN estava retornando valor incorreto. Na verdade, estava retornando o valor É necessária averiguação de valor correto. (por: Elton) [*] Método "LinhaRelatorioGerencial" agora suporta impressão de Longos Gerenciais abrindo um Novo Gerencial se necessário (caso o ECF o tenha fechado por TimeOut de 2 minutos) (por: DSA) -- ACBrECFBematech -- [+] Implementados métodos "GetParamDescontoISSQN", "GetNumGNFC", "GetNumCFD", "GetNumNCN", "GetNumCCDC", "GetTotalAcrescimosOPNF", "GetTotalCancelamentosOPNF" e "GetTotalDescontosOPNF". Veja propriedades adicionadas no ACBrECF acima. (por: Elton) [*] Corrigido método RetornaInfoECF para refletir melhor as informações das impressoras atuais. Por padrão agora é chamado nos lugares em que se precisa buscar as informações da função "Retorno de Variáveis" (ESC 35). (por: Elton) [*] GetDadosUltimaReducaoZ foi modificada para retornar os dados possibilitados pelas impressoras MFD no comando novo (ESC 88). (por: Elton) Versão 0.9.6 11/09/2010 -- ACBrECF -- [-] Corrigido rotina VendaItem, para Daruma FS345, quando quantidade do item tem 3 casas decimais (Isaque Pinheiro). 27/08/2010 -- ACBrBal -- [*] Novo modelo de balança adicionado, LucasTec. (por João Paulo) Versão 0.9.6 15/07/2010 -- ACBrRFD -- [*] Modificado para utilizar classe TACBrEAD ao assinar arquivos com EAD (por: Elton da Motta Barbosa) Versão 0.9.6 05/07/2010 -- ACBrETQ -- [+] Adicionada a Propriedade "Unidade" para indicar milimetros/polegadas (por: Alexsander da Rosa) -- Synapse -- [*] Aplicadas correçoes da revisão 129 do SVN do Projeto Synapse (Melhorada Compatibilidade com MacOS) -- ACBrUtil -- [*] Revisto dependencias e compatibilidade com Lazarus/FPC [*] Método WriteToTXT modificado para usar TFileStream ao invez de AssignFile. -- ACBrDevice -- [*] Metodo EnviaString modificado para usar TFileStream ao invez de AssignFile, quando a diretiva {$DEFINE Use_Stream} estiver declarada (por enquando apenas no Lazarus/FPC, uma vez que o AssigneFile não funciona corretamente no Lazarus/FPC em algumas ocasiões) Versão 0.9.6 10/06/2010 -- ACBrECF -- [*] Modificado parâmetros dos métodos EspelhoMFD_DLL e ArquivoMFD_DLL de String para AnsiString para compatibilidade com o delphi2010 (por:Fernando Gutierres Damaceno) -- ACBrECFBematech -- [*] Modificado parâmetros dos métodos EspelhoMFD_DLL e ArquivoMFD_DLL de String para AnsiString para compatibilidade com o delphi2010 (por:Fernando Gutierres Damaceno) -- ACBrECFClass -- [*] Modificado parâmetros dos métodos EspelhoMFD_DLL e ArquivoMFD_DLL de String para AnsiString para compatibilidade com o delphi2010 (por:Fernando Gutierres Damaceno) -- ACBrECFDaruma -- [*] Modificado parâmetros dos métodos EspelhoMFD_DLL e ArquivoMFD_DLL de String para AnsiString para compatibilidade com o delphi2010 (por:Fernando Gutierres Damaceno) -- ACBrECFEpson -- [*] Modificado parâmetros dos métodos EspelhoMFD_DLL e ArquivoMFD_DLL de String para AnsiString para compatibilidade com o delphi2010 (por:Fernando Gutierres Damaceno) -- ACBrECFFiscNet -- [*] Modificado parâmetros dos métodos EspelhoMFD_DLL e ArquivoMFD_DLL de String para AnsiString para compatibilidade com o delphi2010 (por:Fernando Gutierres Damaceno) -- ACBrECFSweda -- [*] Modificado parâmetros dos métodos EspelhoMFD_DLL e ArquivoMFD_DLL de String para AnsiString para compatibilidade com o delphi2010 (por:Fernando Gutierres Damaceno) -- ACBrECFSwedaSTX -- [+] Implementado método EspelhoMFD_DLL (Implementado por Magno System na Sweda e replicado para SwedaSTX por Fernando Gutierres Damaceno) [+] Implementado método ArquivoMFD_DLL (Implementado por Magno System na Sweda e replicado para SwedaSTX por Fernando Gutierres Damaceno) [-] Corrigido método AchaICMSAliquota (por:Fernando Gutierres Damaceno) [-] Corrigido método VendeItem. (por:Fernando Gutierres Damaceno) Versão 0.9.5 01/06/10 -- ACBrECFSwedaSTX -- [-] Corrigida leitura do método GetDataMovimemto (por: Fernando Gutierres Damaceno) Versão 0.9.4b 26/05/10 -- ACBrECF -- [-] Corrigido método AchaICMSAliquota( Aliquota: Double; Tipo : Char ) em D2010 (por: Eduardo Martins) -- ACBrECFSwedaSTX -- [+] Implementado método IdentificaOperador (por: Fernando Gutierres Damaceno) Versão 0.9.3b 24/05/10 -- ACBrECF -- [+] Adicionada propriedade com numero de versão específico -- ACBrECFDaruma -- [-] Corrigido retorno de TotalPago no modelo FS345 (por: André Faria) -- ACBrECFSwedaSTX -- [*] Corrigido alguns Warnings e Hints de Compilação Versão 0.9.2b 19/05/10 -- ACBrECFSwedaSTX -- [+] Implementado o restante dos métodos da Classe SwedaSTX, agora é possível usar as Swedas MFD com este novo protocolo, muito mais rápido e otimizado. (por: Fernando Gutierres Damaceno) -- ACBrECFBematech -- [*] Corrigido bug em ArquivoMFD_DLL, durante a captura da Data de Inicio (Por: Magno System) -- ACBrECF -- [*] Metodos: AchaCNFDescricao, AchaFPGDescricao, AchaRGDescricao modificados com a inclusão do Parametro: IgnorarCase : Boolean = True Se nao for especificado, assume True como Default. Se For True, não faz distinção de Maiusculas e Minusculas na Busca Versão 0.9.1b 03/05/10 -- ACBrECF -- [-] DadosReducaoZ: Corrigido Retorno dos Indices de Aliquotas de ICMS e ISS (por: Fernando Gutierres Damaceno) [*] Metodos "LinhaRelatorioGerencial" e "LinhaCupomVinculado" modificados para respeitar corretamente a propriedade "MaxLinhasBuffer" Versão 0.9.0b 21/04/10 -- ACBrECF -- [+] Implementado propriedade "TotalTroco" para buscar e guadar o total do troco nos ECFs. [+] Implementado propriedade "TotalTroco" na class "TACBrECFDadosRZ" Versão 0.8.9b 03/04/10 -- ACBrECFDaruma -- [-] Corrigido Bug no método "UsuarioAtual", não carregava o numero do usuário atual no modelo FS345. (Por Isaque Pinheiro) Data: 25/03/2010 -- ACBrECFMecaf -- [+] Implementado método GETNUMCCF (por José Nilton Pace) Versão 0.9.0a 16/03/10 -- ACBrECF -- [*] Propriedade renomeada de "ReducaoZClass" para "DadosReducaoZClass" para ficar compativel com os nomes das outras propriedades "DadosReducaoZ" e "DadosUltimaReducaoZ". (por : Isaque Pinheiro) Versão 0.9.0a 14/03/10 -- ACBrECF -- [-] Correção de vazamento de memoria em TACBrECFDadosRZ (por: DSA) Versão 0.9.0a 13/03/10 -- ACBrECF -- [+] Criada uma nova class "TACBrECFDadosRZ" para armazenar todas as informações da Redução Z, centralizando os dados e melhorando a captura do dados, que hoje esta sendo feita através de TXT. A Class esta sendo alimentada no método "GetDadosReducaoZ", para demonstrar como armazenar os dados nela. A implementação no método "GetDadosUltimaReducaoZ", deverá ser implementada em cada modelo, baseado no método "GetDadosReducaoZ" que está implementado. por (Isaque Pinheiro) Versão 0.8.9b 25/02/10 -- ACBrECF -- [*] Aplicada otimização no Fechamento de Cupom quando o ACBrECF está associado a geraçao de Bobina gráfica. (Por: Lampada) Versão 0.8.9b 24/02/10 -- ACBrECFBematech -- [-] Corrigido Bug no método "CarregaAliquotas", que não carregava todas aliquotas se houvesse alguma cadastrada com o valor 0. Por: cristian.custodio Versão 0.8.9b 16/02/10 -- ACBrECFEpson -- [+] Implementado métodos, CarregaRelatoriosGerenciais e ProgramaRelatorioGerencial Por: WagnerPV [*] Sobrecarga no método AchaCNFDescricao para considerar a busca por "SUPRIMENTO" como "FUNDO DE TROCO" que já é pré-programado na Epson. Por: WagnerPV -- ACBrECFBematech -- [-] Corrigido Bug no método "CortaPapel" (não funcionava) Versão 0.8.9b 12/02/10 -- ACBrECF -- [-] Modificado HTML em MemoTitulo para exibir corretamente centralizado titulo do documento -- ACBrECFDaruma -- [*] AbrePortaSerialDLL modificada, chave ControlePorta passa a gravar valor 0 - Adicionada a gravação da chave ECF, Path -- ACBrECFEpson -- [-] Corrigido bug em GetTotalIsencao. por: José Nilton Pace [-] Corrigida ordem da detecção de Estado quando usando o Flag de Pagamento -- ACBrECFFiscNET -- [-] Corrigida ordem da detecção de Estado quando usando o Flag de Pagamento Versão 0.8.9b 08/02/10 -- ACBrECFEpson -- [*] Modificada detecção de estado do ECF Epson. Após o envio do comando de SubtotalizaCupom, sem Desconto ou Acrescimo, o estado ainda permanecia em estVenda pois esse ECF não efetua a subtotalização com valor 0. Versão 0.8.9b 26/11/09 -- ACBrValidador -- [*] Formatação de Inscrição Estadual modificada para inserir zeros a esquerda quando Documento estiver incompleto. (Por: Maico) http://acbr.sourceforge.net/mantis/view.php?id=421 -- ACBrUtil -- [+] Adicionada: Procedure FindFiles( const FileMask : String; AStringList : TStrings; IncludePath : Boolean = True ) ; Versão 0.8.9b 24/11/09 -- ACBrECFDaruma -- [-] Corrigida sintaxe dos comandos LerTotaisFormaPagamento e LerTotaisComprovanteNaoFiscal. Removido [CR] no final do comando. Que causavam Erro Estendido: (24) "Erro no verificador da comunicação" no modelo FS700 (Por DSA) Versão 0.8.9b 23/11/09 -- ACBrETQ -- [+] Implementado método: (Por DSA) CarregarImagem( MonoBMP : TBitmap; NomeImagem: String; Flipped : Boolean = True); [+] Adicionada Propriedade "LimparMemoria: Boolean". Se For "True" (default), Limpa a memoria RAM a cada chamada do método "Imprimir" [+] Implementado método: (Por Anderson Rogerio Bejatto) ImprimirImagem(MultiplicadorImagem, Linha, Coluna: Integer; NomeImagem: String); [*] Demo ETQTeste modificado para demonstrar os métodos de Imagem Versão 0.8.9b 16/11/09 -- ACBrECF -- [*] Revisão das chamadas dos métodos que usam a DLL, substituindo declarações de "String" para "AnsiString" para compatibilizar com D2009 e Lazarus -- ACBrECFDaruma -- [+] Implementado EspelhoMFD_DLL e ArquivoMFD_DLL por COO e Data, usando carga dinâmica da DLL (Por: Luiz Arlindo e DSA) (Testes sem sucesso... Estou em contato com o suporte da Daruma (DSA)) Versão 0.8.9b 12/11/09 -- ACBrECF -- [+] Adicionada a assinatura do método: Procedure DescontoAcrescimoItemAnterior( ValorDescontoAcrescimo : Double = 0; DescontoAcrescimo : String = 'D' ) ; ( porém ainda não foi implementado em nenhuma Classe ) [*] Calculo do Total do Item Vendido apresentado na bobina, usa TruncFix ao invez de Round(N,0) quando o ECF Truncar -- ACBrECFBematech -- [+] Implementado ArquivoMFD_DLL por COO usando carga dinâmica da DLL, e um mecanismo para detectar a Data Inicial e Final equivalentes ao COO Inicial e Final (Por: Luiz Arlindo) -- ACBrECFFiscNET -- [-] Corrigido problema quando informando parâmetros String com Cararteres de controle suportados pelo ECF (Ex: /xB1) -- ACBrRFD -- [*] Calculo do Total do Item Vendido, usa TruncFix ao invez de Round(N,0) quando o ECF Truncar Versão 0.8.9b 04/11/09 -- ACBrECFBematech -- [+] Implementado ArquivoMFD_DLL por Periodo usando carga dinâmica da DLL. Não há função disponível na DLL para efetuar a Leitura por COO (Por: Luiz Arlindo e DSA) Versão 0.8.9b 03/11/09 -- ACBrECF -- [*] VendeItem: Implementado tratamento para uso de aliquotas do ISSQN SI = Isento ISSQN; SN = Nao Incidencia ISSQN; SF = Subst.Tributária ISSQN; Os Valores abaixo, quando informados, serão convertidos: { IS1, IS2 = "SI"; FS1, FS2 = "SF"; NS1, NS2 = "SN" } Classes revisadas: Bematech, Daruma, Sweda, Epson, FiscNET [+] Implementadas propriedades para Leitura de Totais por ISSQN ( Por: Marciano Lizzoni ) Property TotalCancelamentosISSSQN : Double ; Property TotalDescontosISSQN : Double ; Property TotalAcrescimosISSQN : Double ; Property TotalSubstituicaoTributariaISSQN : Double ; Property TotalNaoTributadoISSQN : Double ; Property TotalIsencaoISSQN : Double ; -- ACBrECFFiscNet -- [-] Correção do método GetUsuarioAtual (por M.Ivan) [+] Implementação dos métodos: (por M.Ivan) GetTotalCancelamentosISSSQN, GetTotalDescontosISSQN, GetTotalAcrescimosISSQN, GetTotalSubstituicaoTributariaISSQN, GetTotalNaoTributadoISSQN, GetTotalIsencaoISSQN -- ACBrECFDaruma -- [+] Implementação dos métodos: (por M.Ivan) GetTotalCancelamentosISSSQN, GetTotalDescontosISSQN, GetTotalAcrescimosISSQN, GetTotalSubstituicaoTributariaISSQN, GetTotalNaoTributadoISSQN, GetTotalIsencaoISSQN -- ACBrECFSweda -- [+] Implementação dos métodos: (por Isaque Pinheiro) GetTotalCancelamentosISSSQN, GetTotalDescontosISSQN, GetTotalAcrescimosISSQN, GetTotalSubstituicaoTributariaISSQN, GetTotalNaoTributadoISSQN, GetTotalIsencaoISSQN -- ACBrECFBematech -- [+] Implementação dos métodos: (por Isaque Pinheiro) GetTotalCancelamentosISSSQN, GetTotalDescontosISSQN, GetTotalAcrescimosISSQN, GetTotalSubstituicaoTributariaISSQN, GetTotalNaoTributadoISSQN, GetTotalIsencaoISSQN -- ACBrECFEpson -- [+] Implementação dos métodos: (por: DSA) GetTotalCancelamentosISSSQN, GetTotalDescontosISSQN, GetTotalAcrescimosISSQN, GetTotalSubstituicaoTributariaISSQN, GetTotalNaoTributadoISSQN, GetTotalIsencaoISSQN Versão 0.8.9b 29/10/09 (DSA) --ACBrValidador -- [+] Adicionado método: FormatarIE( AString, UF : AnsiString ) : AnsiString ; [*] Erro de Validação de Documento vazio, retorna mensagem especificando o Nome do Tipo do Documento -- ACBrECF -- [*] Método VendeItem, quando associado ao desenho de uma "Bobina", considera o Flag de Arredondamento do ECF para calcular o Total do Item Versão 0.8.9b 27/10/09 -- ACBrECFNaoFiscal -- [+] Adicionada várias propriedades e métodos (Por Ivan Moreira) NumGNF, NumGRG, NumCDC, NumCER, GrandeTotal, VendaBruta, UsuarioAtual, Cliche, DataHoraSB, SubModeloECF, TotalSubstituicaoTributaria, TotalNaoTributado, TotalIsencao [+] Alteração do tamanho do NumSerie. Versão 0.8.9b 26/10/09 -- ACBrBAL -- [+] Adicionado novo Modelo "balUrano" (por: Ivan Carlos Martello) Versão 0.8.9b 23/10/09 (DSA) [*] Método LeituraMFDSerialDLL renomeado para EspelhoMFD_DLL para melhor compreensão no PAF-ECF [+] Adicionado novos métodos para obter o Arquivo MFD (Ato Cotepe 17/04) Procedure ArquivoMFD_DLL( DataInicial, DataFinal : TDateTime; NomeArquivo : String; Documentos : TACBrECFTipoDocumentoSet = [docTodos] ) ; overload ; Procedure ArquivoMFD_DLL( COOInicial, COOFinal : Integer; NomeArquivo : String; Documentos : TACBrECFTipoDocumentoSet = [docTodos] ) ; overload ; -- ACBrECFEpson -- [+] Implementado ArquivoMFD_DLL por Periodo e COO usando carga dinâmica da DLL. Nos testes realizados não foi possivel efetuar a Leitura por COO (Erro 1) -- ACBrECFSweda -- [+] Implementado ArquivoMFD_DLL por Periodo e COO usando carga dinâmica da DLL. (por Magno System) Versão 0.8.9b 21/10/09 -- ACBrECF -- [+] Adicionada a propriedade ACBrECF.DaraHoraSB : TDateTime ( por Ivan Moreira ) Retorma a Data e Hora do Software Básico. Para facilitar no PAF-ECF. Implementada para os Modelos: Sweda, Epson e Daruma; [+] Adicionada a propriedade ACBrECF.SubModeloECF : String ( por Ivan Moreira ) Retorma o Modelo do ECF. Para facilitar no PAF-ECF. Implementada para os Modelos: Sweda, Bematech, Epson, FiscNet e Daruma; -- ACBrECFBematech -- [+] Implementado LeituraMFDSerialDLL por periodo e COO usando carga dinâmica da DLL (DSA) -- ACBrECFSweda -- [*] Adicionada Sleep(1000) no método FechaCupom, Se o modelo for Matricial (JNP) [+] Implementado LeituraMFDSerialDLL por periodo e COO usando carga dinâmica da DLL (por Magno System) Versão 0.8.9b 20/10/09 (DSA) -- ACBrECF -- [+] Implementados métodos para permitir o uso da DLL do fabricante na Leitura da MFD Implementação nas classes filhas *DEVE* usar carga dinâmica da DLL, para não criar dependência Estática da DLL do fabricante no componente. (Veja o exemplo de implementação na Classe ACBrECFEpson.pas ) Procedure LeituraMFDSerialDLL( DataInicial, DataFinal : TDateTime; NomeArquivo : String; Documentos : TACBrECFTipoDocumentoSet = [docTodos] ) ; overload ; Procedure LeituraMFDSerialDLL( COOInicial, COOFinal : Integer; NomeArquivo : String; Documentos : TACBrECFTipoDocumentoSet = [docTodos] ) ; overload ; -- ACBrECFBematech -- [-] Corrigido calculo do intervalo tempo de Espera em LeituraMFDSerial por COO -- ACBrECFEpson -- [+] Implementado LeituraMFDSerialDLL por periodo e COO usando carga dinâmica da DLL -- ECFTeste -- [+] Adicionado opção no Menu "Relatório -> Leitura MFD Serial DLL" -- ACBrCalculadora -- [*] Criação do Form do Componente modificada para usar Owner como Application ao invez de Nil Versão 0.8.9b 17/10/09 (DSA) --ACBrValidador -- [*] ACBrValidador.MsgErro agora usa ACBrStr() para conversão de UTF8 se necessário -- Lazarus -- [+] Inclusão de Novo Form LCalculadora.pas específico para Lazarus, usando OptimalFill no Display [*] Ajuste no número de versão do Package -- ACBrUtil -- [*] Adicionado Parâmetro "RaiseExceptionOnFail" na Procedure DeleteFiles(const FileMask: String; RaiseExceptionOnFail : Boolean = True) ; Se for informado como False, não irá disparar Exception quando não conseguir apagar determinado arquivo, e continuará o Loop para apagar demais arquivos correpondentes a "FileMask". Se omitido, assume True (default) -- ACBrECFSweda -- [-] Corrigido Bug na detecção do Status do ECF, quando o ECF sinalizava Status = 'E' www.forumweb.com.br/foruns/index.php?/topic/78701-ecf-sweda-st120-retornando-estdesconhecido/ Versão 0.8.9b 15/10/09 (DSA) -- ACBrECF -- [*] Modificada a assinatura dos comandos: LeituraMFDSerial, LeituraMemoriaFiscalSerial, LeituraXSerial removendo a declaração "var" do parâmetro Linhas (por ser desnecessário) -- ACBrUtil -- [+] Adicionada function RemoveStrings(const AText: AnsiString; StringsToRemove: array of AnsiString): AnsiString; Remove todas ocorrencias de String do Array da String retornando a String alterada -- ACBrECFBematech -- [-] Corrigido Bug de "espera inifinita" quando aguardando retorno de comandos de Leitura (Ex: LeituraMFD), em que o ECF respondeu com "Erro" -- ACBrECFDaruma -- [*] Melhorada Rotina de Limpeza dos retorno de comandos de Leitura (Ex: LeituraMFD) [-] Corrigido Bug na rotina de Criação de Arquivo com conteudo do Retorno de Leituras, que em algumas ocasições era Truncado -- ACBrECFFiscNet -- [*] Otimização da Rotina de Limpeza dos retorno de comandos de Leitura [-] Corrigido Bug nos Retornos de Leitura, em que o arquivo era "deslocado", perdendo o lay-out original Versão 0.8.8b 12/10/09 -- ACBrECF -- [-] No ECF da Daruma ao se comandar a impressão da Leitura da Memória Fiscal o componete estavá invertendo o metodo simplificado pelo completo. (por Ivan Moreira) Versão 0.8.8b 10/10/09 -- ACBrECF -- [+] Adicionada a propriedade ACBrECF.UsuarioAtual : String ( por Ivan Moreira ) Retorma o usuario atual da Memória Fiscal Implementada para os Modelos: Sweda, Bematech, Epson, FiscNet e Daruma; -- ACBrECFEpson -- [*] Modificação na rotina VerificaFimLeitura, para tratar corretamente Respostas Fora da Sequencia, e Respostas com o CheckSum inválido. (por Daniel Simões) -- ACBrECFDaruma -- [+] Implementado método ACBrECF.IM = Retorna a Inscrição Municipal; [+] Implementado método ACBrECF.Cliche = Retorna o Cabeçalho; [*] ECF.ModeloStr = Esta retornado 'Daruma "Modelo FS-600" ' em vez só de 'Daruma'. ( por Ivan Moreira ) -- ACBrECFSweda -- Implementada as rotinas: ( por Ivan Moreira ) [+] ECF.LeituraMFDSerial(dtInicial,dtFinal) = Retorna MFD por Data; [+] ECF.LeituraMFDSerial(COOInicial,COOFinal) = Retorna MFD por COO; Versão 0.8.8b 08/10/09 -- ACBr -- [*] Todas as Saidas de Mensagem do ACBr, através de Exceptions ou MessageDlg foram revisadas para converter a saida para UTF8 quando o Compilador suportar UNICODE. -- ACBrUtil -- [+] Adicionada: function ACBrStr( AString : AnsiString ) : String ; Todos os Fontes do ACBr usam Encoding CP1252, para manter compatibilidade com D5 a D2007, Porém D2009 e superiores e Lazarus0.9.27 e acima usam UTF8. Essa função converte a "AString" para de ANSI, para UTF8, apenas se o sistema usar UNICODE Versão 0.8.8b 02/10/09 -- ACBrECF -- [-] Novo mecanismo usando BlockInput não liberava Mouse/Teclado durante a pergunta de ReTentar -- ACBrECFCalculadora -- [*] Nova Propriedade BorderStyle, para permitir ajustar a Borda da Calculadora [*] Form melhorado para Lazarus, usando OptimalFill no Label do Display de Números Versão 0.8.8b 30/09/09 -- ACBrECF -- [+] Sobrecarga nos métodos abaixo para permitir informa "NomeArquivo: String" ao inves de um StringList. Procedure LeituraXSerial( NomeArquivo : String ); overload ; Procedure LeituraMemoriaFiscalSerial( DataInicial, DataFinal : TDateTime; NomeArquivo : String; Simplificada : Boolean = False ) ; overload ; Procedure LeituraMemoriaFiscalSerial( ReducaoInicial, ReducaoFinal : Integer; NomeArquivo : String; Simplificada : Boolean = False ) ; overload ; Procedure LeituraMFDSerial( DataInicial, DataFinal : TDateTime; NomeArquivo : String; Documentos : TACBrECFTipoDocumentoSet = [docTodos] ) ; overload ; Procedure LeituraMFDSerial( COOInicial, COOFinal : Integer; NomeArquivo : String; Documentos : TACBrECFTipoDocumentoSet = [docTodos] ) ; overload ; -- ACBrECFDaruma -- [*] Adicionado mecanismo de "limpeza" de código de controle de Impressao em captura de Documentos pela Serial Versão 0.8.8b 28/09/09 [*] Diversas alterações efetuadas por: Ivan Moreira - ECF´s : Sweda, Bematech, Epson, FiscNet e NaoFiscal Rotinas: ECF.IM = Retorna a Inscrição Municipal; ECF.Cliche = Retorna o Cabeçalho; - ECF´s: NaoFiscal Rotinas: ECF.CNPJ = Retorna CNPJ; ECF.PAF = Retorna Linha PAF; - ECF´s: Bematech Rotinas: ECF.LeituraMFDSerial(dtInicial,dtFinal) = Retorna MFD por Data; ECF.LeituraMFDSerial(COOInicial,COOFinal) = Retorna MFD por COO; Data: 13/07/2009 -- ACBrECFUrano -- [*] Alteração do método GetEstado para obter estado de Redução Z [*] Implementados novos métodos: RetornaInfoECF, GetCNPJ, GetIE, GetGrandeTotal, GetVendaBruta, GetNumCRZ, GetNumGNF, GetNumCOOInicial, GetTotalCancelamentos, GetTotalDescontos, GetTotalAcrescimos, GetTotalIsencao, GetTotalNaoTributado, GetTotalSubstituicaoTributaria, LerTotaisAliquota, LerTotaisFormaPagamento. (por Carlos Antonio da Silva) Data: 07/07/2009 -- ACBRCHQPerto -- [-] Corrigido bug na comuicação com a impressora e definição de timeouts para comandos enviados à impressora. (por Marcelo Correia Pinheiro) Data: 25/06/2009 -- ACBrECFSweda -- [*] Ajustado Retorno do Estado da Impressora [-] Ajustado Retorno do COOInicial, estava trazendo o CCF Inicial (por José Nilton Pace) Data: 02/03/2009 -- ACBrECFDataRegis -- [*] Compatibilização com a Versão 04 (por Weber Luvisa (ByteCom)) Data: 17/01/2009 -- ACBrECFSweda -- [-] Ajustes no LeResposta. Alguns modelos de 9000IIIE, retorna ocasionalmente um caracter de controle, (#17) no inicio da Resposta, corrigido com um TrimLeft( Resposta ) [-] Flag fsEsperaMinima, causava lentidão em comandos com TimeOut muito alto ajustado para usar no máximo 10 seg em fsEsperaMinima [-] LeituraMemoriaFiscalSerial, aumentado TimeOut (10) das respostas intermediárias (++), evitando leituras incompletas por TimeOut. (por Daniel Simoes de Almeida) Data: 12/01/2009 -- ACBrECFSweda -- [*] Ajuste no método GetVersaoSweda para identificar o modelo ST200 (bug reportado por Waldir Paim) (por Ederson Selvati) Data: 24/12/2008 -- ACBrECFMecaf -- [-] Cancelamento de cupons sem itens retornava Erro 51. Corrigido vendendo um Item de 0.01 centavos antes de cancelar (Reportado por Licério Neto) (por Daniel Simoes de Almeida) [*] Metodo CarregaAliquotas alterado para incluir prefixo 'T' no indice (por Daniel Simoes de Almeida) -- ACBrECFNaoFiscal -- Daniel Simoes de Almeida |* - Implementado retorno da propriedade DataMovimento (por Waldir Paim) |* - Identificação do Cliente no rodapé do Cupom estava duplicando |* as informações, corrigido -- ACBrECFSweda -- [-] Método Interno Purge poderia causar Loop Infinito, corrigido (bug reportado por Waldir Paim) [-] Método GetTotalPago não retornava o valor correto quando pagamento excedia o subtotal do Cupom, corrigido (bug reportado por Jocelio) (por Daniel Simoes de Almeida) Versão 0.8.8b 01/12/08 -- ACBrConsts -- [+] Mensagens de Erro e Alerta de ACBrECF centralizadas em ACBrConsts.pas, por: João Carvalho -- ACBrECF -- [*] Adicionado Parâmetro "Simplificada : Boolean = False" nos métodos: LeituraMemoriaFiscal e LeituraMemoriaFiscalSerial -- ACBrECFQuattro -- [+] Adicionado varios metodos e propriedades, por: Joao Victor Maia Fernandes -- ACBrECFYanco -- [+] Adicionado varios metodos e propriedades: GetGrandeTotal, GetDataMovimento, GetNumCRO, GetNumCRZ, GetVendaBruta, GetTotalDescontos, GetTotalCancelamento, GetTotalAcrescimos, LerTotaisAliquota, GetTotalNaoTributado, GetTotalSubstituicaoTributaria, GetTotalIsencao. [-] Correção no método GetDataHora (por: Sauli Bueno) -- ACBrUtil -- [*] Função IntToStrZero modificada para aceitar Int64. Esse problema poderia causar "erro de conversão" na criação do arquivo ACBrRFD Data: 06/11/2008 -- ACBrECFMecaf -- [*] Alteração Método VendeItem (por Anderson Rogerio Bejatto) Data: 30/10/2008 -- ACBrDevice -- [*] Migraçao do componente TACBrDevice de ACBrBase.pas para essa Unit para evitar que componentes, que usem TACBrComponente (de ACBrBase.pas) mas que nao usem TACBrDevice, carreguem codigo desnecessario como por exemplo toda a classe SynaSer. (por Daniel Simoes de Almeida) Data: 10/10/2008 -- ACBrECFYanco -- [+] Implementação do método GetHorarioVerao [+] Implementação do método MudaHorarioVerao [+] Implementação do método GetCNPJ [+] Implementação do método GetIE [-] Correção no método GetEstado [-] Correção no método CarregaFormasPagamento (por Anderson Rogerio Bejatto) Data: 18/06/2008 -- ACBrECFQuattro -- [+] LerTotaisAliquota, LerTotaisFormaPagamento, LerTotaisComprovanteNaoFiscal, TotalSubstituicaoTributaria, CNPJ, IE, DataMovimento, GrandeTotal, VendaBruta, TotalDescontos, TotalCancelamentos, TotalAcrescimos, NumCOOInicial, NumUltimoItem, TotalIsencao, TotalNaoTributado (por Joao Victor Maia Fernandes) Data: 29/04/2008 -- ACBrECFSweda -- [-] Corrigido o retorno de NumSerie e NumVersao em modelos MFD. (por Daniel Simões de Almeida) Versão 0.8.7b 14/04/08 -- ECFTeste -- [+] Adicionada configuração das caracteristicas da Porta Serial (Velocidade, bit de Parada, paridade, etc) [*] Nova versao do ECFTeste convertida para Lazarus (Wagner Leandro) -- ACBrECF -- [+] Adicionado método IdentificaOperador(Nome: String); - Ligado a propriedade Operador. Todos os modelos de ECF revisados com a possibilidade de informar o Operador ao ECF [+] Adicionado método: CortaPapel( CorteParcial : Boolean = false) ; [+] Adicionado método: Sangria( const Valor: Double; Obs: String; DescricaoCNF: String = 'SANGRIA'; DescricaoFPG: String = 'DINHEIRO') [+] Adicionado método: Suprimento( const Valor: Double; Obs: String; DescricaoCNF: String = 'SUPRIMENTO'; DescricaoFPG: String = 'DINHEIRO') [*] Metodo VendeItem modificado, adicionado parametro: DescontoAcrescimo : String = 'D' que permite definir se o Valor informado no parametro "ValorDescontoAcrescimo" é Desconto "D" ou Acréscimo "A". Se nao informado, assume o Default = 'D' - Todos os modelos revisados para permitir Acrescimo na Venda de Item quando SW.Básico do ECF possuir esse comando [+] Adicionada a propriedade: MsgTrabalhando = "Impressora está trabalhando" [*] Modificado mecanismo TimeOut em LeResposta. - LeResposta detecta quando o ECF está enviando dados pela serial e com isso NAO inicia a contagem regressiva de TimeOut, e exibe o texto de "MsgTrabalhando" -- ACBrFiscNet -- [*] Compatibilizada para trabalhar com a TermoPrinter (Fabio Farias) -- ACBrECFEpson -- [+] Novo modelo de ECF implementado Epson -- ACBrECFDaruma -- [*] Cancelamento de Cupom permite cancelar CCD se imediatemante apos o cupom (Andre Bohn) [-] Corrigido Bug na Leitura dos Totais de Pagamentos na FS600 (Andre Bohn) [+] Implementado a Leitura dos Totais de CNFs para FS600 (Andre Bohn) Data: 10/04/2008 -- ACBrRFD -- [+] Adicionado campo [ECF] -> DataHoraSwBasico= em ACBRRFD.INI Se preenchido, será informado no campo Data/Hora da gravação do SB do registro E01... Se não informado grava campo com vazios [*] Override em AchaCNFDescricao para pesquisar ignorando o 1 caracter (simbolo) |-] Bug Sweda, não carrega ou acha Aliquotas com T1 ao invez de T01 (por Daniel Simoes de Almeida) Data: 11/03/2008 -- ACBrECFUrano -- [*] Adequacao da Rotina FechaCupom para imprimir a mensagem promocional. (Quatro linhas ao final do cupom contendo 48 caracteres cada linha.) (por Gelson Oliveira) Data: 29/02/2008 -- ACBrECFUrano -- [+] Implementado CarregaAliquotas. (por Valmor Flores) Data: 11/12/2007 -- ACBrECFDataRegis -- [*] Implementação de varios Metodos e Comparação com Implementacao do Anderson R B (porJoão Victor Maia Fernandes) Data: 08/12/2007 -- ACBrECFDataRegis -- [-] Alteração do Metodo Carrega aliquota, pois a Dataregis apresenta defeito (por Anderson Rogerio Bejatto) Data: 04/12/2007 -- ACBrECFNCR -- [+] Inclusão do modelo ACBrNCR. (por André Bohn) Data: 28/11/2007 -- ACBrECFDataRegis -- [*] Implementacao de varios Metodos (por Anderson Rogerio Bejatto (por Daniel Simões de Almeida) Data: 05/09/2007 [-] Corrigido Retorno do COO em Impressoras MFD (ST100) Data: 30/08/07 -- ACBrBAL -- [*] Inclusão do modelo ACBrBALMuller [*] Inclusão do modelo ACBrBALRinnert (por Marcio Jose da Silva) Data: 20/08/2007 -- ACBrECFMecaf/ACBrECFSChalter -- [*] Adicionada as propriedades: CNPJ, IE, DataMovimento, NumCOOInicial, NumCRZ, VendaBruta, GrandeTotal, TotalDescontos, TotalAcrescimos, TotalCancelamentos, TotalIsencao, TotalNaoTributado, TotalSubstituicaoTributaria. (por Daniel Simoes de Almeida) [+] Adicionado os métodos: LerTotaisAliquota, LerTotaisFormaPagamento, LerTotaisComprovanteNaoFiscal (por Daniel Simoes de Almeida) -- ACBrECFSChalter -- [-] Corrigido Bug em: LeituraMemoriaFiscalSerial (TimeOut e VerificaFimLeitura) (por Daniel Simoes de Almeida) Data: 17/08/2007 -- ACBrECFSweda -- [-] Adicionado os métodos: NaoFiscalCompleto, AbreNaoFiscal, RegistraItemNaoFiscal, LerTotaisFormaPagamento, LerTotaisComprovanteNaoFiscal. (por Daniel Simões de Almeida) Data: 12/07/2007 -- ACBrGAV -- [-] Corrigido Problemas de perda do comando de abertura quando modelo = gavImpressoraComum e usado ACBrMonitorConsole (por André Ferreira de Moraes) Data: 05/07/2007 -- ACBrECFSweda -- [-] Corrigida a Leitura de Memoria Fiscal por Serial (não responde) (Daniel Simões de Almeida) [-] Corrigido a carga de Formas de Pagamento na MFD (le todas as 20) (por WPSouto) Versão 0.8.6b 15/06/07 -- ACBrETQ -- [+] - Novo Componente, para facilitar a Impressão de Etiquetas em Impressoras termicas, compatíveis com a Linguagem PPLA (por: Andrews R Bejatto/ Anderson R Bejatto) -- ACBr_BCB6.bpk -- [*] Criado novo package para compatibilizar o projeto com o C++ Builder 6 - Compatibilidade feita por: Thiago Delgado Pinto [*] Vários fontes do projeto foram revisados para permitir a compilação condicional no C++ Builder, trocando a diretiva {$IFDEF Delphi6_UP} por {$IFDEF COMPILER6_UP}. -- Lazarus -- [+] Todos os Demos do projeto agora também estão disponíveis no Lazarus (convertido por: Wagner Leandro Bueno Angelo) -- Demos -- [*] Diretorio dos Demos melhor organizado, com a criação de uma sub-pasta para cada Demo. [+] Projeto Demo "ECFTeste" (ACBrECF) remodelado para exbir o uso de "MemoBobina" e "OnBobinaAdicionaLinhas. - Versões VCL, CLX e Lazarus foram modificadas -- ACBrECF -- [+] Adicionada a propriedade "ArqLOG : String" - Se algum nome de aquivo for especificado nessa propriedade, todos os comandos Enviados e Respostas do ECF serão gravadas neste arquivo TXT - Atenção !! - Ou uso de LOG pode comprometer a performace do programa. (use apenas para debugar) - Dados sigilosos, como número de cartão de crédito impresso no TEF, podem ficar registrados no LOG [+] Adicionada a propriedade "MemoBobina : TMemo" - Se associado algum componente "Memo" a essa propriedade o ACBrECF "desenhará" uma copia da Saida do Cupom no componente Memo. [+] Adicionado evento "OnBobinaAdicionaLinhas" - Evento é executado sempre que uma nova linha é adicionada no "MemoBobina" - Util para desenho de Cupons em formato HTML - Para visualizar o Cupom em HTML utilize controles visuais como: TWebBrowser (VCL) TTextViewer (CLX) ou TIpHTMLPanel (Lazarus) - Veja exemplos no Projeto "ECFTeste" (em Demos) [+] Adicionada a propriedade "MemoParams : TStrings" - Usada para configurar o LayOut de desenho do cupom. - Permite sintaxe em HTML. - Utillizada apenas quando usando "MemoBobina" ou "OnBobinaAdicionaLinhas" [+] Adicionado parametro "TipoDescontoAcrescimo : String = '%'" no método "VendeItem". - Se esse parametro for omitido, assume '%' (desconto em Percentagem), - Qualquer outro caracter diferente de '%', assume que o Desconto informado no parametro "DescontoPorc" é em Valor [*] "ArredondaPorQtd" não será executado caso o ValorTotal com a Qtd acrescida fique superior ao Valor Arredondado pretendido. Isso pode ocorrer se o Preço Unitário é grande... nesses casos não há como ajustar... :-( -- ACBrECFBematech -- [-] Corrigido Bug na abertura de Cupom Fiscal com CNPJ na MP20 -- ACBrECFDaruma -- [-] Corrigido Venda de Item com Qtd de 3 decimais (por Maicon da Silva) [-] Corrigido Carregamento de Formas de Pagamento na MFD (retornava posições não cadastradas) [*] Melhorada Verificação de Fim da Impressão na MFD [*] Corrigida Leitura da palavra de Status na MFD (GetEstado) [-] Corrigida detecção do estado estRequerX na MFD [*] Corrigido Retorno no Numero de Serie na MFD [*] Impressao de Relatório Gerencial e Vinculado na MFD, otimizada para enviar várias linhas simultaneamente (muito mais rápido) [-] Corrigido bug na leitura do CRO -- ACBrECFFiscNET -- [-] Corrigido espacejamento de "PulaLinhas" ( considerando 1 linha = 30 dots ) [-] Corrigido BUG em Método "CorrigeEstadoErro", que sempre causava o Reinicio do ECF [*] Método "AbreRelatorioGerencial" modificado para cadastrar o Relatório Gerencial indice = 0 caso ele ainda não exista [-] Método "VendeItem" gerava exceção quando Desconto era informado [-] Método "LinhaRelatorioGerencial" nao imprimir linhas vazias e em textos maiores que 492 caracteres poderia haver quebra do lay-out de impressao -- ACBrECFSweda -- [-] Corrigido bug nos Descontos de "VendeItem" e "SubtotalizaCupom" em alguns ECFs NAO MFD ( matriciais linha 7000 ) (Bug Report por: Ederson Selvati) [-] Corrigido bug no EfetuaPagamento dos modelos 'C' e 'B' em FPG com flag de Vinculado ativado [*] Aumentado o TimeOut da Reduçao Z para (150 sec) [*] Ignorado Flag "SLIP" em modelo 'B' na verificaçao de erros de "EnviaComando" [-] Corrigida a abertura da Gaveta de Dinheiro nos ECFs MFD [*] Corrigido o TimeOut da Leitura da Memoria Fiscal no modelo 'B' [-] Corrigido bug em "FechaRelatorio" no modelo 'B' [*] Ativada a Impressao da palavra "SubTotal" na subtotalização do Cupom -- ACBrECFNaoFiscal -- [-] Corrigido Bug no Cancelamento de Item com Desconto (por Marcos Agostini) -- ACBrECFClass -- [-] Corrigido Bug em DoOnMsgRetentar, Resposta com sinal invertido (por J. Luís Schiavo) -- ACBrCMC7 -- [*] Calculo de CMC7 compatiblizado com o Banrisul, por Diogo Augusto Pereira -- ACBrBALFilizola -- [*] Modelo balFilizola compatibilizado com a linha "CS"... (por: Juliano Pereira dos Santos) -- ACBrCHQ -- [-] Corrigido Problemas de FreeNotification com a propriedade "ECF" em Tempo de Design -- ACBrGAV -- [-] Corrigido Problemas de FreeNotification com a propriedade "ECF" em Tempo de Design -- ACBrExtenso -- [+] Adicionada a propriedade Formato: TACBrExtensoFormato (default extPadrao) extPadrao -> 15,10 - Quinze Reais e Dez Centavos extDolar -> 15,10 - Dolares Americanos Quinze com 010/100 -- ACBrCalculadora -- [+] Adicionada a propriedade "CorForm" : TColor (por: Nei José Van Lare Junior) Data: 15/05/2007 -- ACBrDIS -- [+] Adicionada a propriedade "RemoveAcentos : Boolean" default = True. (por Daniel Simoes de Almeida) Data: 11/05/2007 -- ACBrECFNaoFiscal -- [-] Corrigido Bug no Cancelamento de Item (arredondamento). (por Fabio Farias) Data: 20/04/2007 -- ACBrECFSChalter -- [-] Corrigido BUG na leitura do NumCupom após a abertura do Cupom Fiscal [-] Corrigido BUG na detecção de Estado estPagamento, quando ocorre SubtotalizaCupom sem desconto ou acrescimo [-] Corrigido BUG no VerificaFimImpressao (não estava lendo toda a resposta) (por Daniel Simoes de Almeida) Data: 04/04/2007 -- ACBrECFMecaf -- [+] Implementados métodos de Cupom Não Fiscal (por Daniel Simoes de Almeida) Data: 01/04/2007 -- ACBrECFNaoFiscal -- [+] Implementados métodos de Cupom Não Fiscal. (por Daniel Simoes de Almeida) -- ACBrECFSChalter -- [+] Implementados métodos de Cupom Não Fiscal. (por Daniel Simoes de Almeida) Data: 25/03/2007 -- ACBrECFSChalter -- [+] Método: GetNumUltimoItem (por Alan Lucas) -- ACBrECFSweda -- [+] Novas propriedades: CNPJ, TotalAcrescimos, NumUltimoItem. (por Alan Lucas) [-] Corrigido NumCOOInicial (por José Nilton Pace) Data: 22/03/2007 --ACBrECFSweda -- [-] Gato para resolver o erro -P111+0065 no modelo 7000 1.1 logo após um vinculado [+] Novas propriedades: DataMovimento, GrandeTotal, NumCRZ, VendaBruta, TotalCancelamentos, TotalDescontos, TotalSubstituicaoTributaria, TotalNaoTributado, TotalIsencao, NumCOOInicial (por Ederson Selvati) Data: 21/03/2007 --ACBrECFSweda -- [*] Método SubtotalizaCupom adaptado para maior compatibilidade com as várias versões de ECF Sweda. (por Alan Lucas) Data: 15/03/2007 -- ACBRDIS -- [+] Adicionada a propriedade "PausaVai_e_Volta" em ACBrDISLinha. (default 3) Permite deifinir uma pausa antes de inverter a direção. (por Daniel Simoes de Almeida) Data: 06/03/2007 -- ACBrECFNaoFiscal -- [-] Corrigido Bug na Abertura de Cupom Fiscal Vinculado, quando Cupom anterior continha mais de uma forma de Pagamento (por Fabio Farias) Data: 27/02/2007 -- ACBrECFDataRegis -- [*] Ajuste para rodar na versão 02.06 (melhoria da 02.05) (por Fabio Farias) Data: 21/02/2007 -- ACBrECFNaoFiscal -- [-] Corrigido Bug no Cancelamento de Item com Desconto. (por Marcos Agostini) Data: 06/02/2007 -- ACBrECFNaoFiscal -- [+] Adicionada a função "NumeroColunas", para facilitar a impressao de linhas com expandido (por Thiago Delgado Pinto) Versão 0.8.5b 02/12/06 -- ACBr -- [+] Modo CONSOLE. Todos os componentes e Units do ACBr foram compatibilizadas para permitir a construção de aplicações em MODO CONSOLE - IMPORTANTE: Quando alternar na compilação entre aplicações no Modo CONSOLE e DESKTOP, SEMPRE execute: Project -> Build All -- ACBrECF -- [+] Adicionado propriedade: "GavetaSinalInvertido" : Boolean default False - Útil quando a leitura do Retorno da propriedade "GavetaAberta" está invertido... Isso ocorre em alguns casos, devido a diferença da pinagem dos diversos modelos de Gavetas de dinheiro [+] Adicionado novo evento "OnMsgRetentar". Que será disparado quando a propriedade "Retentar" estiver ativa (True) e sempre que alguma msg do tipo "Deseja tentar Novamente ?" precise ser exibida. - Se o evento estiver programado o ACBrECF não exibe nenhuma Mensagem ou Dialogo. Se o evento NAO estiver programado, é exibida a Mensagem padrão [+] Adicionada Propriedade "IntervaloAposComando" : Integer. (default 100) - Essa propriedade permite definir um pequeno intervalo em Milesegundos após a execução de cada comando. Um valor menor pode tornar a comunicação com o ECF mais rápida porém pode causar problemas de comuni- cação em alguns modelos/versões de ECF... Use valores entre 1 e 100 [*] Método: "ImpactoAgulhas" modificado. Removido o MessageDLG, agora o método recebe um parâmetro: ( NivelForca : Integer = 2), onde: 1-Fraco, 2-Normal , 3-Forte [*] Método "MudaHorarioVerao", modificado. Removido MessageDLG. Se o método for chamado sem parâmetros ele tentará inverter o estado de HorarioVerao [-] Corrigido Bug no método "FormMsgDoProcedure" (usado p/ bloqueio do teclado) A pilha de retorno das Exceções não era executada corretamente - Em algumas situações, ex: durante a impressão das Linhas do Relatório Gerencial, caso houvesse alguma exceção durante a impressão o bloco "Except" programado pelo usuário não era executado. [-] Corrigido Bug em ArredondaPorQtd. Em algumas combinações de valores e Qtd o ArredondaPorQtd falhava ao calcular o acréscimo na Qtd. [*] Método VendeItem modificado para permitir Alíquotas como Índice mesmo nos ECFs onde a Alíquota já possui a Letra "T" no inicio. Exemplo. Na Daruma, a Alíquota "TA" pode ser informada como: "TTA" ou "TA" para o método VendeItem [*] Propriedade "NumSerie" não mais usa valor em cache. Sempre que houver uma leitura a essa propriedade, haverá comunicação com o ECF. ( Exigência do Fisco de Minas Gerais ) [+] Adicionada as propriedades ReadOnly "MFD" e "Termica" que são ativadas de acordo com o modelo de ECF Utilizado. [+] Adicionada as propriedades "DecimaisPreco" e "DecimaisQtd" -- ACBrECFFiscNET -- [+] Novo modelo de ECF implementado FiscNET (ZPM), compatível com vários ECFs MFDs que usam esse chip-set, como: Elgin MFD, Urano MFD, DataRegis MFD, Olivetti MFD, ZPM, e outros -- ACBrECFDaruma -- [+] Finalmente adicionada a compatibilidade com o ECF FS600 MFD ( com a ajuda de Juliano Pereira dos Santos ) [-] Corrigido alguns bugs na compatibilidade com o modelo FS 2000 em: GetEstado, VerificaFimImpressao, FechaRelatorio, GetGavetaAberta, GetPoucoPapel, GetHorarioVerao e GetArredonda [-] Corrigido bug na Impressão de Linhas do Vinculado e Gerencial. Bug introduzido na versão 0.8.4b. (tentativa de otimizar a impressão nas MFDs) [+] Adicionada a Impressao de Cheques na FS2000. [-] Corrigido o método CarregaFormasPagamento na FS2000 [-] Corrigido o retorno do conteúdo de "ComprovantesNaoFiscais" na FS345 [+] Adicionada propriedade interna "ComprovantesNaoFiscaisVinculado" (somente na Classe Daruma) -- ACBrECFBematech -- [-] Aumentado o TimeOut dos comandos "LeituraX" e "AbreRelatorioGerencial" [-] Corrigido Bug no ECF MP40-FI II, esse modelo tem apenas 40 colunas e não 48 como nos demais modelos... Agora o modelo é detectado e a propriedade "Colunas" ajustada corretamente. -- ACBrECFYanco -- [*] Diversos métodos implementados... Agora a classe da Yanco está operacional ( por: Carlos do Nascimento Filho ) -- ACBrECFMecaf -- [*] Diversos métodos que usam campo de "Texto livre" foram modificados para filtrar os caracteres acentuados, pois a Mecaf não executa o comando se houver caracteres acentuados -- ACBrDIS -- [*] Novo modelo de Display de Teclado implementado "disKeytecTeclado" compatível com os displays de teclado das Marcas "KeyTec" e "Fourth" ( por: Fabio Farias ) -- ACBrLCB -- [*] Modificado mecanismo de leitura, para evitar a leitura de códigos incompletos. - Se a propriedade SUFIXO for VAZIA. TUDO que estiver disponível no buffer serial no momento do evento, será lido e retornado - Se SUFIXO NAO for VAZIO. Apenas lê os dados da serial SE e ATÉ encontrar o Sufixo. - Se houver dados alem do Sufixo, deixa o restante no buffer serial para leitura no próximo evento (Mais de 1 código no buffer) - Se o SUFIXO NAO for encontrado no Buffer da Serial NADA será lido. Pois nesse caso, provavelmente o leitor ainda está enviando o código e o Buffer da Serial está INCOMPLETO. O código completo será lido no próximo evento... [*] Demo do ACBrLCB, LCBTeste.dpr e QLCBTeste.dpr modificados para permitir configurar as propriedades da Porta Serial (por: Waldir Paim) -- ACBrCMC7 -- [-] Corrigido Bug no calculo do digito Verificador 2 [+] Adicionado Programa Demo para o componente ACBrCMC7 (CMC7Teste.dpr) ( por: André Ferreira de Moraes ) -- ACBrCHQUrano -- [*] Novo modelo de impressora de Cheques compatibilizado com o ACBrCHQ. A Urano UR1000. (Usado o Protocolo "Genérico 2" na impressão de cheques) -- ACBrUtil -- [+] Adicionada as funções: "BinToInt" e "IntToBin" (http://delphi.about.com) - Converte Strings de Binários para Inteiro e vice-versa. [*] Função "TestBit" modificada para permitir Inteiros de 16 bits -- ACBrExtenso -- [+] Adicionada a propriedade "ZeroAEsquerda" : Boolean (default true) - Quando True , o valor: 0,21 = Zero Reais e Vinte e Um Centavos - Quando False, o valor: 0,21 = Vinte e Um Centavos -- ACBrFala -- [-] Corrigido Bug na fala de Valores com apenas centavos (removido Zero Reais) -- SynaSer -- [*] Fontes da Classe SynaSer atualizados para a versão: 007.000.001 Data: 07/11/2006 -- ACBrECFSweda -- [-] Corrigido problemas na Detecção do estado após ocorrencia de Erro no ECF [-] Corrigido problemas no Calculo do Valor Total em VendeItem (TruncFix) [-] Corrigido problema na VendeItem quando executado várias vezes rapidamente na sequencia. (por Daniel Simoes de Almeida) Data: 03/10/2006 -- ACBrECFSweda -- [-] Comando ImprimeCheque adaptado para funcionar na Serie detectada como (B) (por Daniel Simoes de Almeida) Data: 23/08/2006 -- ACBrLCB -- [*] Modificado para permitir a String "TECLADO" na Porta. Isso permite ativar o componente, mesmo sem a presença de um Leitor Serial. Útil apenas para quem controla a Fila do ACBrLCB manualmente. (por Daniel Simoes de Almeida) Data: 22/08/2006 -- ACBrECFDataRegis -- [-] Corrigido tempo de espera em EnviaComando quando impressora for xx.03 (por Fabio Farias) Data: 17/08/2006 -- ACBrECFDataRegis -- [-] Corrigido bug em arquivo auxiliar de itens quando ocorrer erro no EfetuaPagamento (por Anderson Rogerio Bejatto) Data: 18/07/2006 -- ACBrECFDataRegis -- [-] Corrigido bug na procedure EnviaMensagem (por Daniel Simoes de Almeida e Anderson Rogerio Bejatto) Data: 31/05/2006 -- ACBrECFDataRegis -- [*] Se não achar a Uniade de Medida em VendeItem, tenta com "UN" (por Fabio Farias) Versão 0.8.4b 25/05/06 -- ACBr_LCL.lpk -- [*] Package do Lazarus corrigido para instalar corretamente... Testado no Lazarus 0.9.12 e FreePascal 2.0.2 (versões Windows e Linux) [+] Nova pasta criada para os Demos na versão Lazarus. - Demo "ECFTeste.dpr" convertido para Lazarus. -- ACBrFala -- [+] Novo componente ACBrFala. Processa todas as palavras de uma String, procurando por arquivos de Som correspondente a cada palavra. - Permite informar Valores (Double) que são traduzidos para Extenso. - Os arquivos de som podem estar em um Recurso (.RES / .LRS) ou em um diretório. Veja a pasta \ACBr\source\Pascal\ACBrFalaWaves que contém exemplos de sons e arquivos de recurso para falar valores por Extenso (componente inicial, "FalaValor" escrito por Vinicius de Oliveira) -- ACBrCMC7 -- [+] Novo componente ACBrCMC7, que permite processar a Banda Magnética dos Cheques, Validando e convertendo de CMC7 para Banco, Agencia, Conta e vice-versa... (em desenvolvimento) (por André Ferreira de Moraes) -- ACBrECF -- [-] Método "VerificaFimImpressao" poderia disparar exceção com ECF off-line (Bug reportado por: Adriano Alves Dornelas) [*] Diminuído o tempo de várias "pausas" (Sleeps) entre as rotinas de envio e recepção de dados, a fim de agilizar a comunicação... (experimental) [*] Adicionada sobrecarga ao método MudaHorarioVerao. Procedure MudaHorarioVerao( EHorarioVerao : Boolean ) ; - Nesse novo método não será aberta nenhuma janela ShowModal [*] Métodos "CarregaFormasPagamento" e "CarregaComprovantesNaoFiscais" sempre retornavam as Descrições em maiúsculas... corrigido. [*] Métodos "ProgramaFormaPagamento" e "ProgramaComprovanteNaoFiscais" sempre cadastravam as Descrições em maiúsculas... corrigido. [*] Métodos "LinhaRelatorioGerencial" e "LinhaCupomVinculado" agora permitem informar várias linhas separadas por #10 ou #13+#10 (Útil para agilizar a impressão desses documentos em alguns ECFs Térmicos) [+] Adicionado método: PulaLinhas( NumLinhas : Integer = 0 ) ; -- ACBrECFClass -- [*] Métodos "ListaRelatorioGerencial" e "ListaCupomVinculado" abstraidos pela classe TACBrECFClass... eliminando várias linhas de código nas classes filhas -- ACBrECFQuattro -- [+] Novo modelo de ECF implementado: "Quattro" graças ao empréstimo de um modelo (Easy IIF) para testes, concedido pela Quattro Eletrônica Ltda. (por Daniel Simões) -- ACBrECFICash -- [+] Iniciado o desenvolvimento do modelo ECF IChash (por Rodrigo Frühwirth) -- ACBrECFBematech -- [*] Melhorado suporte a VendaItem em MFD, usando o novo comando "63" (antes não imprimia a Unidade) [*] Método AchaFPGDescricao não tanta programar a Forma de Pagamento dinamicamente caso ela não seja encontrada quando o modelo de ECF for MFD (MP25/MPTH), pois nesses modelos as Formas de pagamento não são zeradas após a Redução Z [*] Método ProgramaFormaPagamento não mais modifica a Descrição da Forma de Pagamento para 1a Maiúscula e o restante em Minúsculas, e sem espaços... Essas recomendações eram do suporte da Bematech mas foi removida a pedido de vários usuários. [+] Adicionada a propriedade Publica "IsTH", que retorna Verdadeiro se o ECF for Térmico (impressão mais rápida) [*] Se o ECF for Térmico imprime todas as Linhas dos métodos "CupomVinculado" e "RelatorioGerencial" em apenas um comando, (muito mais rápido) -- ACBrECFDataregis -- [*] Corrigido Bug na Venda de Item introduzido com a adição do Item Vendido na versão 0.8.3b (Imprime o Item Vendido porém sem espaço entre o código) - Bug Reportado por Fabio Farias [*] Método Cancela cupom detecta o estado do ECF para permitir cancelamento com o Cupom aberto (por Anderson Rogerio Bejatto) [*] Modificado mecanismo de Gravação e Leitura de memória auxiliar (INI) para ficar mais rápida a rotina de venda (por Anderson Rogerio Bejatto) [-] Corrigido Bug na leitura de modelos de Cheques (por Airton Stodulski) [-] Não reconhecia corretamente todas as versões de .03 e .05 (por Airton Stodulski) [*] Inserido suporte a Venda de Item com 3 casas decimais [*] Método VendeItem usará o Arredondamento sempre que necessário [-] Corrigido bug em pulos de Linha em "ListaRelatorioGerencial" e "ListaCupomVinculado" [-] "SubTotal", não considerava Desconto / Acréscimo pendente informado em "SubtotalizaCupom" [*] Acerto das cordenadas para Impressão de Cheques (por Anderson Rogerio Bejatto) -- ACBrECFSweda -- [-] Corrigido BUG em VendeItem quando havia desconto (por Ederson Selvati) [*] Melhorado o Suporte a linha ST (MFD), graças ao empréstimo de um modelo ST100, por "Mauro Sano" da Sweda [*] Descrição extra na linha ST pode atingir até 209 caracteres e não apenas 40... corrigido. [-] Corrigido bugs na detecção da Versão e Modelo do ECF [-] Corrigido Bug de TimeOut durante a Redução Z e Abertura de Cupom Fiscal Vinculado em ECFs Matriciais (9000, 7000) [-] Corrigido Bug em SubTotalizaCupom na linha 9000. Se houvesse Desconto o comando não era processado. [-] ProgramaFormaPagamento e ProgramaComprovanteNaoFiscal ajustados para a linha ST (MFD) [-] Corrigido Bug no tratamento de Pouco Papel e Fim de Papel, caso o Item vendido não seja impresso, uma exceção será gerada. -- ACBrECFDaruma -- [+] Adicionada a compatibilidade com o modelo ECF FS2000 (por: Carlos do Nascimento Filho) [-] Corrigido Bug em CarregaFormasPagamento e CarregaComprovantesNaoFiscais. posições livres (não programadas) eram lidas como válidas [-] Corrigido Bugs em ProgramaFormaPagamento. - Detecção automática do próximo índice livre falhava - Programação de FPG com Vinculado não causava a programação de um Comprovante Não Fiscal (equalização) [-] ProgramaComprovanteNaoFiscal, modificada para não permitir cadastrar já existente [*] Método interno "VerificaFimImpressao" otimizado para usar os flags da "Palavra de Status" , pois o método antigo falhava algumas vezes [-] Corrigido Bugs de TimeOut em vários comandos como "VendeItem", "RelatorioGerencial", etc [-] Corrigido Bug em "TotalPago", que retornava o Valor de "SubTotal" mesmo antes do cupom ser SubTotalizado (bug reportado por Fabio Farias) -- ACBrECFSchalter -- [-] Corrigido Bug em Método "ZeraVinculados", que não cancelava o Vinculo "0" (por Alan Lucas) -- ACBrECFNaoFiscal -- [-] Usando Arquivos ou portas paralelas, em algumas ocasiões ocorria erro de I/O ao Ativar / Desativar o componente (bug reportado por Fabio Farias) -- ACBrUtil -- [*] Funções StringToAsc e AscToSTring movidas de ACBrECFNaoFiscal.pas para ACBrUtil.pas [+] Adicionada a Procedure: CopyFilesToDir(FileMask: string; ToDirName : String; const ForceDirectory : Boolean = False) ; Copia todos os arquivos especificados na mascara para o diretório Gera Exceção se não conseguir copiar algum dos arquivos. [+] Adicionada função FunctionDetect (LibName, FuncName: String; var LibPointer: Pointer): boolean; - Útil para carregar funções de DLL / SO dinamicamente [*] Funções InPort e OutPort agora suportam a DLL inpout32.dll, que permite acesso direto a portas no XP /NT / 98 http://www.logix4u.net/inpout32.htm [+] Adicionada as funções: StringToDateTime( DateTimeString : String ) : TDateTime ; StringToDateTimeDef( DateTimeString : String ; DefaultValue : TDateTime ) : TDateTime ; - Para evitar problemas com as diferenças entre o Separador de Data (/) entre os diversos S.O. [+] Adicionada a função: PosLast(const SubStr, S: string): Integer; Retorna a última posição de "SubStr" dentro da String "S", ou 0 se não encontrar a "SubStr" dentro de "S" -- ACBrValidador -- [-] Inscrição Estadual de "AL" aparentemente também aceita o numero 6 no 3 dígito, apesar do site do sintegra informar o contrário... Corrigido -- ACBr.INC -- [*] Adicionada compatibilidade com o Delphi 2006 (por Luciano Donato) -- ACBrECFClass.pas -- [*] Várias modificações nos métodos LeResposta ocorreram para compatibilizar o ACBr com o Lazarus. O mecanismo de Threads foi substituido por algo mais simples, usando um Simples TTimer... - O funcionamento de BloqueiaTeclado continua usando a "técnica" de uma janela ShowModal -- ACBrBase.pas -- [*] Permite modificar alguns parâmetros da porta serial mesmo com ela aberta. [-] Modificações em run-time nos parâmetros da serial não eram efetivadas na SynaSer -- SynaSer -- [*] Fontes da Classe SynaSer atualizados para a versão: 006.003.007 Data: 09/05/2006 -- ACBrECFSweda -- [-] GavetaAberta: modificado para ficar de acordo com o Manual. Se o sinal estiver invertido use a nova propriedade ACBrECF.GavetaSinalInvertido [-] Inserido pequeno Interavalo na leitura do Estado se o ECF for swdC (por Daniel Simoes de Almeida) [-] Corrigido Bug na detecção do Modelo / Versão quando Versao = 1.1. (por Daniel Simoes de Almeida e Ederson Selvati) Data: 13/03/2006 -- ACBrECFSweda -- [-] Removida a propriedade UsaDTR, Revisto mecanismo de comunicação usando o DTR. Se tiver problemas com o DTR use ACBrECF1.Device.Hardflow := True ; (por Daniel Simoes de Almeida) Data: 16/12/2005 -- ACBrECFSweda -- [-] Adicionda a propriedade UsaDTR : Boolean (False)... Se ela for Verdadeiro o DTR é desligado para ler a resposta do ECF, (isso pode ser necessário em alguns modelos de ECF. No metodo Ativar o componente tenta detctar o estado necessário para o UsaDTR) (por Daniel Simoes de Almeida) Data: 08/12/2005 -- ACBrECFDataRegis -- [*] VerificaFimImpressao poderia disparar excessão com ECF off-line (por Daniel Simoes de Almeida) [*] Removido tempo de alguns Sleeps a fim de agilizar a comunicaçao com o ECF (experimental) (por Anderson Rogerio Bejatto) [*] Método Cancela cupom detecta o estado do ECF para permitir cancelamento com o Cupom aberto... (por Anderson Rogerio Bejatto) [*] Modificado mecanismo de Gravação e Leitura de memoria auxiliar (INI) para ficar mais rápida a rotina de venda (por Anderson Rogerio Bejatto) Data: 29/11/2005 -- ACBrECFNaoFiscal -- [-] Corrigido bug no retorno da propriedade NomeArqINI. ( por Daniel Simoes de Almeida) Data: 22/11/2005 -- ACBRECFDataRegis -- [*] Adicionada a Impressão do Numero do Item antes do Cod.Produto no formato 001.. (DataRegis não imprime n.Item, o que dificulta no cancelamento) (por Daniel Simões de Almeida) Versão 0.8.3b 20/10/05 -- ACBrTER -- [+] Criado novo componente para controle de MicroTerminais. Com o ACBrTER fica fácil interagir com Microterminais, enviando linhas para o display e recebendo as teclas pressionadas pelos usuários em um evento. - Implementado inicialmente para o modelo: Wilbor ( Componente criado por: Gabriel Rodrigo Frones ) -- ACBrTroco -- [+] Criado um novo componente para calculo detalhado de Troco, informando as Cédulas e moedas necessárias. Permite editar a lista de Cédulas/Moedas ( Componente e Programa Demo enviado por: Anderson Rogério Bejatto ) -- ACBrBAL -- [+] Criado novo componente para interação com Balanças Eletrônicas. Através do método "LePeso : Double" é possível obter o peso aferido pela Balança... Também há a possibilidade de monitorar o envio automático de peso em balanças que possuem essa característica, ligando a propriedade boleana "MonitorarBalanca". A cada peso lido o evento "OnLePeso" será disparado. - Inicialmente implementamos os modelos Filizola e Toledo PrixIII ( Componente e Programa Demo elaborados por Fábio Farias, Daniel Simões de Almeida e Walmir Silva) -- ACBr_D5.dpk -- [+] Criado novo package para compatibilizar o projeto com o Delphi 5 [+] Adicionada nova Unit ACBrD5.pas contendo todas as Functions e Procedures que não existiam no Delphi 5, permitindo a compilação... - Essa Unit NAO é utilizada ou compilada nas versões do Delphi 6 acima. - Essa Unit NAO É LGPL pois contem códigos de propriedade da Borland [*] Quase todos os fontes do projeto foram revisados para permitir a compilação condicional no Delphi 5 usando {$IFDEF Delphi6_UP} -- ACBr_LCL.lpk -- [+] Criado novo package para compatibilizar o projeto com o Lazarus (FPC) http://www.lazarus.freepascal.org/ - Compatibilidade feita por: Douglas Fernando Scheibler [*] Vários fontes do projeto foram revisados para permitir a compilação condicional no Lazarus usando {$IFDEF FPC} -- ACBrECF -- [*] Método "VendeItem" modificado para permitir informar o Tipo da Alíquota - O parâmetro TIPO é opcional, a passagem de parâmetros antiga continua funcionando - O Tipo pode ser informado na mesma String, no final da alíquota, exemplos: 18T (18% ICMS) , 2,5S (2,5% ISS) - Recurso adicionado para evitar conflito de alíquotas com o mesmo valor porém de Tipos diferente: Exemplo: 01 12% ICMS, 02 12% ISS. Usando "12T", o ACBrECF usa a alíquota 12 do ICMS, "12S" a do ISS [*] Método "AchaICMSAliquota" modificado para receber o parâmetro Tipo. AchaICMSAliquota( ValAliquota, Tipo = ' ') Se o Tipo não for informado assume (vazio), e a busca por alíquota é feita sem se importar com o Tipo de alíquota [*] Melhorado suporte a todos os comandos que recebem uma Double. O componente irá ajustar as Decimais dos valores para o máximo permitido pelo ECF usando a função RoundTo() [-] Corrigido Bug Inserido versão 0.8.2b. método FechaCupom e outros métodos que recebiam um parâmetro Observação : String. O caracter de Pulo de Linha na String ( representado por #10 ou | (pipe)) não era processado. - Bug reportado por: Cláudio Borba [*] No Método ReduçãoZ, era obrigatória a passagem de um parâmetro TDateTimTDateTime, que agora, é opcional. - Para os ECFs em que esse parâmetro é obrigatório será usado "now" caso o parâmetro não seja informado. - Nos ECFs em que o parâmetro NAO é obrigatório o comando enviado ao ECF não conterá String com a DataHora caso o parâmetro não seja informado. [*] Método "SubtotalizaCupom" modificado para receber como 2o parâmetro a Mensagem de Rodapé do Cupom... (Permite a omissão dessa parâmetro) - Em alguns ECFs (como a DataRegis) é necessário informar a Mensagem antes dos pagamentos pois o ECF não possui um comando para Fechamento de Cupom O Fechamento é executado assim que o Total de pagamentos atinge o Total do Cupom - Nos ECFs que não usam a Mensagem de Rodapé nesse método ela será acumulada internamente e usada em FechaCupom, caso nenhuma mensagem seja informada em FechaCupom [+] Criado um novo mecanismo de espera ao término da Impressão. Alguns ECFs respondem ao comando muito antes do término da impressão, e isso poderia causar problemas aos comandos enviados na sequencia. - Adicionada a propriedade "AguardaImpressao", quando ela é ajustada para True, o método "LeReposta" irá efetuar chamadas a função "VerificaFimImpressao" até que ela retorne True - "VerificaFimImpressao" foi implementada em cada Classe de ECF em substi- tuição ao método "EnviaComandoEspera" [+] Adicionado métodos e propriedades para Processar as Lista Unidades de Medida, presente apenas em alguns modelos de ECF. (DataRegis) procedure CarregaUnidadesMedida Property UnidadesMedida : TACBrECFUnidadesMedid function AchaUMDDescricao( Descricao : String ) : TACBrECFUnidadeMedida function AchaUMDIndice( Indice : String ) : TACBrECFUnidadeMedida Procedure ProgramaUnidadeMedida( var Descricao: String) - O programa ECFTeste.dpr foi modificado para exemplificar o uso desses novos métodos -- ACBrECFNaoFiscal -- [-] Corrigido Bug na Abertura do dia através da LeituraX. ECF não ficava no estado estLivre mesmo após a LeituraX - Bug reportado por Fábio Farias [-] Leitura do comando de Abertura de gaveta do arquivo INI não era decodificada corretamente - Bug reportado por Fábio Farias [-] Troco no cupom não era subtraído da forma de Pagamento: 01-Dinheiro - Bug reportado por Fábio Farias [-] Corrigido Bug em Impressão de Relatório Gerencial... A primeira linha não era impressa... - Bug Reportado por: Anderson Rogério Bejatto [-] Corrigido consumo excessivo de CPU em Venda com Muitos Itens - Bug Reportado por: Anderson Rogério Bejatto [*] Relatório Gerencial modificado para imprimir apenas um cabeçalho, semelhante aos ECFs novos (não imprime mais uma Leitura X antes do Relat.) [+] Propriedade "Operador" será gravada no arquivo ACBrECFxxx.INI [*] Rodapé padrão modificado para incluir as Informações: Versão do ACBr e Operador [*] Modificado o Texto impresso após o término das Formas de pagamento de "Valor Recebido" para "S O M A"... - Essa linha será impressa apenas se tiver mais de 1 pagamento no Cupom -- ACBrECFSweda -- [-] Corrigido BUG na Rotina EnviaComando, que causava TimeOuts em vários métodos e propriedades. ( O Controle de Fluxo de Hardware estava errado) [*] Modelo "ecfSweda" Compatibilizado com a série ST (MFD). Testes realizados usando o emulador "Sweda SIM Connect" [*] Rotinas testadas e compatibilizadas com a série 9000. Testes realizados em um ECF IF-S 9000IIIE ver 1.0 [-] Corrigido Bug em "VendeItem", em alguns valores Qtd x Preço Unitário a função Trunc() do Delphi apresentava problemas, calculando errado o Total. [*] Modificado o sistema de detecção de Firmaware através da propriedade Publica "Versao : TACBrECFSwedaVersao" [*] Modificado o mecanismo de Espera do término da Impressão usando a nova propriedade "AguardaImpressao:=True" e a função "VerificaFimImpressao" [*] Removido o método EnviaComandoEspera [*] Adicionado suporte a Impressão de cheques -- ACBrECFBematech -- [*] Modificado o mecanismo de Espera do término da Impressão usando a nova propriedade "AguardaImpressao:=True" e a função "VerificaFimImpressao" [*] Removido o método EnviaComandoEspera [-] Corrigido BUG em CarregaFormasPagamento. Todas as formas carregadas eram convertidas para Maiúsculas (Bug reportado por: Ederson Selvati) -- ACBrECFDaruma -- [*] Modificado o mecanismo de Espera do término da Impressão usando a nova propriedade "AguardaImpressao:=True" e a função "VerificaFimImpressao" [*] Removido o método EnviaComandoEspera [-] Corrigido BUG na carga de Formas de Pagamento e CNF. A rotina anterior carregava todas as formas de pagamento... mesmo as que não haviam sido programadas (bug corrigido por Ederson Selvati) -- ACBrECFDataregis -- [*] Ajuste de todos os métodos para compatibilizar com a versão 02.05 (por: Anderson Rogério Bejatto) [*] Modificado o mecanismo de Espera do término da Impressão usando a nova propriedade "AguardaImpressao:=True" e a função "VerificaFimImpressao" [*] Removido o método EnviaComandoEspera [*] VendeItem, Adicionado o Numero do Item Vendido antes da impressão do código (DataRegis não imprime o No do Item, o que dificulta no Cancelamento de de Item) -- ACBrECFMecaf -- [*] Corrigido BUG em VendeItem... para a MECAF imprimir o Item em 2 linhas (e e não em 3 linhas) ela deve restringir a descrição em 20 caracteres (Bug Reportado por Rildecy de Queiroz Borba) [*] Compatibilizado com a versão 301 [*] Corrigido BUG. Quando a redução z ficava pendente de um dia para o outro o ECF ficava em estDesconhecido. (Gabriel Fernandes - Duel Informática) -- ACBrECFUrano -- [+] Iniciado o desenvolvimento do modelo Urano (por Aurimenes Apolonio Silva) - Métodos de Venda e Relatórios concluídos. -- ACBrCHQ -- [-] Arquivo BemaFi32.INI, não era lido e processado mesmo quando existente na mesma pasta do Executável. - Esse Bug também afeta o componente ACBrECF quando usando um modelo ecfBematech ( apenas no método ACBrECF.ImprimeCheque ) -- ACBrCHQSchalter (ImpreCheque) -- [*] Corrigido métodos ImprimeLinha e ImprimeVerso -- ACBrBase -- [*] Criado {$DEFINE ThreadEnviaLPT}, que quando desligado permite desativar a ThreadEnviaLPT. Padrão é desabilitar a Thread por motivos de performance - Use esse opção se você deseja ligar a Thread [*] Adicionada função "IIsTXTFilePort" que retorna Verdadeiro se o conteúdo da Porta termina com ".TXT" [*] Caso a porta seja um arquivo TXT (IsTXTFilePort) o componente mantém os dados no arquivo, acrescentando as linhas "impressas" no final -- ACBrUtil -- [+] Adicionada a Função TruncFix( X : Real) : Integer Essa função é usada para corrigir o bug de otimização da função Trunc() original do Delphi Versão 0.8.2b 05/07/05 -- ACBrECF -- [-] Corrigido BUG em ArredondaPorQtd. Em algumas ocasiões a Qtd era adicionada desnecessariamente. Ex: Qtd = 1, Preço = 1,99 o resultado impresso era: 1,001 x 1,99 = 1,99 - Bug causado por Erro na otimização da função Trunc do Delphi: ( http://www.activedelphi.com.br/modules.php?op=modload&name=News&file= article&thold=-1&mode=flat&order=0&sid=87 ) [*] Melhorado suporte a todos os comandos que recebem uma String livre para Observação, removendo os Acentos e ajustando as quebras de linha, a fim de não causar erros na hora da Impressão. -- ACBrECFDataRegis -- [+] Iniciado o desenvolvimento do modelo DataRegis (por Airton Stodulski) -- ACBrECFBematech -- [-] Corrigido BUG em FechaCupom. Linhas de Observação eram impressas com alinhamento errado. ( Bug reportado por: Erique Costa ) [-] Corrigido BUG em AbreCupom na MP25 / MFD. Mesmo que CPF/CNPJ não fosse informado era impressa a linha de CPF/CNPJ. ( Bug reportado por: Anderson Rogério Bejatto ) -- ACBrECFMecaf -- [*] Fontes adaptados para suporte da Versao FCP201 da MECAF (antiga) [-] Corrigido BUG em FechaCupom. Linhas de Observação eram impressas com alinhamento errado. (Bug reportado por Licerio José Rodrigues Neto) [-] Corrigido BUG em Estado. No início do dia Estado sempre constava como estBloqueda (Bug reportado por Licerio José Rodrigues Neto) -- ACBrECFDaruma -- [*] Inicio do desenvolvimento para suporte a Daruma MFD (não concluído por falta de documentação ) -- ACBrECFSweda -- [-] Corrigido alguns Bugs nos ECFs versão 0.3, em VendeItem e EfetuaPagamento (Bugs reportados por Licerio José Rodrigues Neto) -- ACBrECFSchalter -- [-] Corrigido Bug na VendeItem, que interpretava errado Produtos vendidos sem sem nenhuma casa decimal como 3 casas decimais. (Bug corrigido por Valmor Florez) -- ACBrECFNaoFiscal -- [-] Variáveis Subtotal ou TotalPago poderiam, conter valores com mais de 2 decimais, o que poderia causar problemas nas comparações dos valores. (Bug reportado por Licerio José Rodrigues Neto) -- ACBrValidador -- [+] Adicionada a propriedade Publica DigitoCalculado readonly, que assim como MsgErro, terá um valor definido apenas após chamar o método Validar -- ACBrCHQ -- [-] Corrigido BUG no envio da Data em Linux (data como dd-mm-aa) (Bug reportado por Matheus Nogueira) -- ACBrUtil -- [+] Adicionada as funçoefunções: function OnlyNumber(const Value: string): String; - Retorna uma String apenas com os char Numéricos contidos em function OnlyAlpha(const Value: string): String; - Retorna uma String apenas com os char Alpha contidos em function OnlyAlphaNum(const Value: string): String; - Retorna uma String apenas com os char Alpha-Numericos contidos em [*] Função Poem_Zeros(Texto : String; Tamanho : Integer) modificada para permitir Strings com numeros (Texto) maiores do que o máximo permitido pelo tipo Inteiro. Data: 01/06/2005 -- ACBrCHQ -- [*] Inclusão do modelo ACBrCHQSotomaq (por Daniel Simoes de Almeida) Data: 25/05/05 -- ACBrBAL -- [*] Adaptado para funcionar com vários modelos de Filizola (MF, BP) permitindo variação na posição do ponto flutante (por: DSA) Versão 0.8.1b 01/04/05 -- Estrutura de Diretórios -- [*] Alterada a estrutura de diretórios e pacotes para facilitar a distribuição -- ACBrMonitor -- [+] Lançada a primeira versão do programa ACBrMonitor. - Permitirá o acesso remoto dos componentes ACBr por TCP/IP ou TXT, neces- sario em aplicações rodando em ambientes de "Terminal Burro" como por exemplo WTS (Windows Terminal Server), ou LTS, SSH, Telnet - Permite que outras linguagens que consigam usar a comunicação por TCP/IP ou ler e criar arquivos TXT, interagir com os componentes ACBr -- ACBrECF -- [+] Novo modelo de ECF implementado: ecfSweda - Deve ser compativel com os seguintes modelos da Sweda: A - IF-7000III, B - IF-7000I, C - IF-7000II, D - IF-7000IE, E - IF-7000IIE, F - IFS-9000, G - IFS9000IIIE e todas as versões do modelo IF-7000I (0.03, 1.0, 1.5) - Testado apenas em uma Sweda IFS-7000I v1.5 Favor reportar bugs em demais modelos. [+] Novo roteiro de teste de ECF (Source\Pascal\Demo\RoteiroTestesECF.TXT). Ajude a testar o ACBr rodando o Roteiro de testes no seu equipamento. [+] Adicionado evento OnMsgPoucoPapel: TNotifyEvent; que é acionado sempre que a msg de pouco papel precisa ser exibida. Para manter a funcionalidade anterior, se nada for atribuído a esse evento, uma MessageDlg será exibida com a mensagem: "Pouco Papel" [+] Novas funções para localizar o ECF automaticamente: Function AcharECF( ProcuraModelo: Boolean = true; ProcuraPorta : Boolean = true; ATimeOut : Integer = 0): Boolean ; Function AcharPorta(ATimeOut: Integer = 0): Boolean; - Se a propriedade Porta = '' (vazia) ou 'procurar' o Componente irá tentar localizar o ECF definido em Modelo nas portas de COM1 a COM6 [+] Adicionada a propriedade ArredondaPorQtd: Boolean (Published). Com essa nova propriedade é possível Arredondar sempre, mesmo que o ECF não permita Arredondamento (os novos ECF's MFD não permitem arredondar). Nesse caso o arredondamento é feito, somando 0.001 na QTD do Item Vendido até o valor Truncado ser igual ao Valor Arredondado. [+] Adicionada a propriedade HorarioVerao: Boolean (readonly) que lê o Flag de Horario de Verão do ECF [+] Adicionada a propriedade Arredonda: Boolean (readonly) que lê o Flag de Arredondamento do ECF [+] Adicionada a propriedade NumLoja : String (4) (readonly) - Apenas Bematech retorna corretamente o NumLoja, em todos outros modelos será retornado '001' [+] Adicionada a propriedade NumCRO : String (4) (readonly) - Não funciona na Schalter (retorno padrão '001') [+] Adicionado Metodos para Impressão e Captura da Memória Fiscal. Procedure LeituraMemoriaFiscal( DataInicial, DataFinal : TDateTime ) ; Procedure LeituraMemoriaFiscal( ReducaoInicial, ReducaoFinal : Integer); Procedure LeituraMemoriaFiscalSerial( DataInicial, DataFinal : TDateTime; var Linhas : TStringList ) ; Procedure LeituraMemoriaFiscalSerial( ReducaoInicial,ReducaoFinal:Integer; var Linhas : TStringList ) ; - Os métodos usam a Sobrecarga. A LeituraMemoriaFiscalSerial retornará o conteúdo da leitura em um TStringList através do parâmetro "Linhas" [+] Adicionada Procedure MudaArredondamento(Arredondar: Boolean); - Alguns modelos de ECF não possuem ou não permitem ligar o Arredondamento - Funciona somente após Redução Z e antes da 1a venda. [*] Procedure VendeItem agora permite que o parâmetros AliquotaICMS seja especificado em Valor da Aliquota ou Indice da Aliquota. - Para especificar em Indice use o prefixo 'T' Exemplo: 'T03' = Aliquota na posiçao 03 - Se AliquotaICMS iniciar com 'I', 'F' ou 'N' usa os respectivos totali- zadores internos para Isençao, SubstutiçaoTributaria ou NaoIncidêndia. - Se for um Numero válido o componente irá usar o Indice da primeira aliquota equivalente ao Numero encontrada.. Exemplos: 18 , 2.26 , 12 [+] Atendendo a pedidos, foi adicionado o método de Programação de Alíquotas Procedure ProgramaAliquota( Aliquota : Double; Tipo : Char = 'T'; Posicao : String = '') ; - Funciona somente após Redução Z e antes da 1a venda e/ou Leitura X - Tipo pode ser: 'S' para Alíquota de Serviço (ISS) ou 'T' (default) para ICMS - Se a posição não for informada (vazio = default) o componente achará a próxima posição livre [*] Adicionada o campo "Tipo : Char" em TACBrECFAliquota - Se TACBrECFAliquota.Tipo = 'T' alíquota de ICMS, 'S' alíquota de ISS. [+] Adicionado o método de Programação de Formas de Pagamento (FPG) Procedure ProgramaFormaPagamento( var Descricao: String; PermiteVinculado : Boolean = true; Posicao : String = '') ; - Funciona somente após Redução Z e antes da 1a venda e/ou Leitura X - Se a posição não for informada (vazio = default) o componente achará a próxima posição livre - Na Daruma e Schalter, se PermiteVinculado for True, também será programado um comprovante não fiscal (CNF) com a mesma descrição. - Bematech e Mecaf: não usam o parâmetro PermiteVinculado. [+] Adicionado o método de Programação de Comprovantes não Fiscais (CNF) Procedure ProgramaComprovanteNaoFiscal( var Descricao: String; Tipo : String = ''; Posicao : String = '') ; - Funciona somente após Redução Z e antes da 1a venda e/ou Leitura X - Tipo pode varias de acordo com o Modelo do ECF. Se vazio, assume o Default de cada ECF - Bematech e Mecaf: não usam o parâmetro Tipo. - Daruma: 'V' Comprovante Vinculado, '+' Entrada de Recursos, '-' Saida de Recursos... - Se vazio assume: 'V'. Especifique apenas uma das opções. - Schalter: 'D' - Permite Desconto em Item. 'A' - Permite Acrescimo no Subtotal 'C' - Permite Cancelamento de Item 'P' - Obriga forma de Pagamento 'Vnn' - Obriga emissão de vinculado na Forma de Pagamento nn - Se vazio assume Default = "DAC". - Se usada a opção V todas as outras opções são ignoradas. Exemplos: V04 -> Torna a Emissão do Cupom Fiscal Vinculado. obrigatória para a Forma de Pagamento 04 - Se a Posição não for informada (vazio = default) o componente achará a próxima posição livre [-] Corrigido Bug em Impressão de Relatório Gerencial e Cupom NÃO fiscal Vinculado. Caso houvesse algum erro dentro desses relatórios não era gerada nenhuma exceção. -- ACBrECFBematech -- [+] Implementada correção para BUG detectado no comando TotalPago (35 22) das novas impressoras MP25FI e MFD versão 01.00.00. - Esse modelo irá retornar o Total Pago sempre igual ao Subtotal, o que pode ocasionar problemas em algumas aplicações. - A correçao é feita por meio de uma váriável Interna, totalizando os pagamentos efetuados no Cupom. Portanto, se o programa for re-iniciado durante a fase de Pagamento do Cupom o problema ainda ocorrerá. [-] Método FechaRelatorio, gerava exceção caso a Impressora não estivesse com Relatório Gerencial, ou CV aberto. [-] Falhava ao ler a Propriedade "NumSerie" em impressora não MFD. [-] CarregaAliquotas retornava valores errados se a Impressora tivesse mais de 8 alíquotas cadastradas. [-] Procedure CorrigeEstadoErro gerava exceção em MFD pois essa não possui o cmd #70 -- ACBrECFDaruma -- [+] Implementado método: ImpactoAgulhas, que permite mudar a força de Impacto. [-] Corrigido BUG em "FechaRelatorio", que não conseguia fechar corretamente um Cupom NAO Fiscal Vinculado, na Daruma FS345 - 1.20 (Bug reportado por Aurimenes Apolonio Silva) -- ACBrECFSchalter -- [-] Corrigido Bug na AbreCupom, que omitia o Endereço do Emissor, (Bug Reportado por: Valmor Florez - Evoluthiva) [*] Inserido novo comando que permite imprimir o CNPJ / CPF do Cliente, na AbreCupom -- ACBrECFMecaf -- [-] Propriedade "Estado" não era detectada corretamente em algumas situações, retornando "estRelatorio" na maioria das vezes. -- ECFTeste.dpr -- [*] Programa de teste do ACBrECF atualizado para testar os novos recursos do componente. (QECFTeste também foi atualizado) -- ACBrLCB -- [-] Corrigido bug em ACBrLCB. Quando o sufixo enviado pelo leitor era diferente do sufixo informado no componente, gerava erro de TimeOut e não lia o código. Agora o código é lido mesmo sem o sufixo ou com o sufixo errado. IMPORTANTE: Informar o sufixo correto para o componente é importante para ler corretamente um código de cada vez. O sufixo é quem separa os códigos lidos, sem o sufixo o componente pode ler 2 códigos simultaneamente. -- ACBrDIS -- [+] Adicionado suporte a Linux para o Display de Mensagens modelo: Gertec Teclado - A comunicação com a Porta AT não é tão rápida quando a Porta Serial, por isso, evite o uso excessivo de textos "animados" - A função TxKeyboard(), usada nesse modelo, funciona normalmente em Win9x, - XP /NT /2000: deve-se usar um device driver que permita acesso direto a porta AT (disponível em www.gertec.com.br) - Linux: é necessário ter privilégios de ROOT para acessar /dev/port (use: su ou chmod u+s SeuPrograma ) -- ACBrValidador -- [+] Adicionada rotina de verificação de CEPs (por Rennes Moreira Pimentel - InforSystem) [+] Adicionado verificação de CARTOES de Crédito, extraída do site: www.tcsystems.com.br - Testada com os cartões: (Dinners, Credicard, Visa, American Express) [+] Adicionada a propriedade: ExibeDigitoCorreto : Boolean ( default False ) - Se houver erro no Digito Verificador e essa propriedade for True, o Digito calculado (correto) será exibido na Mensagem de Erro. [-] Corrigido BUG na verificação de I.E. do Estado de GO para inscrições na faixa de '101031050' a '101199979' -- ACBrUtil -- [+] Adicionada a Function FilesExists(FileMask: string) : Boolean ; [+] Adicionada a Procedure DeleteFiles(FileMask: string) ; [+] Adicionada a Function CopyFileTo(AFromFileName, AToFileName : String; const AFailIfExists : Boolean = true) : Boolean; [+] Adicionada a Procedure: RunCommand(Command: String; Params: String = ''; Wait : Boolean = false; WindowState : Word = 0); -- ACBrCalculadora -- [-] Posição na tela da Calculadora não era mantida. -- ACBrDevice -- [*] Função EnviaString quanto em Porta é Paralela ou Arquivo usa Thread para detectar se os Dados estão sendo "gravados" com sucesso. Evitando que o programa "congele" quando a Porta/Arquivo não está pronta. [*] Implementada detecção de EmLinha quando Porta é Paralela ou Arquivo, usando mecanismo de Thread citado acima. [*] Porta Paralela ou arquivo é aberto e fechado em seguida quando há a neces- sidade de enviar dados. Antes a Porta/Arquivo permanecia aberta enquanto ACBrDevice estivesse Ativo, isso retardava a impressão da ultima linha. -- ACBr.inc -- [*] Definição VisualCLX agora funciona automaticamente (identificando se QTypes ou QForms foram carregadas) [*] Suporte para identificação do Kylix 1, 2 e 3 e seus recursos [*] Suporte para identificação do Delphi 8 e 9 e seus recursos [*] Suporte para identificação do Free Pascal (FPC) e do Lazarus Versão 0.07a 17/10/04 -- ACBrDIS -- [+] Novo componente para Display de Mensagens para Cliente. Possui Procedures para exibir textos "animados" no display, usando uma Thread própria para não atrapanhar o desempenho da Aplicação. VEJA o demo DISTeste.EXE - Modelo: disGertecSerial - testado ok. - Modelo: disGertecTeclado - Por enquanto, funciona apenas em Win9X. Irá gerar exceção em WinXP/2000/NT ou Linux. Isso se deve ao fato da rotina que envia os caractéres para a porta do Teclado ser escrita em ASSEMBLER e os SO mencionados acima não permitem acesso direto a porta do teclado. [+] Novo Demo para testar o ACBrDIS: DISTeste.dpr (VCL) e QDISTeste.dpr (CLX) -- ACBrLCB -- [+] Novo componente para Leitores de Código de Barra Seriais. - Ajuste os parametros seriais de acordo com o seu modelo. (padrão 9600,8,N,1). O sufixo (caracter adicionado pelo Leitor) também deve ser informado corretamente (geralmente igual a #13 ou #13,#10). - Através da propriedade UsarFila é possível ter um controle apurado de todos os códigos informados pelo Leitor. [+] Novo Demo para testar o ACBrLCB: LCBTeste.dpr (VCL) e QLCBTeste.dpr (CLX) [+] Novo Emulador de Leitor Serial. Se você não dispoem de um Leitor serial para testes, esse emulador pode ser bem útil. Use uma porta Serial dife- rente da especificada no ACBrLCB. O Emulador envia Strings pela Serial simulando um Leitor de Cod.Barras. Use o mesmo cabo utilizado pelos Emuladores de ECF para ligar as duas Portas Seriais -- ACBrEnterTab -- [+] Novo componente somente para CLX. Tem como finalidade traduzir a tecla ENTER como se fosse a tecla TAB, para poder mudar de campos com a tecla ENTER. É necessário um ACBrEnterTab para cada Form a ser manipulado. - Não há versão VCL, pois já existe o componente "JvEnterAsTab" da biblio- teca JEDI ( http://jvcl.sourceforge.net ). - Para ser compatível com Linux esse componente NAO usa captura de mensagens ou chamadas a API. Ele utiliza KeyPreview e OnKeyPress do Form dono (Owner) do componente. Entretanto se houver algum evento OnKeyPress programado pelo usuário, ele continuará funcionando normalmente. -- ACBrECFSChalter -- [-] Corrigido retorno de DataHora (gerava exceção) [-] Corrigido retorno de NumSerie, que retornava 2xchr(0) no final do número. [-] Cancelamento de Cupom não era possível se a Impressora estivesse em modo de Pagamento e com o Pagamento já finalizado. [-] CarregaComprovantesNaoFiscais (CNF) não estava lendo Flag de Permite- Vinculado e nem a Forma de Pagamento associada ao CNF, -- ACBrECFDaruma -- [-] Estado da Impressora sempre retornava Bloqueada [-] Venda de Item com Descriçao Grande não funcionava [-] Bloquear Mouse / Teclado e Exibir Msg de Aguarde não funcionavam, pois a DARUMA responde muito antes da impressao acabar, finalizando a espera... Corrigido com adiçao da procedure EnviaComandoEspera() como na BEMATECH. [-] Abertura de Gaveta de Dinheiro gerava TimeOut (nesse comando não há nenhuma resposta da impressora) Versão 0.06a 14/09/04 -- ACBrCHQ -- [+] Novo componente para manipular Impressoras de Cheques. Fabricantes suporta- dos: Bematech, Chronos, Schalter, Perto, ECF's, Imp.Comum. - Imp.Comum: Transforme aquela velha matricial em uma Impressora de Cheques O componente envia comandos diretamente para a porta das impressoras(LPT1 ,LPT2, LPTn) usando "AssignFile()", e comandos EPSON ESC/P2 para configu- rar o Lay-Out da página do cheque. Portanto,impressoras "for Windows" não devem funcionar.. - Para usar a impressao de cheques em ECF's é necessário um ECF 2 estaçoes e um componente ACBrECF configurado para o Modelo do ECF. - Modelo Bematech. Testada por "Everton H. Cardoso" da Bematech S/A - OK - Modelo Chronos. Testada por mim mesmo - OK - Modelo Schalter. Não testado. (mas para minha surpresa, a Impressora Chronos funciona perfeitamente com os comandos da Schalter). - Modelo Perto. Unit não está finalizada. Todo o desenvolvimento foi baseado em Manuais, mas não pude "debugar" a Unit por não ter um Equipa- mento disponível. Testes realizados pela Perto S/A por Miguel Silva, acusaram o funcionamento incorreto. Terminarei assim que uma impressora PertoCheck estiver disponível.... -- ACBrECF -- [+] Mais 3 impressoras Suportada pelo ACBrECF - Daruma, Schalter e Mecaf. Considerando os Modelos que utilizam chip-set da Mecaf o ACBrECF agora suporta os ECF's: Bematech, Daruma, Schalter, Mecaf, (Elgin, Digiarte, Zanthus, Acr, Aoki, Chronos, Promcomp, TrendsSTS, Unigraph). Além do modelo NAO FISCAL que é um Emulador de Impressora Fiscal em matriciais comuns (leia Nota legal durante o uso do Emulador) - Infelizmente não pude testar nenhum dos 3 ECF's lançados, por não ter um exemplar no momento. Entretanto, o código desses Modelos de ECF's foram migrados de uma rotina em Clipper 5.01 (DOS) que também funcionam usando a comunicação direta na porta Serial. - Se você possuir algum dos modelos de ECF citados acima, eu ficaria muito agradecido em saber o resultado dos seus testes... Por favor mande um e-mail... [-] As rotinas de Relatório Gerencial e Cupom Fiscal Vinculado NAO estavam imprimindo a Linha 1 do Relatório. [+] Novo Evento OnAguardandoRespostaChange. Que é executado toda vez que o valor da propriedade AguardandoResposta for modificado. Muito útil para bloquear os controles visuais e impedir que o usuário tente enviar novos comandos se o anterior ainda não terminou. [+] Adicionada propriedade "ComprovantesNaoFiscais" do tipo TObjectList, contendo a descriçao de todos os CNF's programados na Impressora. - Adicionado Metodo: CarregaComprovantesNaoFiscais - Adcinada as funções: AchaCNFDescricao e AchaCNFIndice [*] Adicionada Sobrecarga nos Metodo CupomVinculado e AbreCupomVinculado com versão que é possivel informar o CodCompravanteNaoFiscal (necessário em alguns modelos de ECF). [*] Removida Exceção que era disparada quando novo comando era solicitado e comando anterior ainda não havia sido concluido. [*] Abertura de Cupom zera o Tempo de mensagem para pouco papel, ou seja, se estiver com pouco papel, sempre haverá alerta no caso de Abertura de Cupom [*] Propriedade (subcomponente) 'Serial' passou a se chamar 'Device' -- ACBrECFBematech -- [*] NumSerie adaptada para retornar 15 ou 20 carateres conforme a versão do ECF -- ACBrGAV -- [*] Propriedade (subcomponente) 'Serial' passou a se chamar 'Device' -- ACBrDevice -- [+] Adicionada propriedade Handshake, para facilitar a definicição do Handshake necessário para cada equipamento. (RTS/CTS, DTR/DSR, XON/XOFF). Essa propriedade está ligada diretamente a HardFlow (RTS/CTS) e SoftFlow (XON/XOFF) [+] Adicionado Metodo ImprimePos( Linha, Coluna, AString) para facilitar a impressao direta de documentos em Matriciais. - Propriedade PosImp : Tpoint, contem a cordenada atual da Impressora. Data: 30/08/2004 -- ACBrCHQ -- [*]Primeira Versao ACBrCHQImpressoraComum. (por Daniel Simoes de Almeida) Data: 24/08/2004 ACBrCHQ -- [*] Primeira Versao ACBrCHQImpressoraECF. (por Daniel Simoes de Almeida) Versão 0.05a 20/08/04 [+] Demos de todos os componentes ACBr já compilados para Linux e Windows adicionados no pacote final. DemosLinux_X.XXx.ZIP e DemosWin32_X.XXx.ZIP. Onde X.XXx é a versão do ACBr. Os Demos Win32 são VCL, portanto nao devem precisar de nenhuma biblioteca. Os Demos Linux devem precisar da QT (libborqt-6.9-qt2.3.so) disponivel no Kylix -- ACBrValidador -- [+] Novo Componente para validação de diversos documentos como por exemplo: CPF, CNPJ, Num.Cheques, PIS, Inscrição Estadual (todos os estados). Considerando as Inscrições Estaduais, esse componente verifica atualmente 31 documentos diferentes. Novos documentos poderão ser adicionados... [+] Novo Demo para testar o ACBrValidador: ValidadorTeste.dpr (VCL) e QValidadorTeste.dpr (CLX) -- ACBrExtenso -- [+] Novo Componente para traduzir Números para Extenso. Permite mudar o nome da moeda e centavos [+] Novo Demo para testar o ACBrExtenso: ExtensoTeste.dpr (VCL) e QExtensoTeste.dpr (CLX) -- ACBrGAV -- [+] Adcionada String de abertura de Gavetas para Impressora NAO Fiscal Schalter [-] Corrigido BUG que não permitia atribuir uma Porta se modelo de gaveta igual a gavImpressoraComum Versão 0.04a 19/07/04 [-] Arquivos .DOF e .CFG não eram incluidos na pocote final de distribuição. Os mesmos são necessários para compilação condicional usando a diretiva CLX ou VisualCLX no Delphi (Windows) -- ACBrECF -- [+] Nova impressora para o componente ACBrECF implementada. Modelo: "NaoFiscal" Na verdade esse modelo se trata de um pequeno "emulador" de impressora Fiscal. Se comportando de forma muito semelhante a um ECF, inclusive possui uma "memoria fiscal" que é gravada em um arquivo .INI. Muito útil para ajudar no desenvolvimento de aplicações com ECF. Pode imprimir em Portas Paralelas, Seriais, ou em arquivo, de acordo com a propriedade PORTA do componente ACBrECF. -- ACBrECFBematech -- [*] Mensagem de pouco papel a cada n segundos não funcionava como o esperado. -- ACBrGAV -- [+] Novo Componente ACBrGAV para acionamento de Gavetas de Dinheiro. As gavetas podem ser ligadas a porta Serial, a uma impressora Fiscal ou a uma Impressora NAO Fiscal (impressora comum). No caso de impressora Fiscal, necessita de um componente ACBrECF. [+] Novo Demo para testar o ACBrGAV: GAVTeste.dpr (VCL) e QGAVTeste.dpr (CLX) Versão 0.03a 28/06/04 -- ACBrECF -- [*] Propriedade NumVersao mudou de Integer para String para compatibilizar com alguns modelos de ECF [*] Propriedades renomeadas: (Melhor organizaçao visual das Propriedades) MsgTempoInicio -> TempoInicioMsg MsgExibe -> ExibeMensagem [*] Evento OnMsgAguarde teve seu parametro modificado de: TempoRestante : Integer -> Mensagem : String ( Peço perdão pelas mudanças acima. Mas achei necessário para tornar o componente mais intuitivo. As propriedades não mais serão modificadas ) [+] Novas Propriedades: DescricaoGrande : Boolean default false; MsgRelatorio, MsgPausaRelatorio : String; PausaRelatorio : Integer default 5 LinhasEntreCupons : Integer default 7 FormMsgColor : TColor FormMsgFonte : TFonte [+] Novos Metodos: RelatorioGerencial(Relatorio : TStrings; Vias : Integer = 1) AbreRelatorioGerencial LinhaRelatorioGerencial( Linha : String ) CupomVinculado(COO, CodFormaPagto : String; Valor : Double Relatorio : TStrings; Vias : Integer = 1) AbreCupomVinculado(COO, CodFormaPagto : String; Valor : Double) LinhaCupomVinculado( Linha : String ) -- ACBrECFBematech -- [+] Melhorado o suporte a impressora MFD, nova propriedade: IsMFD : Boolean ( Existe um bug na versão do Emulador EMULFITH 1.02 da Bematech, que não retorna corretamente o TotalPago (Comando 35 22) ) [+] Suporte as novas propriedades e metodos de ACBrECF descritas acima. -- QECFTeste / ECFTeste -- [+] Adcionadas rotinas de impressão de Relatório Gerencial e Cupom Vinculado [-] Rotina de exemplo "EnviarComando" corrigida para trabalhar com a Bematech Versão 0.02a 16/06/04 --------------- [+] Demo para o componente ACBrECF em VCL e CLX desenvolvido para todos os comandos implementados no ACBrECF até o momento [-] Diversos Bugs corrigidos nas rotinas de Cupom Fiscal e Formas de Pagamento da Impressora Bematech Versão 0.01a 14/06/04 --------------- [+] Início do Projeto [+] Primeira Versao finalmente lançada. [+] Componente ACBrCalculadora Finalizado, [+] Componente ACBrECF implementado parcialmente (80%) [+] Demo para o componente ACBrECF em VCL e CLX parcialmente desenvolvido (50%) Data: 27/05/2004 --ACBrSerial -- [*] Criaçao de um arquivo unico para registro dos Componentes (por Daniel Simoes de Almeida)