Além de oferecer 100% de ferramentas e serviços personalizados, nossa equipe tem o foco na alavancagem do seu negócio, informando e auxiliando sua expansão.
Esta nota pode ser considerada técnica e avançada.
O AICS expõe a função "random" que retorna um número
aleatório entre 0 e 1, o número é em ponto flutuante. Entretanto,
o algoritmo nativo do compilador não apresenta uma distribuição
aleatória uniforme para aplicações críticas. Seguindo o trabalho
de Makoto Matsumoto and Takuji Nishimura, que desenvolveram
o algorimo Mersenne Twister (mais informações podem ser
obtidas em en.wikipedia.org/wiki/Mersenne_twister), a Byte
Factory substituiu, para a função Random dos usuários, para
seguir esta implementação mais moderna. Logo, a mesma declaração
terá resultados mais uniformes:
Function Random:double;
Nem é necessário inicializar as sementes, pois o AICS o faz logo
na inicialização do sistema.
Na versão mais recente do AICS, quando um usuário
logar e colocar a senha correta, não mais precisará clicar
no botão de aceitar para entrar. O sistema entrará
automaticamente, portanto, economizando uma operação.
Isso não vale para o Supervisor.
O servidor Web do AICS possui o recurso de navegação sobre
dados organizados hierarquicamente. Por exemplo, qualquer
estrutura de informação hierárquica do AICS pode ser "navegada".
Dentre elas, citamos alguns exemplos:
* Classificações Comerciais: a navegação é utilizada na montagem do
pedido no Comércio Eletrônico
* Classificações Web: a navegação pode ser utilizada para visualizar
qualquer estrutura de dados associada a ela
Na montagem das páginas de navegação (que são apenas 3 htms
para definir toda a navegção do sistema), o tag CAMINHO exibe
um texto clicável permitindo retornar aos níveis anteriores. Porém,
este texto do caminho pode agora ser utilizado como título das
páginas. Ou mesmo em outros tags. O resultado disso é uma
página muito mais bem posicionada em mecanismos de busca,
como o Google.
O novo tag criado é CAMINHOTXT, que gerará apenas o texto
do caminho sem os comandos de link.
A ficha técnica de Materiais Elaborados estava com uma
coluna incorreta e exibia as descrições repetidas. Isso
afetava apenas a versão do AICS com multi-engenharia.
Os usuários que já estavam com esta versão e utilizam
Engenharias devem fazer a atualização para corrigir este
relatório.
Esta nota é considerada técnica para desenvolvimento.
O AICS possui a função ObtemTag (veja no help do editor
sua declaração completa) que permite obter o conteúdo dentro
dos comandos de início e fim da Tag (semelhante a códigos
html). Na versão mais recente do AICS, este comando obtém
os dados mesmo que o tag seja com atributos dentro da abertura.
Os atributos na abertura do Tag são muito comuns em arquivos
XML mais complexos. Da mesma forma, agora visando estes
atributos, a BF criou uma nova função específica para a extração
deles com a seguinte sintaxe:
function ObtemParTag(Tag, Param, Texto:string):string
Muito semelhante à ObtemTag, com a chamada adicional
indicando qual o parâmetro que deseja retornar. Esta função
e a ObtemTag expandida foram incorporadas ao AICS e todas
as suas vertentes em Web e CGIs. Além da expansão, foram
otimizadas para ficarem mais rápidas. O impacto do ganho de
velocidade pode ser sentido em ganhos de frações de segundo
na montagem de relatórios editados pelos usuários, por exemplo.
Esta nota objetiva desenvolvimento de sites via ServAICS e WebAICS.
Um processamento muito utilizado no serviço Web do AICS é o controle
de páginas a partir de gabaritos. Este procedimento isola, ou pode isolar,
o layout do processamento. Os modos mais comuns de desenvolvimento
de sites, ASP, PHP etc, misturam visual e códigos de processamento num
único objeto.
É claro que o AICS permite este mesmo tipo de desenvolvimento integrado,
mas a separação dá grandes ganhos: deixa o layout livre para ser alterado
sem interferência nas regras E deixa as regras livres para serem ajustadas sem
influenciar o layout. Vários sites podem seguir as mesmas regras e terem
visuais completamente diferentes.
Nos gabaritos, o comando de "menor" seguido do símbolo # indica uma
abertura de TAG e ele deve ser fechado com um símbolo de "maior".
O que é muito pouco explorado é a possibilidade de alteração da saída
em função do conteúdo existir ou não e mesmo sua formatação. Assim,
vamos exemplificar um tag chamado ENDERECO. Se ele existir, o
projetista do site gostaria que saísse impresso "End." antes do endereço,
mas não quer mexer nas regras de negócio. Para isso, ele muda o tag para:
End. ENDERECO
Tudo que estiver dentro do @IF significa "apareça apenas se houver
conteúdo". Da mesma forma, se ele quisesse que saísse um texto caso
o endereço não exista, ele utilizaria:
End.: ENDERECO
Um outro recurso é o de formatação de números e datas. Por exemplo,
se quisesse que um preço fosse impresso com 2 casas decimais sempre,
poderíamos inserir o tag assim:
PRECO
Se uma data tivesse que sair com dia, mês e ano com 2 dígitos cada,
poderíamos utilizar:
NASCIMENTO
Se um número tivesse que seguir a regra de formatação "americana"
(com . separando as decimais), pode-se utilizar o seguinte comando
independentemente das configurações regionais do servidor:
PRECO
Quando os boletos são gerados no financeiro do Aics, sempre
ocorre a pergunta se deseja baixar os movimentos ou não
(marcando-os como impressos). Criamos uma chamada a uma
rotina definida pelo usuário (callback) que elimina essa pergunta
deixando sob suas regras este procedimento.
A declaração é:
function AICS_MarkAsProcessed(login:String):boolean
Ela será chamada independentemente do direito do login.
Adicionamos um recurso no módulo Comercial, quando operado com impressora fiscal acoplada, que diminui e muito o trabalho de emissão dos cupons quando um orçamento existir. O módulo Comercial em "Modo Caixa", quando editar um pedido sem cupom, irá permitir emitir o cupom na hora com todos os dados previstos e, ainda, continuar a emissão adicionando novos itens. Isto elimina grande trabalho de reentrada de dados e já deixa registrada toda a transação pré-realizada pelo atendimento comercial.
O recurso de captcha é a exibição de um texto em formato de
imagem no qual ao usuário é solicitada a leitura e digitação do
campo de imagem. Este recurso tem o único objetivo de evitar
que sistemas automáticos façam postagens em formulários web.
No serviço do AICS mais recente, este recurso foi adicionado
nativamente. Para ativá-lo, dentro do seu formulário, indique um
comando IMG com a opção SRC chamando a ação imgcap.
Declare um campo escondido com o mesmo ID de chamada
da imagem, este ID deve ser dinâmico na forma de TAG
(CAPTCHAID). Um exemplo disso seria como mostrado abaixo:
Insira a informação da imagem abaixo
Na ação que recebe o Post deste formulário, a rotina poderá checar
pelo ID do captcha se o usuário digitou o conteúdo correto. A
tabela que armazena os Captchas é a CAPTCHA.
O ICMS de Substituição é cobrado no produtor sobre o
preço de venda esperado ao consumidor final. Este seria
o objetivo deste tipo de cobrança. Além disso, esta cobrança
antecipada recaía sobre a mesma base de cálculo do ICMS
direto.
Em portarias recentes, o cálculo do ICMS Substituição pode
não sofrer reduções da base de cálculo em determinados
produtos, isto é, o valor final calculado do imposto será
maior para estes casos. Mesmo assim, a base de cálculo do
ICMS direto pode apresentar redução de base.
Sem comentários quanto a este critério, para suprir esta
nova legislação, a Byte Facory ampliou a tabela de ICMS
de substituição TABICMSUBS) adicionando uma coluna
que indica a necessidade de não reduzir a base apenas do
ICMS de Substituição.