guia técnico do pedido com baixa automática

introdução

Neste guia serão abordadas as funcionalidades relacionadas a Operação de Pedido com Baixa Automática, 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 criação e edição de pedidos com baixa automática.

objetivo

O objetivo deste guia é orientar como utilizar as APIs disponibilizadas para manipular uma Operação de Pedido com Baixa Automática onde iremos explanar desde a criação de um pedido com baixa automática, edição, e as demais funcionalidades como aprovação, cancelamento de um pedido, dentre outras funcionalidades.

Considerando-se a complexidade de um ERP, não serão descritos nesse guia termos introdutórios do sistema.

pré-requisitos

Para a perfeita compreensão do uso do objetos de gestão responsável por manipular Operação de Pedido com Baixa Automática 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.

introdução ao objeto de pedido com baixa automática

De forma macro, existem dois tipos principais de Pedido: o Pedido que posteriormente será baixado e o Pedido com Baixa Automática.

Neste guia será abordado o segundo tipo de pedido descrito: o Pedido com Baixa Automática que tem a característica de ser considerado um pedido até o momento de sua aprovação, dessa forma após aprovado será considerado como pedido baixado. Portanto antes da aprovação todos os cálculos e validações serão realizados da mesma forma que é feito em um pedido que será baixado posteriormente, porém após a provação os cálculos e validações são semelhantes a uma baixa de pedido.

O objeto responsável por manipular as operações de Pedido com Baixa Automática é o OperacaoPedidoBaixaAutomatica. O OperacaoPedidoBaixaAutomatica é uma especialização do objeto OperacaoPedido e desta forma, tem como principais API's seus datasets. Lembrando que como a diferenciação entre um pedido de Compras, Vendas, etc é a classe de operação, o objeto OperacaoPedidoBaixaAutomatica é utilizado para manipular qualquer pedido com baixa automática independente desta classe.

Antes de conhecermos os conceitos e as APIs do objeto de gestão OperacaoPedidoBaixaAutomatica, precisamos entender a base para geração destes dataset que é o modelo de dados do pedido.

Em seguida, devemos conhecer a API do OperacaoPedidoBaixaAutomatica que é uma especialização da Operação de Pedido. Deve ser realizada a leitura do seguinte manual que explica as principais API's do OperacaoPedido: datasets do operacaoPedido.

utilizando o objeto OperacaoPedidoBaixaAutomatica

Para uma melhor visão de como utilizar o OperacaoPedidoBaixaAutomatica abaixo serão listados os principais casos de uso e a explicação de quais as APIs devem ser utilizadas.

instanciando o operacaoPedidoBaixaAutomatica

configurando instância

Ao realizar a instância do OperacaoPedidoBaixaAutomatica deve-se passar qual a classe de configuração de Pedido desejamos instanciar. Essa classe de configuração determina qual configuração de campos será utilizada, ou seja, será pesquisado, por exemplo, a definição da classe de quais campos são de item ou de cabeçalho. Também será base para as pesquisas da Sugestão de Classe e Sugestão de Núcleo quanto ao Tipo de Pedido. Por este motivo, a classe deve ser passada na instância do objeto. No caso de não ser passada nenhuma informação será utilizada a classe mãe -2008879000; /* Pedidos ou Provisões */.

var novoPedidoBaixaAutomatica = new OperacaoPedidoBaixaAutomatica(<informar a chave da classe de configuração do Pedido>);

Exemplo de idbc realizando a instância do OperacaoPedidoBaixaAutomatica utilizando a classe de configuração de Compras. Assim como Compras podem ser utilizadas qualquer classe de Pedido que seja exibida no processo Configuração de Campos do Pedido.

__includeOnce(-1898188424); // /products/INTEQerp infrastructure/library/pedido/objects/operacaoPedidoBaixaAutomatica.ijs

__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs

var novoPedidoBaixaAutomatica = new OperacaoPedidoBaixaAutomatica(-1899999819 /* Entradas */);

aproveitando instância do pedido com baixa automática

Conforme explicado no guia técnico das operações para maior performance é possível aproveitar a instância do OperacaoPedidoBaixaAutomatica e realizar várias operações sem a necessidade de reinstanciar o OperacaoPedidoBaixaAutomatica Ou seja, é possível instanciar somente uma vez o OperacaoPedidoBaixaAutomatica e criar, abrir, editar uma operações após a outra. Para isto faremos uso dos métodos "nova" e "fecha", conforme explicado o passo a passo abaixo.

Ao instanciar um OperacaoPedidoBaixaAutomatica para criação de um novo pedido com baixa automática, conforme descrito em criar um novo pedido com baixa automática com dados informados, utilizamos o método nova() em seguida populamos os datasets pedido e pedidoCab e gravamos utilizando o método grava.

Abaixo temos o código completo para criar um novo pedido.

__includeOnce(-1898188424); // /products/INTEQerp infrastructure/library/pedido/objects/operacaoPedidoBaixaAutomatica.ijs

__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs

var novoPedidoBaixaAutomatica = new OperacaoPedidoBaixaAutomatica(-1899999819 /* Entradas */);

novoPedidoBaixaAutomatica.nova();

novoPedidoBaixaAutomatica.fechaOperacaoNoTerminoDaGravacao = false;

novoPedidoBaixaAutomatica.pedidoCab.estabeleci = 27945820 /* Sanzio Estab */;

novoPedidoBaixaAutomatica.pedidoCab.locescritu = 408425 /* Unum LocEscritu */;

novoPedidoBaixaAutomatica.pedidoCab.pessoa = 39633 /* AGUANAMBI */;

novoPedidoBaixaAutomatica.pedidoCab.post();

novoPedidoBaixaAutomatica.pedido.append();

novoPedidoBaixaAutomatica.pedido.classe = -1899998925 /* C p Consumo */;

novoPedidoBaixaAutomatica.pedido.nucleo = 36925844 /* Almox Análise */;

novoPedidoBaixaAutomatica.pedido.recurso = 42354 /* ANTENA TV */;

novoPedidoBaixaAutomatica.pedido.programaca = new Date();

novoPedidoBaixaAutomatica.pedido.quantidade = 1;

novoPedidoBaixaAutomatica.pedido.unitario = 5;

novoPedidoBaixaAutomatica.pedido.post();

novoPedidoBaixaAutomatica.grava();

Caso seja necessário criar um novo pedido com baixa automática não se faz necessário instanciar outra vez o OperacaoPedidoBaixaAutomatica, 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 do primeiro pedido.

novoPedidoBaixaAutomatica.fecha();

Após fechar caso queria criar um segundo pedido basta chamar o método nova.

novoPedidoBaixaAutomatica.nova();

Em seguida deve ser populado as informações de cabeçalho de itens do pedido com baixa automática.

Para popular as informações do cabeçalho do pedido com baixa automática, basta informar os dados de cabeçalho sem necessidade de dar um append no dataset e ao final executar o post do dataset, visto que o pedidoCab somente tem um item e é preenchido automaticamente pelo objeto, sempre.

novoPedidoBaixaAutomatica.pedidoCab.estabeleci = 27945820 /* Sanzio Estab */;

novoPedidoBaixaAutomatica.pedidoCab.locescritu = 408425 /* Unum LocEscritu */;

