Skip to content

Tag-icone-mini.png Totali CheckOut

1. O checkout abre a tabela de modo compartilhado, para que todos os checkouts possam acessar a tabela ao mesmo tempo.

2. Existe uma função que retorna o próximo número da venda. Essa função precisa da série, da filial, e da quantidade de numnots requisitados.

3. Na função pesquisa se existe registro no numnot para essa série e essa filial.

3.1. Se não encontrar, gera um registro novo começando do último numnot gravado na base local daquela série + quantidade de numnots. Normalmente se começa do 1.

3.2. Se encontrar, é feito o LOCK apenas da linha necessária. Fica em loop por 10 vezes.

3.2.1. Se não conseguiu dar lock, sai da rotina e não continua a venda. Retornando erro.

3.2.2. Se conseguiu dar lock, soma na tabela numnot a quantidade passada por parâmetro e determina o próximo numnot.

4. Antes de retornar o próximo numnot, pesquisa na base local se já não existe uma venda com esse numnot. Se existir retorna erro.

Detalhe sobre Fatura e Remessa ​

Fatura e remessa tem um processo de buscar sempre 2 números, para ser sequencial.
Para isso existe uma tabela local onde sempre são gravados os próximos números de venda consultados na função acima.

Na fatura pesquisa-se 2 números e já soma + 2 no numnot.dbf.
Quando chega a emissão da remessa, ela só consulta o segundo número pesquisado anteriormente.

Ou seja, antes do processo 3, é verificado se existe algo gravado nessa tabela auxiliar e então pega o número dessa tabela sem modificar o numnot.