INTEQ KB
Advertisement

Sr(ta)s.,

Já está em testes as alterações no sistema para que a partir da guia "Operações/Pedidos ou Provisões" da interface windows utilize os objetos de gestão escritos em JavaScript.

Esta alteração vai permitir consolidar a estabilidade destes objetos, aumentar o poder de customização e performance nestas operações, hoje utilizados apenas em interfaces com finalidades especificas e em alguns clientes.

As principais mudanças para este funcionamento é:

   * A validação de limite de crédito da pessoa e limite de aprovação do usuário passa a ocorrer no momento que é clicado o botão de aprovação e não mais na gravação.
   * O script definido na propriedade "Formula Valor do Título" das classes filhas de "Pedidos ou Provisões" não será mais executado, sendo necessário na base que utiliza esta formula implementar o tratamento nos scripts dos eventos noCriaTitulos ou noValidaTitulos.
   * Os scripts definidos nas propriedade "Script antes do Cálculo",  "Script antes da Aprovação", "Script antes da Gravação", "Script Cálculo", "Script Contabil" na classe "Pedidos ou Provisões" também não serão mais executados, será necessário implementar os scripts em JavaScript para os respectivos eventos noInicioCalcula, noInicioAprova, noInicioGrava, noCalcula, noContabiliza. Abaixo é explicado como definir os scripts para os eventos.

A utilização dos objetos em JavaScript é condicionada a propriedade "Utiliza objetos JavaScript para esta operação" da classe "Pedidos ou Provisões" que deve está preenchida com 'S', isto vai permitir que seja feito a conversão gradual de todos clientes para utilizar os novos objetos. As bases que já usavam o script de calculo do objeto javascript para guia "Operações", devem preencher esta propriedade com 'S' e fazer a configuração no startup descrita mais abaixo.

Avisaremos quando o build com estas alterações estiver pronto para que todos façam testes.

Abaixo uma breve descrição de cada classe dos objetos de gestão em JavaScript que serão utilizadas na guia de "Operações":