novoPedidoBaixaAutomatica.pedidoCab.pessoa = 39633 /* AGUANAMBI */;

novoPedidoBaixaAutomatica.pedidoCab.post();

Para inserir as informações do item do pedido com baixa automática, deve ser manipulada a api de dataset pedido, executando o método append do dataset e preenchendo as informações.

novoPedidoBaixaAutomatica.pedido.append();

novoPedidoBaixaAutomatica.pedido.classe = -1899998925 /* C p Consumo */;

novoPedidoBaixaAutomatica.pedido.nucleo = 36925844 /* Almox Análise */;

novoPedidoBaixaAutomatica.pedido.recurso = 42354 /* ANTENA TV */;novoPedidoBaixaAutomatica.pedido.programaca = new Date();

novoPedidoBaixaAutomatica.pedido.quantidade = 1;

novoPedidoBaixaAutomatica.pedido.unitario = 5;

novoPedidoBaixaAutomatica.pedido.post();

Em seguida deve ser chamado o grava:

novoPedidoBaixaAutomatica.grava();

Exemplo completo no idbc criando dois pedidos com a mesma instância do OperacaoPedidoBaixaAutomatica. Há necessidade de trocar as chaves informadas por uma chave da base onde está sendo executado.

__includeOnce(-1898188424); // /products/INTEQerp infrastructure/library/pedido/objects/operacaoPedidoBaixaAutomatica.ijs

__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs

var novoPedidoBaixaAutomatica = new OperacaoPedidoBaixaAutomatica(-1899999819 /* Entradas */);

novoPedidoBaixaAutomatica.nova();

novoPedidoBaixaAutomatica.fechaOperacaoNoTerminoDaGravacao = false;

novoPedidoBaixaAutomatica.pedidoCab.estabeleci = 27945820 /* Sanzio Estab */;

novoPedidoBaixaAutomatica.pedidoCab.locescritu = 408425 /* Unum LocEscritu */;

novoPedidoBaixaAutomatica.pedidoCab.pessoa = 39633 /* AGUANAMBI */;

novoPedidoBaixaAutomatica.pedidoCab.post();

novoPedidoBaixaAutomatica.pedido.append();

novoPedidoBaixaAutomatica.pedido.classe = -1899998925 /* C p Consumo */;

novoPedidoBaixaAutomatica.pedido.nucleo = 36925844 /* Almox Análise */;

novoPedidoBaixaAutomatica.pedido.recurso = 42354 /* ANTENA TV */;

novoPedidoBaixaAutomatica.pedido.programaca = new Date();

novoPedidoBaixaAutomatica.pedido.quantidade = 1;

novoPedidoBaixaAutomatica.pedido.unitario = 5;

novoPedidoBaixaAutomatica.pedido.post();

novoPedidoBaixaAutomatica.grava();

novoPedidoBaixaAutomatica.fecha();

novoPedidoBaixaAutomatica.nova();

novoPedidoBaixaAutomatica.fechaOperacaoNoTerminoDaGravacao = false;

novoPedidoBaixaAutomatica.pedidoCab.estabeleci = 27945820 /* Sanzio Estab */;

novoPedidoBaixaAutomatica.pedidoCab.locescritu = 408425 /* Unum LocEscritu */;

novoPedidoBaixaAutomatica.pedidoCab.pessoa = 39633 /* AGUANAMBI */;

novoPedidoBaixaAutomatica.pedidoCab.post();

novoPedidoBaixaAutomatica.pedido.append();

novoPedidoBaixaAutomatica.pedido.classe = -1899998925 /* C p Consumo */;

novoPedidoBaixaAutomatica.pedido.nucleo = 36925844 /* Almox Análise */;

novoPedidoBaixaAutomatica.pedido.recurso = 42354 /* ANTENA TV */;

novoPedidoBaixaAutomatica.pedido.programaca = new Date();

novoPedidoBaixaAutomatica.pedido.quantidade = 1;

novoPedidoBaixaAutomatica.pedido.unitario = 5;

novoPedidoBaixaAutomatica.pedido.post();

novoPedidoBaixaAutomatica.grava();

criando pedidos com baixa automática

criar um novo pedido com baixa automática com dados informados

Para realizar a criação de um novo Pedido com Baixa Automática devemos iniciar instanciando o OperacaoPedidoBaixaAutomatica passando a classe mãe das classes de Pedido que iremos utilizar. Ou seja, se iremos realizar pedido de Compras p Consumo, Compras p Consumo ST, etc, devemos instanciar o OperacaoPedido passando a classe Entradas.

__includeOnce(-1898188424); // /products/INTEQerp infrastructure/library/pedido/objects/operacaoPedidoBaixaAutomatica.ijs

__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs

var novoPedidoBaixaAutomatica = new OperacaoPedidoBaixaAutomatica(-1899999819 /* Entradas */);

Em seguida deve ser utilizado o método "nova" conforme api da Operacao.

novoPedidoBaixaAutomatica.nova();

Em seguida deve ser populado as informações de cabeçalho de itens do pedidos.

Para popular as informações do cabeçalho do pedido, basta informar os dados de cabeçalho sem necessidade de dar um append no dataset e ao final executar o post do dataset, visto que o pedidoCab somente tem um item e é preenchido automaticamente pelo objeto, sempre.

novoPedidoBaixaAutomatica.pedidoCab.estabeleci = 27945820 /* Sanzio Estab */;

novoPedidoBaixaAutomatica.pedidoCab.locescritu = 408425 /* Unum LocEscritu */;

novoPedidoBaixaAutomatica.pedidoCab.pessoa = 39633 /* AGUANAMBI */;

novoPedidoBaixaAutomatica.pedidoCab.post();

Para inserir as informações do item do pedido, deve ser manipulada a api de dataset pedido, executando o método append do dataset e preenchendo as informações.

novoPedidoBaixaAutomatica.pedido.append();

novoPedidoBaixaAutomatica.pedido.classe = -1899998925 /* C p Consumo */;

novoPedidoBaixaAutomatica.pedido.nucleo = 36925844 /* Almox Análise */;

novoPedidoBaixaAutomatica.pedido.recurso = 42354 /* ANTENA TV */;

novoPedidoBaixaAutomatica.pedido.programaca = new Date();

novoPedidoBaixaAutomatica.pedido.quantidade = 1;

novoPedidoBaixaAutomatica.pedido.unitario = 5;

novoPedidoBaixaAutomatica.pedido.post();

Observação: Os passos acima de popular tanto o cabeçalho quando o item do pedido, ao desenvolver interfaces com o WebFramework o tratamento de manipulação de dataset é realizado pelo próprio Framework, bastando a grade de item e grade de cabeçalho terem como referência o dataset do objeto.

Em seguida deve ser chamado o grava.

novoPedidoBaixaAutomatica.grava();

Exemplo completo no idbc. Há necessidade de trocar as chaves informadas por uma chave da base onde está sendo executado.

__includeOnce(-1898188424); // /products/INTEQerp infrastructure/library/pedido/objects/operacaoPedidoBaixaAutomatica.ijs

__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs

var novoPedidoBaixaAutomatica = new OperacaoPedidoBaixaAutomatica(-1899999819 /* Entradas */);

novoPedidoBaixaAutomatica.nova();

novoPedidoBaixaAutomatica.fechaOperacaoNoTerminoDaGravacao = false;

