Versão/0.8.1b

Origem: ACBr, a enciclopédia livre.

Versão lançada em 06/05/2005 - Primeira versão Beta.

Conteúdo

Download

Novidades da versão 0.8.1b

Símbolo Significado
[+] Novo recurso
[*] Recurso modificado/melhorado
[-] Correção de Bug (assim esperamos)

Estrutura de Diretórios

[*] Alterada a estrutura de diretórios e pacotes para facilitar a distribuição

Instalador

[+] Lançada a primeira versão do instalador para Windows

ACBrMonitor

[+] Lançada a primeira versão do programa ACBrMonitor.

- Permitirá o acesso remoto dos componentes ACBr por TCP/IP ou TXT, necessário 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 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 Pagemento 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" 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

Personal tools