Classes dos objetos ( hierarquia )

   * Operacao() ( url: /inteq/erp/objects/operacao.js )
         o Descrição: Classe mãe de todos os objetos de gestão, esta classe não deve ser utilizada diretamente, apenas suas filhas. 
         o Propriedades:
               + aberta - Indica se o objeto está com uma operação aberta
               + novaOperacao - Indica se o objeto está com uma nova operação
               + aprovada - Indica se a operação está aprovada
               + usuario - Chave do usuário da nova estrutura de usuários
               + entidadeDoUsuario - Chave da entidade associada do usuários
               + nomeDoUsuario - Nome do usuário
         o Metodos:
               + nova()
               + abre( chaveDeOperacoes )
               + calcula()
               + contabiliza()
               + grava()
               + imprime( impressora )
               + fecha()
               + apaga()
               + aprova()
               + desaprova()
               + buscarPendencia( clausulaWhereSQLQueTrazPendencia )
               + cancela()
               + descancela()
               + estorna( clausulaWhereSQLQueTrazAOperacaoASerEstornada )
               + copia( clausulaWhereSQLQueTrazAOperacaoASerCopiada )
         o Eventos:
               + noInicioNova
               + noFimNova
               + noInicioAbre
               + noFimAbre
               + noInicioGrava
               + noFimGrava
               + noInicioFecha
               + noFimFecha
               + noInicioApaga
               + noFimApaga
               + noInicioAprova
               + noFimAprova
               + noInicioDesaprova
               + noFimDesaprova
   * OperacaoContabil() ( url: /inteq/erp/objects/operacaoContabil.js )
         o Herda de: Operacao()
         o Descrição: Classe responsabel pelo contabilização
         o Propriedades:
               + contabil - Dataset da tabela CONTABIL utilizado para os lançamentos 
               + planoDeContas - Clone do cache local da tabela PLANOCON
               + classes - Clone do cache local da tabela CLASSE
               + Todas as propriedades da classe mãe
         o Metodos:
               + lanca( chaveDeCriacao, classe, conta, unidade, valor, data, historico )
               + credite( chaveDeCriacao, classe, conta, unidade, valor, data, historico )
               + debite( chaveDeCriacao, classe, conta, unidade, valor, data, historico)
               + pegaClasseInicialDeMistura( classe )
               + criaContaEntidade( classeDaConta, prefixo, entidade )
               + prefixoGenericoContaEntidadeRecursoTitulo( adiantamento, juro, desconto, recurso, chCriacao, classeTitulo )
               + prefixoContaEntidadeTitulo( classeTitulo, chCriacao )
               + prefixoContaAdiantamentoEntidadeTitulo( classeTitulo, chCriacao )
               + contaJuro( classeTitulo, chCriacao )
               + contaDesconto = function ( classeTitulo, chCriacao )
               + contaRecursoTitulo( classeTitulo, chCriacao )
               + Todos os metodos da classe mãe
         o Eventos:
               + noInicioContabiliza
               + noContabiliza
               + noFimContabiliza
               + Todos os eventos da classe mãe
   * OperacaoPedido() ( url: /inteq/erp/objects/operacaoPedido.js )
         o Herda de: OperacaoContabil()
         o Descrição: Classe resposavel pela operações de pedidos ou provisões e validações e regras para as demais classe de operações de pedidos.
         o Propriedades:
               + validaDataDeMovimentacao
               + temTituloBaixado
               + trazApenasSaldoCancelado
               + programacao
               + pessoa
               + localDeEscrituracao
               + localDeEntrega
               + nucleo
               + classe
               + pedidoCab - Dataset com os dados do cabecalho do pedido
               + pedido - Dataset dos itens do pedido
               + titulo - Dataset dos titulos
               + evento - Dataset para registro de evento, hoje internamente no objeto é utilizado para gerar movimentação de carteira
               + Todas as propriedades da classe mãe
         o Metodos:
               + camposCabecalhoPedido( ds )
               + custoMedioDePedido()
               + validaLimiteDeCredito()
               + validaLimiteDeAprovacao()
               + criaTitulos()
               + validaTitulos()
               + Todos os metodos da classe mãe
         o Eventos:
               + noInicioCalcula
               + noCalcula
               + noFimCalcula
               + noAprova - Este evento já tem uma implementação padrão para validação do limite de crédito da pessoa e do limite de aprovação do usuário
               + noCriaTitulos
               + noValidaTitulo
               + Todos os eventos da classe mãe
   * OperacaoPedidoBaixaAutomatica() ( url: /intq/erp/objects/operacaoPedidoBaixaAutomatica.js )
         o Herda de: OperacaoPedido()
         o Descrição: Classe responsavel pela operação de pedido de baixa automática, esta classe tem as validações e regras para operações de baixa de pedido.
         o Propriedades:
               + pedidoAcessorio - Dataset com os itens de acessorios ou acessoriados relacionados a operação aberta
               + validaNumeroNaGravacao
               + Todas as propriedades da classe mãe
         o Metodos:
               + expressaoAcessorio( chAcessorio, expressaoTexto )
               + somaAcessorio( chAcessorio, expressaoTexto )
               + somaAcessoriados( listaChAcessorio, expressaoTexto )
               + custoMedioExcluindoChaves( recurso, nucleo, data, chaves )
               + Todos os metodos da classe mãe
         o Evento:
               + noRateio
               + Todos os eventos da classe mãe
   * OperacaoPedidoBaixaPedido() ( url: /intq/erp/objects/operacaoPedidoBaixaPedido.js )
         o Herda de: OperacaoPedidoBaixaAutomatica()
         o Descrição: Classe para operação de baixa de pedido.
         o Propriedades:
               + pedidoBaixado - Dataset com os itens dos pedidos sendo baixados na operação. A propriedade pedido é o dataset com os itens da baixa.
               + tituloPedidoBaixado - Dataset com os titulos dos pedidos sendo baixado.
               + Todas as propriedades da classe mãe
         o Metodos:
               + Todos os metodos da classe mãe
         o Eventos:
               + Todos os eventos da classe mãe
   * OperacaoPedidoEdicaoFiscalBaixaPedido() ( url: /intq/erp/objects/operacaoPedidoEdicaoFiscalBaixaPedido.js )
         o Herda de: OperacaoPedidoBaixaPedido()
         o Descrição: Classe responsavel pela abertura de uma baixa de pedido para edição fiscal.
         o Propriedades:
               + Todas as propriedades da classe mãe
         o Metodos:
               + Todos os metodos da classe mãe
         o Eventos:
               + Todos os eventos da classe mãe
   * OperacaoPedidoDevolucao() ( url: /intq/erp/objects/operacaoPedidoDevolucao.js )
         o Herda de: OperacaoPedido()
         o Descrição: Classe para criação de pedidos de devolução
         o Propriedades:
               + baixaDePedido - Dataset com os itens da baixa sendo devolvida. A propriedade pedido é o dataset com os itens do pedido de devolução.
               + Todas as propriedades da classe mãe
         o Metodos:
               + Todos os metodos da classe mãe
         o Eventos:
               + Todos os eventos da classe mãe

Obs.: Alguns metodos ou propriedades herdados de classes mães não se aplicam para algumas classes.

Para configuração dos eventos destes objetos, é necessário criar um script de mime type "application/x-startup" e especificar a chave do script que será executado naquele evento especificado, segue exemplo de um script de startup para configuração dos eventos:

session.erp.operacaoPedido.noCalcula = 384027 /* operacaoPedidoScriptCalculo.js */
session.erp.operacaoPedidoBaixaAutomatica.noRateio = 384028 /* operacaoPedidoScriptRateio.js */
session.erp.operacaoRequisicao.noContabiliza = 384337 /* operacaoRequisicaoScriptContabiliza.js */

Os eventos definidos em uma classe mãe serão executado em classes filhas que não tiverem definição. No exemplo acima todos os objetos de classe filha de OperacaoPedido() irão executar o evento noCalcula quando for realizado o calculo.

O script que será usado no evento deve declarar uma função sem nome, exemplo:

function ( operacao ) {

   // Script do evento

}

Lembrando que a variavel operacao, parametro da função declarada, é o objeto instanciado da operação que está disparando o evento, podendo ser acessado qualquer propriedade ou metodo da operação no evento.

Além das classes de objetos listados acima existem já desenvolvidas as seguintes classes mas que ainda não tem integração com a guia de "Operações":

   * OperacaoNegociacaoFinanceira()
   * OperacaoPedidoTransferencia()
   * OperacaoRequisicao()
   * OperacaoTransferenciaDepositio()
   * OperacaoTitulo()

Qualquer dúvida estaremos a disposição para esclarecimentos

Advertisement