novoPedidoBaixaAutomatica.pedidoCab.estabeleci = 27945820 /* Sanzio Estab */;

novoPedidoBaixaAutomatica.pedidoCab.locescritu = 408425 /* Unum LocEscritu */;

novoPedidoBaixaAutomatica.pedidoCab.pessoa = 39633 /* AGUANAMBI */;

novoPedidoBaixaAutomatica.pedidoCab.post();

novoPedidoBaixaAutomatica.pedido.append();

novoPedidoBaixaAutomatica.pedido.classe = -1899998925 /* C p Consumo */;

novoPedidoBaixaAutomatica.pedido.nucleo = 36925844 /* Almox Análise */;

novoPedidoBaixaAutomatica.pedido.recurso = 42354 /* ANTENA TV */;

novoPedidoBaixaAutomatica.pedido.programaca = new Date();

novoPedidoBaixaAutomatica.pedido.quantidade = 1;

novoPedidoBaixaAutomatica.pedido.unitario = 5;

novoPedidoBaixaAutomatica.pedido.post();

novoPedidoBaixaAutomatica.grava();

criar um novo pedido com baixa automática utilizando as sugestões

Como realizar a criação de um novo Pedido com Baixa Automática utilizando as sugestões de classe, sugestão de núcleo e regras de preço.

Para realizar a criação de um novo Pedido com Baixa Automática devemos iniciar instanciando o OperacaoPedidoBaixaAutomatica passando a classe mãe das classes de Pedido que iremos utilizar. Ou seja, se iremos realizar pedido de Compras p Consumo, Compras p Consumo ST, etc, devemos instanciar o OperacaoPedidoBaixaAutomatica passando a classe Entradas.

__includeOnce(-1898188424); // /products/INTEQerp infrastructure/library/pedido/objects/operacaoPedidoBaixaAutomatica.ijs

__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs

var novoPedidoBaixaAutomatica = new OperacaoPedidoBaixaAutomatica(-1899999819 /* Entradas */);

Em seguida deve ser utilizado o método "nova" conforme api da Operacao.

novoPedidoBaixaAutomatica.nova();

Em seguida deve ser populado as informações de cabeçalho de itens do pedidos.

Para popular as informações do cabeçalho do pedido, basta informar os dados de cabeçalho sem necessidade de dar um append no dataset e ao final executar o post do dataset, visto que o pedidoCab somente tem um item e é preenchido automaticamente pelo objeto, sempre.

novoPedidoBaixaAutomatica.pedidoCab.estabeleci = 27945820 /* Sanzio Estab */;

novoPedidoBaixaAutomatica.pedidoCab.locescritu = 408425 /* Unum LocEscritu */;

novoPedidoBaixaAutomatica.pedidoCab.pessoa = 39633 /* AGUANAMBI */;

novoPedidoBaixaAutomatica.pedidoCab.post();

Para inserir as informações do item do pedido, deve ser manipulada a api de dataset pedido, executando o método append do dataset e preenchendo inicialmente o campo do recurso que será utilizado nas APIs de sugestão.

novoPedidoBaixaAutomatica.pedido.append();

novoPedidoBaixaAutomatica.pedido.recurso = 42354 /* ANTENA TV */;

A primeira sugestão a ser pesquisada será a Sugestão de Classe.

novoPedidoBaixaAutomatica.pedido.classe = SugestaoPedido.pegaSugestaoClasse(novoPedidoBaixaAutomatica.pedidoCab, novoPedidoBaixaAutomatica.pedido);

Para a pesquisa da sugestão de classe devem ser informados os datasets de cabeçalho e item populados com as informações que impactam na sugestão de classe (recurso, núcleo, pessoa, local de escrituração e tipo de saída). A informação de "Tipo de Pedido" do cadastro de Sugestão de Classe deverá ser passada para o método pegaSugestaoClasse através do parâmetro opcional "extrafilter" onde deve ser informada a mesma classe de configuração informada na instância do OperacaoPedidoBaixaAutomatica.

var extraFilter = [["classepedido", -1899999819 /* Entradas */]];

novoPedidoBaixaAutomatica.pedido.classe = SugestaoPedido.pegaSugestaoClasse(novoPedidoBaixaAutomatica.pedidoCab, novoPedidoBaixaAutomatica.pedido, extraFilter);

Em seguida deverá ser pesquisada a Sugestão de Núcleo, isso porque a sugestão de núcleo leva em consideração a classe do item já pesquisada anteriormente.

novoPedidoBaixaAutomatica.pedido.nucleo = SugestaoPedido.pegaSugestaoNucleo(novoPedidoBaixaAutomatica.pedidoCab, novoPedidoBaixaAutomatica.pedido);

Para a pesquisa da sugestão de núcleo devem ser informados os datasets de cabeçalho e item populados com as informações que impactam na sugestão de núcleo (classe operação, local de escrituração, estabelecimento, recurso e pessoa).

Em seguida deverá ser pesquisado o preço do recurso para preenchimento do campo unitário.

novoPedidoBaixaAutomatica.pedido.unitario = novoPedidoBaixaAutomatica.pegaPrecoUnitarioPedido(novoPedidoBaixaAutomatica.pedido, novoPedidoBaixaAutomatica.pedidoCab);

Em seguida devem ser preenchidos os demais campos do dataset pedido.

novoPedidoBaixaAutomatica.pedido.programaca = new Date();

novoPedidoBaixaAutomatica.pedido.quantidade = 1;

novoPedidoBaixaAutomatica.pedido.post();

Em seguida deve ser chamado o grava.

novoPedidoBaixaAutomatica.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(-1898188424); // /products/INTEQerp infrastructure/library/pedido/objects/operacaoPedidoBaixaAutomatica.ijs

__includeOnce(-1894443575); // /products/INTEQerp infrastructure/library/pedido/misc/SugestaoPedido.ijs

var novoPedidoBaixaAutomatica = new OperacaoPedidoBaixaAutomatica(-1899999819 /* Entradas */);

novoPedidoBaixaAutomatica.nova();

novoPedidoBaixaAutomatica.fechaOperacaoNoTerminoDaGravacao = false;

novoPedidoBaixaAutomatica.pedidoCab.estabeleci = 27945820 /* Sanzio Estab */;

novoPedidoBaixaAutomatica.pedidoCab.locescritu = 408425 /* Unum LocEscritu */;

novoPedidoBaixaAutomatica.pedidoCab.pessoa = 39633 /* AGUANAMBI */;

novoPedidoBaixaAutomatica.pedidoCab.post();

novoPedidoBaixaAutomatica.pedido.append();

novoPedidoBaixaAutomatica.pedido.recurso = 42354 /* ANTENA TV */;

var extraFilter = [["classepedido", -1899999819 /* Entradas */]];

novoPedidoBaixaAutomatica.pedido.classe = SugestaoPedido.pegaSugestaoClasse(novoPedidoBaixaAutomatica.pedidoCab, novoPedidoBaixaAutomatica.pedido, extraFilter);

novoPedidoBaixaAutomatica.pedido.nucleo = SugestaoPedido.pegaSugestaoNucleo(novoPedidoBaixaAutomatica.pedidoCab, novoPedidoBaixaAutomatica.pedido);

