Neste guia serão abordadas as funcionalidades relacionadas a Operação de Títulos, voltadas aos desenvolvedores do Bematech ERP, dando a visão a quem irá implementar melhorias no sistema utilizando o objeto de gestão responsável pela baixa de títulos.
O objetivo deste guia é orientar como utilizar as APIs disponibilizadas para manipular uma Operação de Títulos onde iremos explanar sobre a criação da baixa do título, abertura e edição.
Considerando-se a complexidade de um ERP, não serão descritos nesse guia termos introdutórios do sistema.
Para a perfeita compreensão do uso do objetos de gestão responsável por manipular Operação de Título se faz necessário entender sua abrangência e estar familiarizado com a linguagem do sistema Bematech ERP. Devemos iniciar tendo uma visão de como desenvolver no sistema Bematech ERP, portanto realize a leitura do Guia de estudo da Plataforma Bematech ERP, além disso é necessário que o leitor tenha o conhecimento de uso e dos conceitos do Bematech ERP.
O objeto responsável por manipular as operações de baixa de título é o OperacaoTitulo. O OperacaoTitulo é uma especialização do objeto OperacaoContabil e desta forma, tem como principais API's seus datasets. Lembrando que a característica que define uma baixa de título e que a diferencia de uma transferência de disponíveis é a existência de um título baixado com a movimentação ou o preenchimento do campo TITULOBXPARCIAL na movimentação, o objeto OperacaoTitulo é utilizado para manipular baixas de títulos, e dados específicos destes, como a carteira, juros, multa, desconto, número de documento e etc.
Para uma melhor visão de como utilizar o OperacaoTitulo abaixo serão listados os principais casos de uso e a explicação de quais as APIs devem ser utilizadas.
configurando instância
Ao realizar a instância do OperacaoTitulo não será necessário passar parâmetros adicionais, à partir da instância o objeto estará pronto para realizar uma baixa de títulos.
var novaBxTitulo = new OperacaoTitulo()
Exemplo de idbc realizando a instância do OperacaoTitulo
__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs
__includeOnce(-1898190356); // ../objects/operacaoTitulo.ijs
var novaBxTitulo = new OperacaoTitulo()
aproveitando instância da baixa de título
Conforme explicado no guia técnico das operações para maior performance é possível aproveitar a instância do OperacaoTitulo e realizar várias operações sem a necessidade de reinstanciar o OperacaoTitulo. Ou seja, é possível instanciar somente uma vez o OperacaoTitulo e criar, abrir, editar uma operação após a outra. Para isto faremos uso do método "fecha", conforme explicado o passo a passo abaixo:
Ao instanciar um OperacaoTitulo para criação de uma nova baixa de título, conforme descrito em criar uma nova baixa de título com dados informados, utilizamos o método buscaPendencia em seguida populamos o dataset movDispo e gravamos utilizando o método grava.
Abaixo temos o código completo para criar uma nova baixa de título de recebimento, com 1 movimentação de crédito.
Neste caso estamos realizando uma baixa de título de recebimento (o título utilizado no exemplo - chave 189407291 - é um título de recebimento, o que faz com que a movimentação de disponível seja credora no disponível Cx Central)
__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs
__includeOnce(-1898190356); // ../objects/operacaoTitulo.ijs
var novaBxTitulo = new OperacaoTitulo()
novaBxTitulo.fechaOperacaoNoTerminoDaGravacao = false;
novaBxTitulo.buscaPendencia("CHAVE = 189407291");
novaBxTitulo.movDispo.append();
novaBxTitulo.movDispo.classe = -2008888000; /* Movimentação de Disponíveis */
novaBxTitulo.movDispo.disponivel = 11656439; /* Caixa Central */
novaBxTitulo.movDispo.tipo = -1897048580 /* DH */
novaBxTitulo.movDispo.emissao = new Date();
novaBxTitulo.movDispo.locescritu = 408425; /* Bematech LocEscritu */
novaBxTitulo.movDispo.historico = "Lc à créd em Cx Central ref pgto título 189407291";
novaBxTitulo.movDispo.valor = 505.41;
novaBxTitulo.movDispo.post();
novaBxTitulo.grava();
Caso seja necessário criar uma nova baixa de título não se faz necessário instanciar outra vez o OperacaoTitulo, pois podemos aproveitar a mesma instância criada anteriormente, bastando para isso utilizar o método fecha que irá deixar o objeto pronto para manipular uma nova operação.
Dessa forma podemos chamar o fecha após a gravação da primeira transferência.
novaBxTitulo.fecha();
Após fechar caso queria criar uma segunda baixa de título basta chamar o método buscaPendencia, passando como parâmetro uma condição sql que identifique este título no banco de dados
novaBxTitulo.buscaPendencia("CHAVE = 323880752");
Em seguida deve ser populado as informações de movimentação de disponível que irá realizar a baixa do título.
Para popular as informações de movimentação de disponível, deve ser manipulada a api de dataset movDispo, executando o método append do dataset e preenchendo as informações.
Neste caso estamos realizando uma baixa de título de pagamento (o título utilizado no exemplo - chave 323880752 - é um título de pagamento, o que faz com que a movimentação de disponível seja devedora no disponível Cx Central)
novaBxTitulo.movDispo.append();
novaBxTitulo.movDispo.classe = -2008888000; /* Movimentação de Disponíveis */
novaBxTitulo.movDispo.disponivel = 11656439; /* Caixa Central */
novaBxTitulo.movDispo.tipo = -1897048580 /* DH */
novaBxTitulo.movDispo.emissao = new Date();
novaBxTitulo.movDispo.locescritu = 408425; /* Bematech LocEscritu */
novaBxTitulo.movDispo.historico = "Lc à déb em Cx Central ref pgto título 323880752";
novaBxTitulo.movDispo.valor = -110000;
novaBxTitulo.movDispo.post();
Em seguida deve ser chamado o grava.
novaBxTitulo.grava();
Exemplo completo no idbc criando duas baixas de títulos com a mesma instância do OperacaoTitulo. Há necessidade de trocar as chaves informadas por uma chave da base onde está sendo executado.
__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs
__includeOnce(-1898190356); // ../objects/operacaoTitulo.ijs
var novaBxTitulo = new OperacaoTitulo()
novaBxTitulo.fechaOperacaoNoTerminoDaGravacao = false;
novaBxTitulo.buscaPendencia("CHAVE = " + 189407291);
novaBxTitulo.movDispo.append();
novaBxTitulo.movDispo.classe = -2008888000; /* Movimentação de Disponíveis */
novaBxTitulo.movDispo.disponivel = 11656439; /* Caixa Central */
novaBxTitulo.movDispo.tipo = -1897048580 /* DH */
novaBxTitulo.movDispo.emissao = new Date();
novaBxTitulo.movDispo.locescritu = 408425; /* Bematech LocEscritu */
novaBxTitulo.movDispo.historico = "Lc à créd em Cx Central ref pgto título 189407291";
novaBxTitulo.movDispo.valor = 505.41;
novaBxTitulo.movDispo.post();
novaBxTitulo.grava();
novaBxTitulo.fecha();
novaBxTitulo.buscaPendencia("CHAVE = " + 323880752);
novaBxTitulo.movDispo.append();
novaBxTitulo.movDispo.classe = -2008888000; /* Movimentação de Disponíveis */
novaBxTitulo.movDispo.disponivel = 11656439; /* Caixa Central */
novaBxTitulo.movDispo.tipo = -1897048580 /* DH */
novaBxTitulo.movDispo.emissao = new Date();
novaBxTitulo.movDispo.locescritu = 408425; /* Bematech LocEscritu */
novaBxTitulo.movDispo.historico = "Lc à déb em Cx Central ref pgto título 323880752";
novaBxTitulo.movDispo.valor = -110000;
novaBxTitulo.movDispo.post();
novaBxTitulo.grava();
buscando pendência utilizando condição sql
Para inserir títulos pendentes em uma operação de baixa de títulos é necessário o uso do método buscaPendencia.
Este método recebe como parâmetro uma condição sql que permita identificar o título no banco de dados, normalmente são utilizados dados dos campos do título como filtro, sendo mais comum o uso do campo CHAVE.
Podem ser utilizadas condições sql mais complexas, porém deve-se sempre considerar que a condição informada como parâmetro será internamente inserida em uma estrutura neste formato: "and ( " + condicaoInformadaComoParametro + " )", logo, deve-se considerar utilizar condições que obedeçam esta estrutura.
As condições sql podem trazer mais de um título.
Exemplos completos no idbc buscando pendência utilizando condição sql. Há necessidade de trocar as chaves informadas por uma chave da base onde está sendo executado.
__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs
__includeOnce(-1898190356); // ../objects/operacaoTitulo.ijs
//Buscando pendência de um título com a chave 189407291
var novaBxTitulo = new OperacaoTitulo()
novaBxTitulo.fechaOperacaoNoTerminoDaGravacao = false;
novaBxTitulo.buscaPendencia("CHAVE = 189407291");
__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs
__includeOnce(-1898190356); // ../objects/operacaoTitulo.ijs
//Buscando pendência de um título com o Número 189396421-02/28
var novaBxTitulo = new OperacaoTitulo()
novaBxTitulo.fechaOperacaoNoTerminoDaGravacao = false;
novaBxTitulo.buscaPendencia("NUMERO = '189396421-02/28'");
__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs
__includeOnce(-1898190356); // ../objects/operacaoTitulo.ijs
//Buscando pendência de um título de Duplicata com vencimento em 25/05/2013
//e cuja chave de criação seja 189396421
var novaBxTitulo = new OperacaoTitulo()
novaBxTitulo.fechaOperacaoNoTerminoDaGravacao = false;
novaBxTitulo.buscaPendencia("CHCRIACAO = 189396421 and TIPO = -1899999585 /* Duplicata */ and VENCIMENTO = '05/24/2013'");
__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs
__includeOnce(-1898190356); // ../objects/operacaoTitulo.ijs
//Buscando pendênciad de 3 títulos de chaves 189407291, 189407293, 189407297
var novaBxTitulo = new OperacaoTitulo()
novaBxTitulo.fechaOperacaoNoTerminoDaGravacao = false;
novaBxTitulo.buscaPendencia("CHAVE in (189407291, 189407293, 189407297)");
__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs
__includeOnce(-1898190356); // ../objects/operacaoTitulo.ijs
//Buscando pendência de todos os títulos cuja pessoa seja Cliente 1
//ou cuja carteira seja Carteira Cobrança Simples e o vencimento maior que '17/05/2015'
var novaBxTitulo = new OperacaoTitulo()
novaBxTitulo.fechaOperacaoNoTerminoDaGravacao = false;
novaBxTitulo.buscaPendencia("PESSOA = 36786289 /* Cliente 1 */ or (CARTEIRA = -1899999997 /* Carteira Cobrança Simples */ and VENCIMENTO > '05/17/2015')");
Adicionalmente, caso já esteja disponível um dataset de títulos pendentes e não seja necessário realizar uma nova consulta, este dataset poderá ser passado como parâmetro para o método buscaPendencia.
Neste caso todos os títulos que estiverem no dataset e forem pendentes serão adicionados à operação de baixa de títulos. Caso algum título não possa ser baixado será disparado um erro informando a lista de títulos inválidos.
API buscaPendencia informando um dataset:
novaBxTitulo.buscaPendencia(dataSet);
buscando pendência mais de uma vez
A api buscaPendencia tem caráter cumulativo, logo, pode ser utilizada mais de uma vez para inserir múltiplas pendências na operação de baixa de títulos.
Caso um título já tenha sido inserido como pendência na operação este não será inserido duplicado por outras buscas de pendências, apenas terá seus dados atualizados conforme última informação recebida como resultado da busca de pendência.
A busca múltipla de pendências é utilizada principalmente em interfaces, nas quais o usuário pode inserir pendências de títulos de forma parcial e cumulativa utilizando vários filtros para pesquisa até que tenha inserido todos os títulos desejados para a baixa.
É importante ressaltar que cada busca de pendência executará uma consulta ao banco de dados, logo, por questões de desempenho sempre que possível, será melhor executar apenas 1 busca com uma condição que retorne todos os títulos que se deseja.
Exemplos completos no idbc buscando pendência mais de uma vez utilizando condição sql. Há necessidade de trocar as chaves informadas por uma chave da base onde está sendo executado.
__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs
__includeOnce(-1898190356); // ../objects/operacaoTitulo.ijs
var novaBxTitulo = new OperacaoTitulo()
novaBxTitulo.fechaOperacaoNoTerminoDaGravacao = false;
novaBxTitulo.buscaPendencia("NUMERO = '189396421-02/28'");
novaBxTitulo.buscaPendencia("CHAVE in (189407291, 189407293, 189407297)");
novaBxTitulo.buscaPendencia("CHCRIACAO = 189396421 and TIPO = -1899999585 /* Duplicata */ and VENCIMENTO = '05/24/2013'");
criar uma nova baixa de título com uma movimentação
Para realizar a criação de uma nova baixa de títulos devemos iniciar instanciando o OperacaoTitulo.
__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs
__includeOnce(-1898190356); // ../objects/operacaoTitulo.ijs
var novaBxTitulo = new OperacaoTitulo()
Em seguida deve ser utilizado o método "buscaPendencia" conforme api da Operacao, passando como parâmetro uma condição sql que possibilite identificar o título no banco de dados, no exemplo, utilizaremos o campo CHAVE do título.
novaBxTitulo.buscaPendencia("CHAVE = 189407291");
Em seguida deve ser populado as informações da movimentação de disponível que irá realizar a baixa deste título.
Para inserir as informações de movimentação de disponível, deve ser manipulada a api de dataset movDispo, executando o método append do dataset e preenchendo as informações.
novaBxTitulo.movDispo.append();
novaBxTitulo.movDispo.classe = -2008888000; /* Movimentação de Disponíveis */
novaBxTitulo.movDispo.disponivel = 11656439; /* Caixa Central */
novaBxTitulo.movDispo.tipo = -1897048580 /* DH */
novaBxTitulo.movDispo.emissao = new Date();
novaBxTitulo.movDispo.locescritu = 408425; /* Bematech LocEscritu */
novaBxTitulo.movDispo.historico = "Lc à créd em Cx Central ref pgto título 189407291";
novaBxTitulo.movDispo.valor = 505.41;
novaBxTitulo.movDispo.post();
Observação: Os passos acima de popular os dados de movimentações de disponível não são necessários ao desenvolver interfaces com o WebFramework. O tratamento de manipulação de dataset é realizado pelo próprio Framework, bastando a grade de movimentações ter como referência o dataset do objeto.
Em seguida deve ser chamado o grava.
novaBxTitulo.grava();
Exemplo completo no idbc. Há necessidade de trocar as chaves informadas por uma chave da base onde está sendo executado.
__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs
__includeOnce(-1898190356); // ../objects/operacaoTitulo.ijs
var novaBxTitulo = new OperacaoTitulo()
novaBxTitulo.fechaOperacaoNoTerminoDaGravacao = false;
novaBxTitulo.buscaPendencia("CHAVE = 189407291");
novaBxTitulo.movDispo.append();
novaBxTitulo.movDispo.classe = -2008888000; /* Movimentação de Disponíveis */
novaBxTitulo.movDispo.disponivel = 11656439; /* Caixa Central */
novaBxTitulo.movDispo.tipo = -1897048580 /* DH */
novaBxTitulo.movDispo.emissao = new Date();
novaBxTitulo.movDispo.locescritu = 408425; /* Bematech LocEscritu */
novaBxTitulo.movDispo.historico = "Lc à créd em Cx Central ref pgto título 189407291";
novaBxTitulo.movDispo.valor = 505.41;
novaBxTitulo.movDispo.post();
novaBxTitulo.grava();
criar uma nova baixa de título com várias movimentações
Para realizar a criação de uma nova baixa de títulos devemos iniciar instanciando o OperacaoTitulo.
__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs
__includeOnce(-1898190356); // ../objects/operacaoTitulo.ijs
var novaBxTitulo = new OperacaoTitulo()
Em seguida deve ser utilizado o método "buscaPendencia" conforme api da Operacao, passando como parâmetro uma condição sql que possibilite identificar o título no banco de dados, no exemplo, utilizaremos o campo CHAVE do título.
novaBxTitulo.buscaPendencia("CHAVE = 189407291");
Em seguida deve ser populado as informações das movimentações de disponíveis que irão realizar a baixa deste título, podendo ter mais de uma movimentação.
Para inserir as informações de movimentação de disponível, deve ser manipulada a api de dataset movDispo, executando o método append do dataset e preenchendo as informações, em seguida deve ser executado o método post e seguido por outros conjuntos de append e preenchimento de informações tantas vezes quanto forem necessárias inserção de movimentações de disponível.
As movimentações poderão ter disponíveis e valores distintos ou iguais, porém a soma total das movimentações nunca deve ultrapassar o valor total do título que está sendo baixado.
novaBxTitulo.movDispo.append();
novaBxTitulo.movDispo.classe = -2008888000; /* Movimentação de Disponíveis */
novaBxTitulo.movDispo.disponivel = 11656439; /* Caixa Central */
novaBxTitulo.movDispo.tipo = -1897048580 /* DH */
novaBxTitulo.movDispo.emissao = new Date();
novaBxTitulo.movDispo.locescritu = 408425; /* Bematech LocEscritu */
novaBxTitulo.movDispo.historico = "Lc à créd em Cx Central ref pgto título 189407291";
novaBxTitulo.movDispo.valor = 205.41;
novaBxTitulo.movDispo.post();
novaBxTitulo.movDispo.append();
novaBxTitulo.movDispo.classe = -2008888000; /* Movimentação de Disponíveis */
novaBxTitulo.movDispo.disponivel = 38365990; /* Banco do Brasil */
novaBxTitulo.movDispo.tipo = -1897048580 /* DH */
novaBxTitulo.movDispo.emissao = new Date();
novaBxTitulo.movDispo.locescritu = 408425; /* Bematech LocEscritu */
novaBxTitulo.movDispo.historico = "Lc à créd em Bco Brasil ref pgto título 189407291";
novaBxTitulo.movDispo.valor = 300
novaBxTitulo.movDispo.post();
Observação: Os passos acima de popular os dados de movimentações de disponível não são necessários ao desenvolver interfaces com o WebFramework. O tratamento de manipulação de dataset é realizado pelo próprio Framework, bastando a grade de movimentações ter como referência o dataset do objeto.
Em seguida deve ser chamado o grava.
novaBxTitulo.grava();
Exemplo completo no idbc. Há necessidade de trocar as chaves informadas por uma chave da base onde está sendo executado.
__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs
__includeOnce(-1898190356); // ../objects/operacaoTitulo.ijs
var novaBxTitulo = new OperacaoTitulo()
novaBxTitulo.fechaOperacaoNoTerminoDaGravacao = false;
novaBxTitulo.buscaPendencia("CHAVE = 189407291");
novaBxTitulo.movDispo.append();
novaBxTitulo.movDispo.classe = -2008888000; /* Movimentação de Disponíveis */
novaBxTitulo.movDispo.disponivel = 11656439; /* Caixa Central */
novaBxTitulo.movDispo.tipo = -1897048580 /* DH */
novaBxTitulo.movDispo.emissao = new Date();
novaBxTitulo.movDispo.locescritu = 408425; /* Bematech LocEscritu */
novaBxTitulo.movDispo.historico = "Lc à créd em Cx Central ref pgto título 189407291";
novaBxTitulo.movDispo.valor = 205.41;
novaBxTitulo.movDispo.post();
novaBxTitulo.movDispo.append();
novaBxTitulo.movDispo.classe = -2008888000; /* Movimentação de Disponíveis */
novaBxTitulo.movDispo.disponivel = 38365990; /* Banco do Brasil */
novaBxTitulo.movDispo.tipo = -1897048580 /* DH */
novaBxTitulo.movDispo.emissao = new Date();
novaBxTitulo.movDispo.locescritu = 408425; /* Bematech LocEscritu */
novaBxTitulo.movDispo.historico = "Lc à créd em Bco Brasil ref pgto título 189407291";
novaBxTitulo.movDispo.valor = 300
novaBxTitulo.movDispo.post();
novaBxTitulo.grava();
criar uma nova baixa de vários títulos
Ao instanciar um OperacaoTitulo para criação de uma nova baixa de título, conforme descrito em criar uma nova baixa de título, utilizamos o método buscaPendencia que poderá trazer 1 ou mais títulos pendentes, ou, que poderá ser executado mais de uma vez com o intuito de inserir vários títulos pendentes para serem baixados.
novaBxTitulo.buscaPendencia("CHAVE in (189407291, 189407293, 189407297)");
Em seguida deve ser populado as informações das movimentações de disponíveis que irão realizar a baixa destes títulos, podendo ter mais de uma movimentação.
Para inserir as informações de movimentação de disponível, deve ser manipulada a api de dataset movDispo, executando o método append do dataset e preenchendo as informações, em seguida deve ser executado o método post e seguido por outros conjuntos de append e preenchimento de informações tantas vezes quanto forem necessárias inserção de movimentações de disponível.
As movimentações poderão ter disponíveis e valores distintos ou iguais, porém a soma total das movimentações nunca deve ultrapassar o valor total dos títulos que estão sendo baixados, no exemplo o valor total dos títulos é de 1500.
novaBxTitulo.movDispo.append();
novaBxTitulo.movDispo.classe = -2008888000; /* Movimentação de Disponíveis */
novaBxTitulo.movDispo.disponivel = 11656439; /* Caixa Central */
novaBxTitulo.movDispo.tipo = -1897048580 /* DH */
novaBxTitulo.movDispo.emissao = new Date();
novaBxTitulo.movDispo.locescritu = 408425; /* Bematech LocEscritu */
novaBxTitulo.movDispo.historico = "Lc à créd em Cx Central ref pgto título 189407291";
novaBxTitulo.movDispo.valor = 1000;
novaBxTitulo.movDispo.post();
novaBxTitulo.movDispo.append();
novaBxTitulo.movDispo.classe = -2008888000; /* Movimentação de Disponíveis */
novaBxTitulo.movDispo.disponivel = 38365990; /* Banco do Brasil */
novaBxTitulo.movDispo.tipo = -1897048580 /* DH */
novaBxTitulo.movDispo.emissao = new Date();
novaBxTitulo.movDispo.locescritu = 408425; /* Bematech LocEscritu */
novaBxTitulo.movDispo.historico = "Lc à créd em Bco Brasil ref pgto título 189407291";
novaBxTitulo.movDispo.valor = 500
novaBxTitulo.movDispo.post();
Observação: Os passos acima de popular os dados de movimentações de disponível não são necessários ao desenvolver interfaces com o WebFramework. O tratamento de manipulação de dataset é realizado pelo próprio Framework, bastando a grade de movimentações ter como referência o dataset do objeto.
Em seguida deve ser chamado o grava.
novaBxTitulo.grava();
Exemplo completo no idbc. Há necessidade de trocar as chaves informadas por uma chave da base onde está sendo executado.
__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs
__includeOnce(-1898190356); // ../objects/operacaoTitulo.ijs
var novaBxTitulo = new OperacaoTitulo()
novaBxTitulo.fechaOperacaoNoTerminoDaGravacao = false;
novaBxTitulo.buscaPendencia("CHAVE in (189407291, 189407293, 189407297)");
novaBxTitulo.movDispo.append();
novaBxTitulo.movDispo.classe = -2008888000; /* Movimentação de Disponíveis */
novaBxTitulo.movDispo.disponivel = 11656439; /* Caixa Central */
novaBxTitulo.movDispo.tipo = -1897048580 /* DH */
novaBxTitulo.movDispo.emissao = new Date();
novaBxTitulo.movDispo.locescritu = 408425; /* Bematech LocEscritu */
novaBxTitulo.movDispo.historico = "Lc à créd em Cx Central ref pgto título 189407291";
novaBxTitulo.movDispo.valor = 1000;
novaBxTitulo.movDispo.post();
novaBxTitulo.movDispo.append();
novaBxTitulo.movDispo.classe = -2008888000; /* Movimentação de Disponíveis */
novaBxTitulo.movDispo.disponivel = 38365990; /* Banco do Brasil */
novaBxTitulo.movDispo.tipo = -1897048580 /* DH */
novaBxTitulo.movDispo.emissao = new Date();
novaBxTitulo.movDispo.locescritu = 408425; /* Bematech LocEscritu */
novaBxTitulo.movDispo.historico = "Lc à créd em Bco Brasil ref pgto título 189407291";
novaBxTitulo.movDispo.valor = 500
novaBxTitulo.movDispo.post();
novaBxTitulo.grava();
criar uma nova baixa parcial de um título
Ao instanciar um OperacaoTitulo para criação de uma nova baixa de título, conforme descrito em criar uma nova baixa de título com dados informados, utilizamos o método buscaPendencia, em seguida deve ser populado as informações das movimentações de disponíveis que irão realizar a baixa deste título, podendo ter mais de uma movimentação.
Para inserir as informações de movimentação de disponível, deve ser manipulada a api de dataset movDispo, executando o método append do dataset e preenchendo as informações, em seguida deve ser executado o método post.
As movimentações poderão ter disponíveis e valores distintos ou iguais, porém a soma total das movimentações nunca deve ultrapassar o valor total do título que está sendo baixado. Porém, é possível realizar baixas de títulos com movimentações cujo valor seja inferior ao total do título, estas movimentações são conhecidas como baixas parciais do título e são utilizadas para pagamentos parciais de operações de título.
Um título pode sofrer mais de uma baixa parcial até que seja totalmente liquidado, momento em que o saldo dele será totalmente pago com uma ou mais movimentações de valor idêntico ao seu saldo.
O título irá permanecer pendente até que seja totalmente liquidado, podendo ser buscada sua pendência em outras operações de baixa de título, ocasião em que será inserido o título com o saldo atualizado pendente.
É importante observar que apenas 1 título pode ser baixado parcialmente em uma operação, os demais títulos devem ser baixados totalmente ou ser removidos da operação.
Exemplo completo no idbc de uma operação de baixa parcial. Há necessidade de trocar as chaves informadas por uma chave da base onde está sendo executado.
__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs
__includeOnce(-1898190356); // ../objects/operacaoTitulo.ijs
var novaBxTitulo = new OperacaoTitulo()
novaBxTitulo.fechaOperacaoNoTerminoDaGravacao = false;
novaBxTitulo.buscaPendencia("CHAVE = 189407291");
novaBxTitulo.movDispo.append();
novaBxTitulo.movDispo.classe = -2008888000; /* Movimentação de Disponíveis */
novaBxTitulo.movDispo.disponivel = 11656439; /* Caixa Central */
novaBxTitulo.movDispo.tipo = -1897048580 /* DH */
novaBxTitulo.movDispo.emissao = new Date();
novaBxTitulo.movDispo.locescritu = 408425; /* Bematech LocEscritu */
novaBxTitulo.movDispo.historico = "Lc à créd em Cx Central ref pgto título 189407291";
novaBxTitulo.movDispo.valor = Math.decimalRound(novaBxTitulo.titulo.valor/2, 2); //Metade do valor do título
novaBxTitulo.movDispo.post();
novaBxTitulo.grava();
abrindo baixas de títulos e alterando dados com a chave da movimentação
Para realizar a edição de dados de uma nova baixa de título já gravada anteriormente, deve ser instanciado o OperacaoTitulo.
__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs
__includeOnce(-1898190356); // ../objects/operacaoTitulo.ijs
var novaBxTitulo = new OperacaoTitulo()
Em seguida deve ser utilizado o método abre() do objeto Operacao passando a chave de criação ou a chave de uma das movimentações de disponível.
Este procedimento funcionará para abrir baixas parciais ou baixas completas, tendo em vista que o sistema irá carregar tanto a movimentação que foi informada no parâmetro quanto todas as outras movimentações vinculadas à baixas em questão, bem como todos os títulos vinculados.
novaBxTitulo.abre(245593481);
Em seguida os dados do título podem ser acessados e editados pelo dataset titulo.
novaBxTitulo.titulo.correcao = new Date()
novaBxTitulo.titulo.post();
Os dados das movimentações podem acessados e editados pelo dataset movDispo.
novaBxTitulo.movDispo.emissao = new Date();
novaBxTitulo.movDispo.post();
Caso precise alterar mais de uma movimentação de disponível o dataset movDispo pode ser percorrido para edição.
var movDispo = novaBxTitulo.movDispo;
for (movDispo.first(); !movDispo.eof; movDispo.next() ){
movDispo.emissao = new Date()
movDispo.post();
}
Em seguida deve ser chamado o grava.
novaBxTitulo.grava();
Exemplo completo no idbc. Há necessidade de trocar as chaves informadas por uma chave da base onde está sendo executado.
__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs
__includeOnce(-1898190356); // ../objects/operacaoTitulo.ijs
var novaBxTitulo = new OperacaoTitulo()
novaBxTitulo.abre(245593481);
novaBxTitulo.titulo.correcao = new Date()
novaBxTitulo.titulo.post();
var movDispo = novaBxTitulo.movDispo;
for (movDispo.first(); !movDispo.eof; movDispo.next() ){
movDispo.emissao = new Date()
movDispo.post();
}
novaBxTitulo.grava();
abrindo uma operação baixada com a chave da baixa
Para realizar a edição de dados de uma baixa completa de título já gravada anteriormente, deve ser instanciado o OperacaoTitulo.
__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs
__includeOnce(-1898190356); // ../objects/operacaoTitulo.ijs
var novaBxTitulo = new OperacaoTitulo()
Em seguida deve ser utilizado o método abre() do objeto Operacao passando a chave de baixa do título, esta chave é gravada no campo CHBAIXA do título e corresponde à chave de criação da baixa liquidante do título.
Este procedimento funcionará para abrir baixas completas apenas, tendo em vista que o sistema irá carregar apenas as movimentações que realizaram a baixa liquidante do título e o título que foi liquidado, as baixas parciais que antecederam a baixa liquidante não serão carregadas.
novaBxTitulo.abre(245593481);
Em seguida os dados do título podem ser acessados e editados pelo dataset titulo.
novaBxTitulo.titulo.correcao = new Date()
novaBxTitulo.titulo.post();
Os dados das movimentações podem acessados e editados pelo dataset movDispo.
novaBxTitulo.movDispo.emissao = new Date();
novaBxTitulo.movDispo.post();
Caso precise alterar mais de uma movimentação de disponível o dataset movDispo pode ser percorrido para edição.
var movDispo = novaBxTitulo.movDispo;
for (movDispo.first(); !movDispo.eof; movDispo.next() ){
movDispo.emissao = new Date()
movDispo.post();
}
Em seguida deve ser chamado o grava.
novaBxTitulo.grava();
Exemplo completo no idbc. Há necessidade de trocar as chaves informadas por uma chave da base onde está sendo executado.
__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs
__includeOnce(-1898190356); // ../objects/operacaoTitulo.ijs
var novaBxTitulo = new OperacaoTitulo()
novaBxTitulo.abre(245593481);
novaBxTitulo.titulo.correcao = new Date()
novaBxTitulo.titulo.post();
var movDispo = novaBxTitulo.movDispo;
for (movDispo.first(); !movDispo.eof; movDispo.next() ){
movDispo.emissao = new Date()
movDispo.post();
}
novaBxTitulo.grava();
abrindo uma operação de baixa com a chave do título
Não é possível abrir uma operação de baixa com a chave do título, neste caso o uso da api abre com a chave do título corresponderá ao uso da api buscaPendencia informando como parâmetro a condição sql "CHAVE = NNNNN".
Para calcular o valor corrigido de um título que esteja em um dataset considerando juros, multas e acréscimos até uma data base pode-se utilizar a api calculaValorCorrigido do OperacaoTitulo.
Esta api pode ser utilizada como método de classe, sem que seja necessário realizar a instância de uma nova operação. Ela também é internamente utilizada durante o cálculo, logo, caso esteja em uma operação de baixa de título não se faz necessário o uso da api.
O método recebe como parâmetro o dataset de título posicionado no título que se deseja calcular o valor corrigido, a data base que será calculado o valor corrigido e a indicação de se o valor do título no dataset deve ser atualizado ou não.
O método irá sempre retornar o valor corrigido.
Exemplo completo no idbc. Há necessidade de trocar as chaves informadas por uma chave da base onde está sendo executado.
__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs
__includeOnce(-1898190356); // ../objects/operacaoTitulo.ijs
var dataSetTitulo = database.query("
Select * from titulo where chave = 189407297
");
var valorCorrigido = OperacaoTitulo.calculaValorCorrigido(dataSetTitulo, new Date(), true);
aprovando uma operação de baixa de título
Existem duas configurações que irão influenciar na aprovação e consequentemente na desaprovação de títulos, a primeira é a configuração de x-class controlaAprovacaoDeTitulos, que deve ser configurada no x-class da classe do título como ligada para que o sistema habilite o uso dos métodos aprova e desaprova da operação de título. Caso esta configuração esteja desligada para a classe do título os métodos aprova e desaprova não farão nenhum tipo de alteração na operação e o campo APROVACAO não será preenchido. O padrão do sistema é a configuração ligada.
Concomitantemente à esta configuração existe a configuração de x-class exigeAprovacaoManual, que deve ser configurada no x-class da classe do título como ligada para que o sistema possibilite e exija a aprovação manual do título, não sendo possível realizar baixas sem que o título não esteja aprovado.
O padrão do sistema é a configuração desligada.
No caso de a ambas as configurações estarem ligadas, para aprovar uma nova operação de título, deve ser instanciado o objeto OperacaoTitulo.
__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs
__includeOnce(-1898190356); // ../objects/operacaoTitulo.ijs
var novaBxTitulo = new OperacaoTitulo()
Em seguida deve ser utilizado o método "buscaPendencia" conforme api da Operacao, passando como parâmetro uma condição sql que possibilite identificar o título no banco de dados, no exemplo, utilizaremos o campo CHAVE do título.
novaBxTitulo.buscaPendencia("CHAVE = 189407291");
Para realizar a aprovação do título deve ser utilizado o método aprova.
novaBxTitulo.aprova();
Em seguida pode ser populado as informações da movimentação de disponível que irá realizar a baixa deste título.
Para inserir as informações de movimentação de disponível, deve ser manipulada a api de dataset movDispo, executando o método append do dataset e preenchendo as informações.
novaBxTitulo.movDispo.append();
novaBxTitulo.movDispo.classe = -2008888000; /* Movimentação de Disponíveis */
novaBxTitulo.movDispo.disponivel = 11656439; /* Caixa Central */
novaBxTitulo.movDispo.tipo = -1897048580 /* DH */
novaBxTitulo.movDispo.emissao = new Date();
novaBxTitulo.movDispo.locescritu = 408425; /* Bematech LocEscritu */
novaBxTitulo.movDispo.historico = "Lc à créd em Cx Central ref pgto título 189407291";
novaBxTitulo.movDispo.valor = 505.41;
novaBxTitulo.movDispo.post();
Observação: Os passos acima de popular os dados de movimentações de disponível não são necessários ao desenvolver interfaces com o WebFramework. O tratamento de manipulação de dataset é realizado pelo próprio Framework, bastando a grade de movimentações ter como referência o dataset do objeto.
Em seguida deve ser chamado o grava.
novaBxTitulo.grava();
Exemplo completo no idbc. Há necessidade de trocar as chaves informadas por uma chave da base onde está sendo executado.
__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs
__includeOnce(-1898190356); // ../objects/operacaoTitulo.ijs
var novaBxTitulo = new OperacaoTitulo()
novaBxTitulo.fechaOperacaoNoTerminoDaGravacao = false;
novaBxTitulo.buscaPendencia("CHAVE = 189407291");
novaBxTitulo.aprova();
novaBxTitulo.movDispo.append();
novaBxTitulo.movDispo.classe = -2008888000; /* Movimentação de Disponíveis */
novaBxTitulo.movDispo.disponivel = 11656439; /* Caixa Central */
novaBxTitulo.movDispo.tipo = -1897048580 /* DH */
novaBxTitulo.movDispo.emissao = new Date();
novaBxTitulo.movDispo.locescritu = 408425; /* Bematech LocEscritu */
novaBxTitulo.movDispo.historico = "Lc à créd em Cx Central ref pgto título 189407291";
novaBxTitulo.movDispo.valor = 505.41;
novaBxTitulo.movDispo.post();
novaBxTitulo.grava();
desaprovando uma operação de baixa de título
Existem duas configurações que irão influenciar na aprovação e consequentemente na desaprovação de títulos, a primeira é a configuração de x-class controlaAprovacaoDeTitulos, que deve ser configurada no x-class da classe do título como ligada para que o sistema habilite o uso dos métodos aprova e desaprova da operação de título. Caso esta configuração esteja desligada para a classe do título os métodos aprova e desaprova não farão nenhum tipo de alteração na operação e o campo APROVACAO não será preenchido. O padrão do sistema é a configuração ligada.
Concomitantemente à esta configuração existe a configuração de x-class exigeAprovacaoManual, que deve ser configurada no x-class da classe do título como ligada para que o sistema possibilite e exija a aprovação manual do título, não sendo possível realizar baixas sem que o título não esteja aprovado.
O padrão do sistema é a configuração desligada.
No caso de a ambas as configurações estarem ligadas, para desaprovar um título já gravada no sistema, deve ser instanciado o objeto OperacaoTitulo.
__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs
__includeOnce(-1898190356); // ../objects/operacaoTitulo.ijs
var novaBxTitulo = new OperacaoTitulo()
Em seguida deve ser utilizado o método "buscaPendencia" conforme api da Operacao, passando como parâmetro uma condição sql que possibilite identificar o título no banco de dados, no exemplo, utilizaremos o campo CHAVE do título.
novaBxTitulo.buscaPendencia("CHAVE = 189407291");
Para realizar a desaprovação do título deve ser utilizado o método desaprova.
novaBxTitulo.desaprova();
Em seguida deve ser chamado o grava.
novaBxTitulo.grava();
Exemplo completo no idbc. Há necessidade de trocar as chaves informadas por uma chave da base onde está sendo executado.
__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs
__includeOnce(-1898190356); // ../objects/operacaoTitulo.ijs
var novaBxTitulo = new OperacaoTitulo()
novaBxTitulo.fechaOperacaoNoTerminoDaGravacao = false;
novaBxTitulo.buscaPendencia("CHAVE = 189407291");
novaBxTitulo.desaprova();
novaBxTitulo.grava();
excluindo uma baixa de título
Para excluir uma Baixa de título já gravada anteriormente, deve ser instanciado o OperacaoTitulo e deve ser utilizado o método abre() do objeto Operacao passando a chave de criação da movimentação de disponíve, chave da baixa do título ou a chave de uma das movimentações e em seguida realizar a exclusão de todos os registros de movimentações do dataset movDispo.
__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs
__includeOnce(-1897053223); // ../objects/operacaoTransferenciaDisponivel.js */
var novaBxTitulo = new OperacaoTitulo();
novaBxTitulo.abre(385656810);
novaBxTitulo.movDispo.first();
while (!novaBxTitulo.movDispo.eof) {
novaBxTitulo.movDispo.del();
}
Uma baixa de título não pode ser cancelada, sendo necessário sempre realizar a exclusão.
O método cancela() e o método apaga() do objeto Operacao não estão implementados na OperacaoTitulo.
Em seguida deve ser chamado o grava:
novaBxTitulo.grava()
Exemplo completo no idbc. Há necessidade de trocar as chaves informadas por uma chave da base onde está sendo executado.
__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs
__includeOnce(-1897053223); // ../objects/operacaoTransferenciaDisponivel.js */
var novaBxTitulo = new OperacaoTitulo()
novaBxTitulo.abre(385656810)
novaBxTitulo.movDispo.first()
while (!novaBxTitulo.movDispo.eof) {
novaBxTitulo.movDispo.del();
}
novaBxTitulo.grava()
alterando a carteira de um título
O uso da carteira de cobrança em um título é uma forma de criação de grupos, carteiras, onde estarão localizados os títulos. Assim, sempre será possível identificar onde está localizado um título. Exemplo: um título ao ser criado está em carteira, depois vai para o Bco Itaú Cobr Simples, depois é transferido para CARTORIO, depois vai para ADVOGADO, etc..., cada um dos possível grupos em que o título pode estar representa uma carteira de cobrança.
O título será criado com uma carteira configurada através de seus parâmetros financeiros, para que seja realizada a mudança dessa carteira deve ser instanciado o objeto OperacaoTitulo.
__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs
__includeOnce(-1898190356); // ../objects/operacaoTitulo.ijs
var novaBxTitulo = new OperacaoTitulo()
Em seguida deve ser utilizado o método "buscaPendencia" conforme api da Operacao, passando como parâmetro uma condição sql que possibilite identificar o título no banco de dados, no exemplo, utilizaremos o campo CHAVE do título.
novaBxTitulo.buscaPendencia("CHAVE = 189407291");
Em seguida os dados do título podem ser acessados e editados pelo dataset titulo, neste caso será alterada a carteira:
novaBxTitulo.titulo.carteira = 2137254 /* carteira CredShop*/;
novaBxTitulo.titulo.post();
Em seguida deve ser chamado o grava:
novaBxTitulo.grava()
Exemplo completo no idbc. Há necessidade de trocar as chaves informadas por uma chave da base onde está sendo executado.
__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs
__includeOnce(-1898190356); // ../objects/operacaoTitulo.ijs
var novaBxTitulo = new OperacaoTitulo()
novaBxTitulo.buscaPendencia("CHAVE = 189407291");
novaBxTitulo.titulo.carteira = 2137254 /* carteira CredShop*/;
novaBxTitulo.titulo.post();
novaBxTitulo.grava()
solicitando a alteração de mudança de carteira de um título
É possível que a base esteja configurada para geração de eventos na mudança de carteira, neste caso a classe do título terá a configuração CLACRIAEVENTO com o valor "S". Assim, a realizar a mudança de carteira, serão criados 2 eventos, respectivamente relacionados à saída do título da carteira original e à entrada do título na nova carteira, estes eventos serão aprovados automaticamente e a carteira do título será imediatamente alterada.
Porém, pode ser realizada uma configuraçao em x-class na classe da carteira de cobrança indicando que aquela classe de carteira exige confirmacaoManualDaMudancaDeCarteira, neste caso específico a mudança de carteira ocorrerá em 2 fases, sendo a primeira a solicitação de mudança de carteira, com a criação de eventos de mudança de carteira e a segunda fase com a aprovação dos eventos de mudança de carteira e a efetiva alteração da carteira do título. Esta funcionalidade permitirá um controle maior de onde se encontra a pendência do título e é utilizada principalmente no EDI.
Para que seja realizada a mudança da carteira em 2 fases deve ser instanciado o objeto OperacaoTitulo
__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs
__includeOnce(-1898190356); // ../objects/operacaoTitulo.ijs
var novaBxTitulo = new OperacaoTitulo()
Em seguida deve ser utilizado o método "buscaPendencia" conforme api da Operacao, passando como parâmetro uma condição sql que possibilite identificar o título no banco de dados, no exemplo, utilizaremos o campo CHAVE do título.
novaBxTitulo.buscaPendencia("CHAVE = 189407291");
Em seguida os dados do título podem ser acessados e editados pelo dataset titulo, neste caso será alterada a carteira:
novaBxTitulo.titulo.carteira = 2137254 /* carteira CredShop*/;
novaBxTitulo.titulo.post();
Em seguida deve ser chamado o grava:
novaBxTitulo.grava()
Neste momento serão criados na operação 2 eventos de mudança de carteira no dataset eventos da operação cujo MOTIVO será -1897052514 (Mudança de Carteira), ambos os eventos terão a chave do título no campo TITULO. Os eventos criados são respectivamentes os eventos de saída do título da carteira atual e o evento de entrada do título na nova carteira. Neste momento a carteira do título permanecerá a carteira inicial.
Exemplo completo no idbc. Há necessidade de trocar as chaves informadas por uma chave da base onde está sendo executado.
__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs
__includeOnce(-1898190356); // ../objects/operacaoTitulo.ijs
var novaBxTitulo = new OperacaoTitulo()
novaBxTitulo.buscaPendencia("CHAVE = 189407291");
novaBxTitulo.titulo.carteira = 2137254 /* carteira CredShop*/;
novaBxTitulo.titulo.post();
novaBxTitulo.grava()
aprovando a solicitação de mudança de carteira
Para que seja realizada a aprovação do evento e a alteração efetiva da carteira do título deve ser instanciado o objeto OperacaoTitulo
__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs
__includeOnce(-1898190356); // ../objects/operacaoTitulo.ijs
var novaBxTitulo = new OperacaoTitulo()
Em seguida deve ser utilizado o método "buscaPendencia" conforme api da Operacao, passando como parâmetro uma condição sql que possibilite identificar o título no banco de dados, no exemplo, utilizaremos o campo CHAVE do título.
novaBxTitulo.buscaPendencia("CHAVE = 189407291");
Em seguida devem ser percorridos todos os eventos não confirmados e não cancelados de mudança de carteira do dataset eventos que sejam relativos ao título que se deseja aprovar a mudança de carteira. Para percorrer estes eventos pode ser utilizado o dataset evento da operação.
Para cada evento percorrido deve ser inserido um novo evento de confirmação de mudança de carteira no dataset eventoConfirmacao da operação. O evento de confirmação deverá ter a chave do título que está confirmando a carteira do evento que está confirmando e a classe -1894543016 (Confirmação de Evento Financeiro).
var chaveTitulo = novaBxTitulo.titulo.chave
novaBxTitulo.evento.indexFieldNames = 'TITULO'
if (novaBxTitulo.evento.find(chaveTitulo)) {
while (!novaBxTitulo.evento.eof && novaBxTitulo.evento.titulo == chaveTitulo) {
if ((!novaBxTitulo.evento.eventoconfirmacao) && (!novaBxTitulo.evento.cancelamento) && (novaBxTitulo.evento.motivo == -1897052514 /* Mudança de Carteira */)) {
var carteiraEvento = novaBxTitulo.evento.entidade;
novaBxTitulo.eventoConfirmacao.append();
novaBxTitulo.eventoConfirmacao.entidade = carteiraEvento;
novaBxTitulo.eventoConfirmacao.titulo = novaBxTitulo.titulo.chave;
novaBxTitulo.eventoConfirmacao.data = new Date();
novaBxTitulo.eventoConfirmacao.hora = novaBxTitulo.eventoConfirmacao.data.toString('hh:nn:ss');
novaBxTitulo.eventoConfirmacao.usuario = session.userKey.entidade;
novaBxTitulo.eventoConfirmacao.classe = -1894543016 /* Confirmação de Evento Financeiro */;
novaBxTitulo.eventoConfirmacao.observacao = "Confirmação manual de evento de mudança de carteira";
novaBxTitulo.eventoConfirmacao.post()
}
novaBxTitulo.evento.next()
}
}
Em seguida deve ser chamado o grava:
novaBxTitulo.grava()
Neste momento os eventos de mudança de carteira serão confirmados com base nos dados dos eventos de confirmação de mudança de carteira e então a carteira do título será finalmente alterada para a carteira de destino.
Exemplo completo no idbc. Há necessidade de trocar as chaves informadas por uma chave da base onde está sendo executado.
__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs
__includeOnce(-1898190356); // ../objects/operacaoTitulo.ijs
var novaBxTitulo = new OperacaoTitulo()
novaBxTitulo.fechaOperacaoNoTerminoDaGravacao = false;
novaBxTitulo.buscaPendencia("CHAVE = 333219691");
novaBxTitulo.titulo.carteira = 2137254 /* carteira CredShop*/;
novaBxTitulo.titulo.post();
novaBxTitulo.grava()
novaBxTitulo.fecha()
novaBxTitulo.buscaPendencia("CHAVE = 333219691");
var chaveTitulo = novaBxTitulo.titulo.chave
novaBxTitulo.evento.indexFieldNames = 'TITULO'
if (novaBxTitulo.evento.find(chaveTitulo)) {
while (!novaBxTitulo.evento.eof && novaBxTitulo.evento.titulo == chaveTitulo) {
if ((!novaBxTitulo.evento.eventoconfirmacao) && (!novaBxTitulo.evento.cancelamento) && (novaBxTitulo.evento.motivo == -1897052514 /*Mudança de Carteira */)) {
var carteiraEvento = novaBxTitulo.evento.entidade
novaBxTitulo.eventoConfirmacao.append()
novaBxTitulo.eventoConfirmacao.entidade = carteiraEvento
novaBxTitulo.eventoConfirmacao.titulo = novaBxTitulo.titulo.chave
novaBxTitulo.eventoConfirmacao.data = new Date()
novaBxTitulo.eventoConfirmacao.hora = novaBxTitulo.eventoConfirmacao.data.toString('hh:nn:ss')
novaBxTitulo.eventoConfirmacao.usuario = session.userKey.entidade
novaBxTitulo.eventoConfirmacao.classe = -1894543016 /* Confirmação de Evento Financeiro */
novaBxTitulo.eventoConfirmacao.observacao = "Confirmação manual de evento de mudança de carteira"
novaBxTitulo.eventoConfirmacao.post()
}
novaBxTitulo.evento.next()
}
}
novaBxTitulo.grava()
cancelando a solicitação de mudança de carteira
Para que seja realizado o cancelamento do evento de solicitação de mudança de carteira deve ser instanciado o objeto OperacaoTitulo
__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs
__includeOnce(-1898190356); // ../objects/operacaoTitulo.ijs
var novaBxTitulo = new OperacaoTitulo()
Em seguida deve ser utilizado o método "buscaPendencia" conforme api da Operacao, passando como parâmetro uma condição sql que possibilite identificar o título no banco de dados, no exemplo, utilizaremos o campo CHAVE do título.
novaBxTitulo.buscaPendencia("CHAVE = 189407291");
Em seguida devem ser removidos todos os eventos não confirmados e não cancelados de mudança de carteira do dataset eventos que sejam relativos ao título que se deseja cancelar a mudança de carteira. Para percorrer estes eventos pode ser utilizado o dataset evento da operação.
var chaveTitulo = novaBxTitulo.titulo.chave
novaBxTitulo.evento.indexFieldNames = 'TITULO'
if (novaBxTitulo.evento.find(chaveTitulo)) {
while (!novaBxTitulo.evento.eof && novaBxTitulo.evento.titulo == chaveTitulo) {
if ((!novaBxTitulo.evento.eventoconfirmacao) && (!novaBxTitulo.evento.cancelamento) && (novaBxTitulo.evento.motivo == -1897052514 /* Mudança de Carteira */)) {
novaBxTitulo.evento.del();
} else {
novaBxTitulo.evento.next()
}
}
}
Em seguida deve ser chamado o grava:
novaBxTitulo.grava()
Neste momento os eventos de mudança de carteira serão removidos e então a carteira do título permanecerá a carteira original.
Exemplo completo no idbc. Há necessidade de trocar as chaves informadas por uma chave da base onde está sendo executado.
__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs
__includeOnce(-1898190356); // ../objects/operacaoTitulo.ijs
var novaBxTitulo = new OperacaoTitulo()
novaBxTitulo.fechaOperacaoNoTerminoDaGravacao = false;
novaBxTitulo.buscaPendencia("CHAVE = 333219691");
novaBxTitulo.titulo.carteira = 2137254 /* carteira CredShop*/;
novaBxTitulo.titulo.post();
novaBxTitulo.grava()
novaBxTitulo.fecha()
novaBxTitulo.buscaPendencia("CHAVE = 333219691");
var chaveTitulo = novaBxTitulo.titulo.chave
novaBxTitulo.evento.indexFieldNames = 'TITULO'
if (novaBxTitulo.evento.find(chaveTitulo)) {
while (!novaBxTitulo.evento.eof && novaBxTitulo.evento.titulo == chaveTitulo) {
if ((!novaBxTitulo.evento.eventoconfirmacao) && (!novaBxTitulo.evento.cancelamento) && (novaBxTitulo.evento.motivo == -1897052514 /* Mudança de Carteira */)) {
novaBxTitulo.evento.del();
} else {
novaBxTitulo.evento.next()
}
}
}
novaBxTitulo.grava()