novoPedidoBaixaAutomatica.pedido.programaca = new Date();

novoPedidoBaixaAutomatica.pedido.quantidade = 1;

novoPedidoBaixaAutomatica.pedido.unitario = novoPedidoBaixaAutomatica.pegaPrecoUnitarioPedido(novoPedidoBaixaAutomatica.pedido, novoPedidoBaixaAutomatica.pedidoCab);

novoPedidoBaixaAutomatica.pedido.post();

novoPedidoBaixaAutomatica.grava();

criar um novo pedido com baixa automática e selecionando uma negociação

Para realizar a criação de um novo Pedido com Baixa Automática devemos iniciar instanciando o OperacaoPedidoBaixaAutomatica passando a classe mãe das classes de Pedido que iremos utilizar. Ou seja, se iremos realizar pedido de Compras p Consumo, Compras p Consumo ST, etc, devemos instanciar o OperacaoPedido passando a classe Entradas.

__includeOnce(-1898188424); // /products/INTEQerp infrastructure/library/pedido/objects/operacaoPedidoBaixaAutomatica.ijs

__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs

var novoPedidoBaixaAutomatica = new OperacaoPedidoBaixaAutomatica(-1899999819 /* Entradas */);

Em seguida deve ser utilizado o método "nova" conforme api da Operacao.

novoPedidoBaixaAutomatica.nova();

Em seguida deve ser populado as informações de cabeçalho de itens do pedidos.

Para popular as informações do cabeçalho do pedido, basta informar os dados de cabeçalho sem necessidade de dar um append no dataset e ao final executar o post do dataset, visto que o pedidoCab somente tem um item e é preenchido automaticamente pelo objeto, sempre.

novoPedidoBaixaAutomatica.pedidoCab.estabeleci = 27945820 /* Sanzio Estab */;

novoPedidoBaixaAutomatica.pedidoCab.locescritu = 408425 /* Unum LocEscritu */;

novoPedidoBaixaAutomatica.pedidoCab.pessoa = 39633 /* AGUANAMBI */;

novoPedidoBaixaAutomatica.pedidoCab.post();

Para inserir as informações do item do pedido, deve ser manipulada a api de dataset pedido, executando o método append do dataset e preenchendo as informações.

novoPedidoBaixaAutomatica.pedido.append();

novoPedidoBaixaAutomatica.pedido.classe = -1899998925 /* C p Consumo */;

novoPedidoBaixaAutomatica.pedido.nucleo = 36925844 /* Almox Análise */;

novoPedidoBaixaAutomatica.pedido.recurso = 42354 /* ANTENA TV */;

novoPedidoBaixaAutomatica.pedido.programaca = new Date();

novoPedidoBaixaAutomatica.pedido.quantidade = 1;

novoPedidoBaixaAutomatica.pedido.unitario = 5;

novoPedidoBaixaAutomatica.pedido.post();

Antes de realizar a aprovação de um pedido com baixa automática, deve ser considerado o comportamento configurado para a classe do pedido.

  • Nos casos onde a classe do item do pedido está configurada para exigir negociação (verificar se campo “Exige Negociação” no cadastro de classes está preenchido com "Sim" ou se alguma classe mãe estiver com a configuração indicando "Sim"), a operação exigirá negociação antes da aprovação.

  • Nos casos onde a classe do item do pedido não está configurada para exigir negociação a operação pode ser aprovada sem negociação

Para realizar a negociação a operação precisa estar calculada.

novoPedidoBaixaAutomatica.calcula();

Estamos considerando no exemplo abaixo uma operação que ainda não foi negociada, então vamos primeiro carregar a negociação.

var itens = novoPedidoBaixaAutomatica.negociacaoDoPedido.itens;

itens.carrega();

Em seguida deve ser selecionado o item de negociação, neste exemplo vamos negociar no item "Todos" considerando que os recursos da operação não tem condição própria.

var item = itens.pegaItem(IdItens.TODOS);

Em seguida deve ser realizada a busca das condições de negociação que estão disponíveis para negociação.

item.condicoesDeNegociacao.busca();

A busca monta todas as sugestões de negociação que poderão ser verificadas no dataset "item.condicoesDeNegociacao.sugestoesDeNegociacao". Após verificar as sugestões será necessário selecionar umas das sugestões de negociação, indicando qual a condição de negociação que será negociada, qual o tipo de documento, bandeira e o número de parcelas.

var condNeg = 40723273 /* A Vista Dinheiro Compras */;

var tipoDoc = -1899931623 /* Dinheiro */;

var bandeira = null;

var numParcelas = 1;

var identificadorSugestao = {

condNeg: condNeg, tipoDocumento: tipoDoc, bandeira: bandeira, numParcelas: numParcelas

};

var valorANegociar = novoPedidoBaixaAutomaticac.pedidoCab.totalnegociado - novoPedidoBaixaAutomatica.pedidoCab.acrescnegfin + novoPedidoBaixaAutomatica.pedidoCab.descnegfin;

var sugestaoSelecionada = itens.selecionaSugestao(item.id, valorANegociar, identificadorSugestao);

Para visualizar as parcelas geradas após ter sido selecionado a sugestão.

sugestaoSelecionada.calcula(identificadorSugestao);

sugestaoSelecionada.parcelas;

Caso tenha uma operação que já tenha sido negociada e se deseje reiniciar a negociação para fazer uma nova negociação.

var itens = novoPedidoBaixaAutomatica.negociacaoDoPedido.itens;

itens.reinicia();

Em seguida deve ser chamado o aprova. Deve ser considerado que para aprovar um pedido com baixa automática o número da baixa deve ser informado no dataset pedidoCab e a data de movimentação deve ser informada no dataset pedido.

novoPedidoBaixaAutomatica.pedidoCab.numero = novoPedidoBaixaAutomatica.pedidoCab.chcriacao; /*aqui deve ser informado o número da baixa, que em operações de entrada deve ser o número da nota emitida pelo fornecedor. No exemplo, estamos utilizando a chave de criação da baixa automática. */

novoPedidoBaixaAutomatica.pedidoCab.post();

novoPedidoBaixaAutomatica.pedido.movimentac = new Date();

novoPedidoBaixaAutomatica.pedido.movimentach = novoPedidoBaixaAutomatica.pedido.movimentac.toString("hh:nn:ss");

novoPedidoBaixaAutomatica.pedido.post();

novoPedidoBaixaAutomatica.aprova();

Em seguida deve ser chamado o grava.

novoPedidoBaixaAutomatica.grava();

Exemplo completo no idbc. Há necessidade de trocar as chaves informadas por uma chave da base onde está sendo executado.

__includeOnce(-1898188424); // /products/INTEQerp infrastructure/library/pedido/objects/operacaoPedidoBaixaAutomatica.ijs

__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs

var novoPedidoBaixaAutomatica = new OperacaoPedidoBaixaAutomatica(-1899999819 /* Entradas */);

novoPedidoBaixaAutomatica.nova();

novoPedidoBaixaAutomatica.pedidoCab.estabeleci = 27945820 /* Sanzio Estab */;

novoPedidoBaixaAutomatica.pedidoCab.locescritu = 408425 /* Unum LocEscritu */;

novoPedidoBaixaAutomatica.pedidoCab.pessoa = 39633 /* AGUANAMBI */;

novoPedidoBaixaAutomatica.pedidoCab.post();

novoPedidoBaixaAutomatica.pedido.append();

novoPedidoBaixaAutomatica.pedido.classe = -1899998925 /* C p Consumo */;

novoPedidoBaixaAutomatica.pedido.nucleo = 36925844 /* Almox Análise */;

novoPedidoBaixaAutomatica.pedido.recurso = 42354 /* ANTENA TV */;

novoPedidoBaixaAutomatica.pedido.programaca = new Date();

novoPedidoBaixaAutomatica.pedido.quantidade = 1;

novoPedidoBaixaAutomatica.pedido.unitario = 5;

novoPedidoBaixaAutomatica.pedido.post();

novoPedidoBaixaAutomatica.calcula();

var itens = novoPedidoBaixaAutomatica.negociacaoDoPedido.itens;

itens.reinicia();

itens.carrega();

var item = itens.pegaItem(IdItens.TODOS);

item.condicoesDeNegociacao.busca();

var condNeg = 40723273 /* A Vista Dinheiro Compras */;

var tipoDoc = -1899931623 /* Dinheiro */;

var bandeira = null;

var numParcelas = 1;

var identificadorSugestao = {

condNeg: condNeg, tipoDocumento: tipoDoc, bandeira: bandeira, numParcelas: numParcelas

};

var valorANegociar = novoPedidoBaixaAutomatica.pedidoCab.totalnegociado - novoPedidoBaixaAutomatica.pedidoCab.acrescnegfin + novoPedidoBaixaAutomatica.pedidoCab.descnegfin;

var sugestaoSelecionada = itens.selecionaSugestao(item.id, valorANegociar, identificadorSugestao);

novoPedidoBaixaAutomatica.pedidoCab.numero = novoPedidoBaixaAutomatica.pedidoCab.chcriacao; /*aqui deve ser informado o número da baixa, que em operações de entrada deve ser o número da nota emitida pelo fornecedor. No exemplo, estamos utilizando a chave de criação da baixa automática. */

novoPedidoBaixaAutomatica.pedidoCab.post();

novoPedidoBaixaAutomatica.pedido.movimentac = new Date();

novoPedidoBaixaAutomatica.pedido.movimentach = novoPedidoBaixaAutomatica.pedido.movimentac.toString("hh:nn:ss");

novoPedidoBaixaAutomatica.pedido.post();

novoPedidoBaixaAutomatica.aprova();

novoPedidoBaixaAutomatica.grava();

criar um novo pedido com baixa automática sem gravar as informações

Para realizar a criação de um novo Pedido com Baixa Automática, porém sem persistir as informações no banco de dados, deve ser informado "false" para a propriedade "applyUpdatesDosDataSetsNaGravacao" do objeto Operacao.

var novoPedidoBaixaAutomatica = new OperacaoPedidoBaixaAutomatica(-1899999819 /* Entradas */);

novoPedidoBaixaAutomatica.applyUpdatesDosDataSetsNaGravacao = false;

Ao instanciar o objeto OperacaoPedidoBaixaAutomatica o padrão desta propriedade é "true", ao informar "false" a operação poderá ser calculada, aprovada e gravada, realizando todas as validações da operação, porém ao executar o método grava() as alterações não serão gravadas no banco de dados.

Exemplo completo no idbc onde iremos simular a criação de um pedido, porém sem gravar a informação no banco de dados. 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(-1898188424); // /products/INTEQerp infrastructure/library/pedido/objects/operacaoPedidoBaixaAutomatica.ijs

__includeOnce(-1894443575); // /products/INTEQerp infrastructure/library/pedido/misc/SugestaoPedido.ijs

var novoPedidoBaixaAutomatica = new OperacaoPedidoBaixaAutomatica(-1899999819 /* Entradas */);

novoPedidoBaixaAutomatica.nova();

novoPedidoBaixaAutomatica.fechaOperacaoNoTerminoDaGravacao = false;

novoPedidoBaixaAutomatica.applyUpdatesDosDataSetsNaGravacao = false;

novoPedidoBaixaAutomatica.pedidoCab.estabeleci = 27945820 /* Sanzio Estab */;

novoPedidoBaixaAutomatica.pedidoCab.locescritu = 408425 /* Unum LocEscritu */;

novoPedidoBaixaAutomatica.pedidoCab.pessoa = 39633 /* AGUANAMBI */;

novoPedidoBaixaAutomatica.pedidoCab.post();

novoPedidoBaixaAutomatica.pedido.append();

novoPedidoBaixaAutomatica.pedido.classe = -1899998925 /* C p Consumo */;

novoPedidoBaixaAutomatica.pedido.nucleo = 36925844 /* Almox Análise */;

novoPedidoBaixaAutomatica.pedido.recurso = 42354 /* ANTENA TV */;

novoPedidoBaixaAutomatica.pedido.programaca = new Date();

novoPedidoBaixaAutomatica.pedido.quantidade = 1;

novoPedidoBaixaAutomatica.pedido.unitario = 5;

novoPedidoBaixaAutomatica.pedido.post();

novoPedidoBaixaAutomatica.grava();

criar um novo pedido com baixa automática aprovado

Para realizar a criação de um novo Pedido com Baixa Automática, devemos iniciar instanciando o OperacaoPedidoBaixaAutomatica passando a classe mãe das classes de Pedido que iremos utilizar. Ou seja, se iremos realizar pedido de Compras p Consumo, Compras p Consumo ST, etc, devemos instanciar o OperacaoPedido passando a classe Entradas.

__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs

__includeOnce(-1898188424); // /products/INTEQerp infrastructure/library/pedido/objects/operacaoPedidoBaixaAutomatica.ijs

var novoPedidoBaixaAutomatica = new OperacaoPedidoBaixaAutomatica(-1899999819 /* Entradas */);

Em seguida deve ser utilizado o método "nova" conforme api da Operacao.

novoPedidoBaixaAutomatica.nova();

Em seguida deve ser populado as informações de cabeçalho de itens do pedidos.

Para popular as informações do cabeçalho do pedido, basta informar os dados de cabeçalho sem necessidade de dar um append no dataset e ao final executar o post do dataset, visto que o pedidoCab somente tem um item e é preenchido automaticamente pelo objeto, sempre.

novoPedidoBaixaAutomatica.pedidoCab.estabeleci = 27945820 /* Sanzio Estab */;

novoPedidoBaixaAutomatica.pedidoCab.locescritu = 408425 /* Unum LocEscritu */;

novoPedidoBaixaAutomatica.pedidoCab.pessoa = 39633 /* AGUANAMBI */;

novoPedidoBaixaAutomatica.pedidoCab.post();

Para inserir as informações do item do pedido, deve ser manipulada a api de dataset pedido, executando o método append do dataset e preenchendo as informações.

novoPedidoBaixaAutomatica.pedido.append();

novoPedidoBaixaAutomatica.pedido.classe = -1899998901 /* C Fr Rodov */;

novoPedidoBaixaAutomatica.pedido.nucleo = 36925844 /* Almox Análise */;

novoPedidoBaixaAutomatica.pedido.recurso = 42354 /* ANTENA TV */;

novoPedidoBaixaAutomatica.pedido.programaca = new Date();

novoPedidoBaixaAutomatica.pedido.quantidade = 1;

novoPedidoBaixaAutomatica.pedido.unitario = 5;

novoPedidoBaixaAutomatica.pedido.post();

Uma operação de Pedido com Baixa Automática tem a característica de ser considerado um pedido até o momento de sua aprovação, dessa forma após aprovado será considerado como pedido baixado. Portanto antes da aprovação todos os cálculos e validações serão realizados da mesma forma que é feito em um pedido que será baixado posteriormente, porém após a provação os cálculos e validações são semelhantes a uma baixa de pedido.

Antes de realizar a aprovação de um pedido, deve ser considerado o comportamento configurado para a classe do pedido em relação a obrigatoriedade para realizar a negociação do pedido, conforme descrito em criar um novo pedido e selecionando uma negociação. Dessa forma antes de aprovar, caso necessário o pedido deve ser negociado.

Em seguida deve ser chamado o aprova. Deve ser considerado que para aprovar um pedido com baixa automática o número da baixa deve ser informado no dataset pedidoCab e a data de movimentação deve ser informada no dataset pedido.

novoPedidoBaixaAutomatica.pedidoCab.numero = novoPedidoBaixaAutomatica.pedidoCab.chcriacao; /*aqui deve ser informado o número da baixa, que em operações de entrada deve ser o número da nota emitida pelo fornecedor. No exemplo, estamos utilizando a chave de criação da baixa automática. */

novoPedidoBaixaAutomatica.pedidoCab.post();

novoPedidoBaixaAutomatica.pedido.movimentac = new Date();

novoPedidoBaixaAutomatica.pedido.movimentach = novoPedidoBaixaAutomatica.pedido.movimentac.toString("hh:nn:ss");

novoPedidoBaixaAutomatica.pedido.post();

novoPedidoBaixaAutomatica.aprova();

Em seguida deve ser chamado o grava.

novoPedidoBaixaAutomatica.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(-1898188424); // /products/INTEQerp infrastructure/library/pedido/objects/operacaoPedidoBaixaAutomatica.ijs

var novoPedidoBaixaAutomatica = new OperacaoPedidoBaixaAutomatica(-1899999819 /* Entradas */);

novoPedidoBaixaAutomatica.nova();

novoPedidoBaixaAutomatica.fechaOperacaoNoTerminoDaGravacao = false;

novoPedidoBaixaAutomatica.pedidoCab.estabeleci = 27945820 /* Sanzio Estab */;

novoPedidoBaixaAutomatica.pedidoCab.locescritu = 408425 /* Unum LocEscritu */;

novoPedidoBaixaAutomatica.pedidoCab.pessoa = 39633 /* AGUANAMBI */;

novoPedidoBaixaAutomatica.pedidoCab.post();

novoPedidoBaixaAutomatica.pedido.append();

novoPedidoBaixaAutomatica.pedido.classe = -1899998901 /* C Fr Rodov */;

novoPedidoBaixaAutomatica.pedido.nucleo = 36925844 /* Almox Análise */;

novoPedidoBaixaAutomatica.pedido.recurso = 42354 /* ANTENA TV */;

novoPedidoBaixaAutomatica.pedido.programaca = new Date();

novoPedidoBaixaAutomatica.pedido.quantidade = 1;

novoPedidoBaixaAutomatica.pedido.unitario = 5;

novoPedidoBaixaAutomatica.pedido.post();

novoPedidoBaixaAutomatica.pedidoCab.numero = novoPedidoBaixaAutomatica.pedidoCab.chcriacao; /*aqui deve ser informado o número da baixa, que em operações de entrada deve ser o número da nota emitida pelo fornecedor. No exemplo, estamos utilizando a chave de criação da baixa automática. */

novoPedidoBaixaAutomatica.pedidoCab.post();

novoPedidoBaixaAutomatica.pedido.movimentac = new Date();

novoPedidoBaixaAutomatica.pedido.movimentach = novoPedidoBaixaAutomatica.pedido.movimentac.toString("hh:nn:ss");

novoPedidoBaixaAutomatica.pedido.post();

novoPedidoBaixaAutomatica.aprova();

novoPedidoBaixaAutomatica.grava();

criar um novo pedido com baixa automática a partir de outro pedido com baixa automática

Para realizar a criação de um novo Pedido com Baixa Automática copiando informações de um outro Pedido com Baixa Automática, gravado anteriormente, devem existir duas instâncias do objeto OperacaoPedidoBaixaAutomatica.

__includeOnce(-1898188424); // /products/INTEQerp infrastructure/library/pedido/objects/operacaoPedidoBaixaAutomatica.ijs

__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs

var novoPedidoBaixaAutomatica = new OperacaoPedidoBaixaAutomatica(-1899999819 /* Entradas */);

var pedidoBaixaAutomaticaOrigem = new OperacaoPedidoBaixaAutomatica(-1899999819 /* Entradas */);

Em seguida deve abrir a operação com o pedido origem que se deseja duplicar, informando para o método abre() a chave de criação do pedido origem.

pedidoBaixaAutomaticaOrigem.abre(386075325);

O novo pedido a ser criado será copiado sem a necessidade de chamar o método nova(), pois o método copia() do objeto Operacao já chama o método nova(). Deve ser passado como parâmetro a operação origem já aberta e em seguida a operação com o novo pedido pode ser calculada, aprovada, gravada, etc.

novoPedidoBaixaAutomatica.copia(pedidoBaixaAutomaticaOrigem);

Em seguida deve ser chamado o grava.

novoPedidoBaixaAutomatica.grava();

Exemplo completo no idbc.

__includeOnce(-1898188424); // /products/INTEQerp infrastructure/library/pedido/objects/operacaoPedidoBaixaAutomatica.ijs

__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs

var novoPedidoBaixaAutomatica = new OperacaoPedidoBaixaAutomatica(-1899999819 /* Entradas */);

var pedidoBaixaAutomaticaOrigem = new OperacaoPedidoBaixaAutomatica(-1899999819 /* Entradas */);

pedidoBaixaAutomaticaOrigem.abre(386075325);

novoPedidoBaixaAutomatica.copia(pedidoBaixaAutomaticaOrigem);

novoPedidoBaixaAutomatica.grava();

abrindo e alterando

abrindo pedido com baixa automática e alterando dados

Para realizar a edição de dados de um Pedido com Baixa automática já gravado anteriormente, deve ser instanciado o OperacaoPedidoBaixaAutomatica.

__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs

__includeOnce(-1898188424); // /products/INTEQerp infrastructure/library/pedido/objects/operacaoPedidoBaixaAutomatica.ijs

var novoPedidoBaixaAutomatica = new OperacaoPedidoBaixaAutomatica(-1899999819 /* Entradas */);

Em seguida deve ser utilizado o método abre() do objeto Operacao passando a chave de criação da operação.

novoPedidoBaixaAutomatica.abre(386125623);

Em seguida os dados do cabeçalho podem ser acessados e editados pelo dataset pedidoCab.

novoPedidoBaixaAutomatica.pedidoCab.estabeleci = 27945820 /* Sanzio Estab */;

novoPedidoBaixaAutomatica.pedidoCab.post();

Os dados dos itens podem acessados e editados pelo dataset pedido.

novoPedidoBaixaAutomatica.pedido.quantidade = 2;

novoPedidoBaixaAutomatica.pedido.post();

Caso precise alterar mais de um item do pedido o dataset pedido pode ser percorrido para edição.

var pedido = novoPedidoBaixaAutomatica.pedido;

for (pedido.first(); !pedido.eof; pedido.next() ){

pedido.quantidade = pedido.quantidade * 2;

pedido.post();

}

Em seguida deve ser chamado o grava.

novoPedidoBaixaAutomatica.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(-1898188424); // /products/INTEQerp infrastructure/library/pedido/objects/operacaoPedidoBaixaAutomatica.ijs

var novoPedidoBaixaAutomatica = new OperacaoPedidoBaixaAutomatica(-1899999819 /* Entradas */);

novoPedidoBaixaAutomatica.abre(386125623);

novoPedidoBaixaAutomatica.pedidoCab.estabeleci = 27945820 /* Sanzio Estab */;

novoPedidoBaixaAutomatica.pedidoCab.post();

var pedido = novoPedidoBaixaAutomatica.pedido;

for (pedido.first(); !pedido.eof; pedido.next() ){

pedido.quantidade = pedido.quantidade * 2;

pedido.post();

}

novoPedidoBaixaAutomatica.grava();

abrindo pedido com baixa automática e aprovando

Para aprovar um Pedido com Baixa automática já gravado anteriormente, deve ser instanciado o OperacaoPedidoBaixaAutomatica.

__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs

__includeOnce(-1898188424); // /products/INTEQerp infrastructure/library/pedido/objects/operacaoPedidoBaixaAutomatica.ijs

var novoPedidoBaixaAutomatica = new OperacaoPedidoBaixaAutomatica(-1899999819 /* Entradas */);

Em seguida deve ser utilizado o método abre() do objeto Operacao passando a chave de criação da operação.

novoPedidoBaixaAutomatica.abre(386125628);

Uma operação de Pedido com Baixa Automática tem a característica de ser considerado um pedido até o momento de sua aprovação, dessa forma após aprovado será considerado como pedido baixado. Portanto antes da aprovação todos os cálculos e validações serão realizados da mesma forma que é feito em um pedido que será baixado posteriormente, porém após a provação os cálculos e validações são semelhantes a uma baixa de pedido.

Antes de realizar a aprovação de um pedido, deve ser considerado o comportamento configurado para a classe do pedido em relação a obrigatoriedade para realizar a negociação do pedido, conforme descrito em criar um novo pedido e selecionando uma negociação. Dessa forma antes de aprovar, caso necessário o pedido deve ser negociado.

Considerando que a classe do pedido não exija a negociação, para realizar a aprovação do pedido deve ser utilizado o método aprova. Deve ser considerado que para aprovar um pedido com baixa automática o número da baixa deve ser informado no dataset pedidoCab e a data de movimentação deve ser informada no dataset pedido.

novoPedidoBaixaAutomatica.pedidoCab.numero = novoPedidoBaixaAutomatica.pedidoCab.chcriacao; /*aqui deve ser informado o número da baixa, que em operações de entrada deve ser o número da nota emitida pelo fornecedor. No exemplo, estamos utilizando a chave de criação da baixa automática. */

novoPedidoBaixaAutomatica.pedidoCab.post();

novoPedidoBaixaAutomatica.pedido.movimentac = new Date();

novoPedidoBaixaAutomatica.pedido.movimentach = novoPedidoBaixaAutomatica.pedido.movimentac.toString("hh:nn:ss");

novoPedidoBaixaAutomatica.pedido.post();

novoPedidoBaixaAutomatica.aprova();

Em seguida deve ser chamado o grava.

novoPedidoBaixaAutomatica.grava();

Exemplo completo no idbc.

__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs

__includeOnce(-1898188424); // /products/INTEQerp infrastructure/library/pedido/objects/operacaoPedidoBaixaAutomatica.ijs

var novoPedidoBaixaAutomatica = new OperacaoPedidoBaixaAutomatica(-1899999819 /* Entradas */);

novoPedidoBaixaAutomatica.abre(386125628);

novoPedidoBaixaAutomatica.pedidoCab.numero = novoPedidoBaixaAutomatica.pedidoCab.chcriacao; /*aqui deve ser informado o número da baixa, que em operações de entrada deve ser o número da nota emitida pelo fornecedor. No exemplo, estamos utilizando a chave de criação da baixa automática. */

novoPedidoBaixaAutomatica.pedidoCab.post();

novoPedidoBaixaAutomatica.pedido.movimentac = new Date();

novoPedidoBaixaAutomatica.pedido.movimentach = novoPedidoBaixaAutomatica.pedido.movimentac.toString("hh:nn:ss");

novoPedidoBaixaAutomatica.pedido.post();

novoPedidoBaixaAutomatica.aprova();

novoPedidoBaixaAutomatica.grava();

abrindo pedido com baixa automática e desaprovando

Para desaprovar um Pedido com Baixa automática já gravado anteriormente, deve ser instanciado o OperacaoPedidoBaixaAutomatica.

__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs

__includeOnce(-1898188424); // /products/INTEQerp infrastructure/library/pedido/objects/operacaoPedidoBaixaAutomatica.ijs

var novoPedidoBaixaAutomatica = new OperacaoPedidoBaixaAutomatica(-1899999819 /* Entradas */);

Em seguida deve ser utilizado o método abre() do objeto Operacao passando a chave de criação da operação.

novoPedidoBaixaAutomatica.abre(386125635);

Em seguida deve ser utilizado o método desaprova, porém para desaprovar um pedido ele não deve ter sido baixado. Também não pode ser desaprovar um pedido com baixa automática que a nota já tenha sido emitida.

novoPedidoBaixaAutomatica.desaprova();

Em seguida deve ser chamado o grava.

novoPedidoBaixaAutomatica.grava();

Exemplo completo no idbc.

__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs

__includeOnce(-1898188424); // /products/INTEQerp infrastructure/library/pedido/objects/operacaoPedidoBaixaAutomatica.ijs

var novoPedidoBaixaAutomatica = new OperacaoPedidoBaixaAutomatica(-1899999819 /* Entradas */);

novoPedidoBaixaAutomatica.abre(386125635);

novoPedidoBaixaAutomatica.desaprova();

novoPedidoBaixaAutomatica.grava();

cancelamentos

cancelando um pedido com baixa automática

Para cancelar um Pedido com Baixa Automática já gravado anteriormente, deve ser instanciado o OperacaoPedidoBaixaAutomatica.

__includeOnce(-1898188424); // /products/INTEQerp infrastructure/library/pedido/objects/operacaoPedidoBaixaAutomatica.ijs

__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs

var novoPedidoBaixaAutomatica = new OperacaoPedidoBaixaAutomatica(-1899999819 /* Entradas */);

Em seguida deve ser utilizado o método abre() do objeto Operacao passando a chave de criação da operação.

novoPedidoBaixaAutomatica.abre(386125643);

Em seguida realizar o cancelamento do pedido utilizando o método cancela(). Considerar que não é possível cancelar um pedido com baixa automática que tenha sido devolvido.

novoPedidoBaixaAutomatica.cancela();

Em seguida deve ser chamado o grava. Deve ser considerado que, caso tenha sido emitida uma nota fiscal pelo sistema, a nota será cancelada na Sefaz ao gravar o pedido com baixa automática cancelado.

novoPedidoBaixaAutomatica.grava();

Exemplo completo no idbc.

__includeOnce(-1898188424); // /products/INTEQerp infrastructure/library/pedido/objects/operacaoPedidoBaixaAutomatica.ijs

__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs

var novoPedidoBaixaAutomatica = new OperacaoPedidoBaixaAutomatica(-1899999819 /* Entradas */);

novoPedidoBaixaAutomatica.abre(386125643);

novoPedidoBaixaAutomatica.cancela();

novoPedidoBaixaAutomatica.grava();

cancelando itens de um pedido com baixa automática

Para cancelar um item de um Pedido com Baixa Automática já gravado anteriormente, deve ser instanciado o OperacaoPedidoBaixaAutomatica.

__includeOnce(-1898188424); // /products/INTEQerp infrastructure/library/pedido/objects/operacaoPedidoBaixaAutomatica.ijs

__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs

var novoPedidoBaixaAutomatica = new OperacaoPedidoBaixaAutomatica(-1899999819 /* Entradas */);

Em seguida deve ser utilizado o método abre() do objeto Operacao passando a chave de criação da operação.

novoPedidoBaixaAutomatica.abre(386125656);

Em seguida realizar o cancelamento do item do pedido utilizando o método cancelaItem(), passando a chave do item que se deseja cancelar.

novoPedidoBaixaAutomatica.cancelaItem(123457);

Outra forma de realizar o cancelamento de item do pedido é utilizando o método cancelaItem() passando o dataset pedido posicionado no item que se deseja cancelar.

novoPedidoBaixaAutomatica.pedido.findKey(386125658);

novoPedidoBaixaAutomatica.cancelaItem(novoPedidoBaixaAutomatica.pedido);

Um item de pedido com baixa automática que tenha sido aprovado não pode ser cancelado.

Ao cancelar um item do pedido pode existir impacto no valor do total a ser negociado na operação, já que o item cancelado não será mais considerado para todos os cálculos da operação, portanto caso o pedido já tenha sido negociado será necessário realizar a negociação novamente. Também não é possível cancelamento de item para um pedido com baixa automática que teve a nota fiscal emitida.

Em seguida deve ser chamado o grava.

novoPedidoBaixaAutomatica.grava();

Exemplo completo no idbc.

__includeOnce(-1898188424); // /products/INTEQerp infrastructure/library/pedido/objects/operacaoPedidoBaixaAutomatica.ijs

__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs

var novoPedidoBaixaAutomatica = new OperacaoPedidoBaixaAutomatica(-1899999819 /* Entradas */);

novoPedidoBaixaAutomatica.abre(386125656);

novoPedidoBaixaAutomatica.pedido.findKey(386125658);

novoPedidoBaixaAutomatica.cancelaItem(novoPedidoBaixaAutomatica.pedido);

novoPedidoBaixaAutomatica.grava();

exclusão

excluindo um pedido com baixa automática

Para excluir um Pedido com Baixa Automática já gravado anteriormente, deve ser instanciado o OperacaoPedidoBaixaAutomatica.

__includeOnce(-1898188424); // /products/INTEQerp infrastructure/library/pedido/objects/operacaoPedidoBaixaAutomatica.ijs

__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs

var novoPedidoBaixaAutomatica = new OperacaoPedidoBaixaAutomatica(-1899999819 /* Entradas */);

Em seguida deve ser utilizado o método abre() do objeto Operacao passando a chave de criação da operação.

novoPedidoBaixaAutomatica.abre(386125661);

Para excluir um pedido com baixa automática, deve ser manipulada a api de dataset pedido, executando o método empty do dataset que irá excluir todos os itens do pedido com baixa automática.

novoPedidoBaixaAutomatica.pedido.empty();

Um pedido com baixa automática que tenha sido aprovado, o que indica a sua baixa, não pode ser excluído.

Em seguida deve ser chamado o grava. Deve ser considerado que um pedido com baixa automática que teve a nota fiscal emitida pelo sistema não poderá ser excluído.

novoPedidoBaixaAutomatica.grava();

Exemplo completo no idbc.

__includeOnce(-1898188424); // /products/INTEQerp infrastructure/library/pedido/objects/operacaoPedidoBaixaAutomatica.ijs

__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs

var novoPedidoBaixaAutomatica = new OperacaoPedidoBaixaAutomatica(-1899999819 /* Entradas */);

novoPedidoBaixaAutomatica.abre(386125661);

novoPedidoBaixaAutomatica.pedido.empty();

novoPedidoBaixaAutomatica.grava();

excluindo itens de um pedido com baixa automática

Para excluir um item de um Pedido com Baixa Automática já gravado anteriormente, deve ser instanciado o OperacaoPedidoBaixaAutomatica.

__includeOnce(-1898188424); // /products/INTEQerp infrastructure/library/pedido/objects/operacaoPedidoBaixaAutomatica.ijs

__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs

var novoPedidoBaixaAutomatica = new OperacaoPedidoBaixaAutomatica(-1899999819 /* Entradas */);

Em seguida deve ser utilizado o método abre() do objeto Operacao passando a chave de criação da operação.

novoPedidoBaixaAutomatica.abre(123456);

Para excluir um item do pedido com baixa automática, deve ser manipulada a api de dataset pedido, executando o método del do dataset onde o dataset deve estar posicionado no item que se deseja excluir.

novoPedidoBaixaAutomatica.pedido.findKey(123457);

novoPedidoBaixaAutomatica.pedido.del();

Um pedido com baixa automática que tenha sido aprovado, o que indica a sua baixa, não pode ter um item de pedido excluído.

Ao excluir um item do pedido pode existir impacto no valor do total a ser negociado na operação, já que o item excluído não será mais considerado para todos os cálculos da operação, portanto caso o pedido já tenha sido negociado será necessário realizar a negociação novamente.

Em seguida deve ser chamado o grava.

novoPedidoBaixaAutomatica.grava();

Exemplo completo no idbc.

__includeOnce(-1898188604); // /products/INTEQerp infrastructure/library/pedido/objects/OperacaoPedido.js

__includeOnce(-1898141835); // /products/INTEQengine/configuration/iDBCsql library.ijs

var novoPedidoBaixaAutomatica = new OperacaoPedidoBaixaAutomatica(-1899999819 /* Entradas */);

novoPedidoBaixaAutomatica.abre(123456);

novoPedidoBaixaAutomatica.pedido.findKey(123457);

novoPedidoBaixaAutomatica.pedido.del();

novoPedidoBaixaAutomatica.grava();

consultando operações de pedido com baixa automática

Para realizar a consulta de pedidos com baixa automática, pode ser utilizado o datasource de Pedidos ou o datasource de Baixas, uma vez que esta operação se comporta como pedido antes da sua aprovação e após a aprovação é uma baixa, sendo assim a operação pode ser encontrada em ambos os datasources.

Maiores detalhes

https://sites.google.com/a/bematech.com/erp/o-que-fazemos/modulos/venda/manuais-tecnicos/datasource-de-pedido

https://sites.google.com/a/bematech.com/erp/o-que-fazemos/modulos/venda/manuais-tecnicos/datasource-de-baixa-de-pedido

Tópicos avançados

Configuração de campos do pedido