Dúvidas Manutenção ReservaID

De Base de Conhecimentos da DataPlus Sistemas
Revisão de 10h45min de 5 de agosto de 2025 por Carolina Osti (discussão | contribs) (Criou página com '==Como fazer bloqueio de número (NF-e, pedido, orçamento, pessoa)== '''Caminho''' Ir em utilitários/Módulos avulsos – Dataplus/Manutenção ReservaID. '''Orientaçõe...')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegação Ir para pesquisar

Como fazer bloqueio de número (NF-e, pedido, orçamento, pessoa)

Caminho

Ir em utilitários/Módulos avulsos – Dataplus/Manutenção ReservaID.

Orientações

Nessa tela é possível Bloquear/Desbloquear os números, lembrando que esse ajuste deve ser utilizado como último recurso, como por exemplo, caso o número esteja bloqueado por um usuário e o mesmo não aparece para ser desbloqueado.

Ao abrir a entidade é possível selecionar qual módulo será feita a liberação, exemplo: nota fiscal, pedido, etc.

A coluna ID corresponde ao Número da nota (pedido, nota, orçamento, etc), confirme qual número precisa ajustar, clique sobre a linha, e clique no botão de Bloquear Número ou Liberar Número.

Nessa tela há dois tipos de uso: Uso do Usuário e Uso do Sistema.


Uso do usuário: Caso libere ou bloqueie o número através dele, ficará gravado o usuário que realizou a liberação ou o bloqueio, dessa forma, caso abra, por exemplo, a tela da nota, será mostrado o número bloqueado pelo usuário.

Uso do Sistema: Caso libere ou bloqueie o número através dele, não ficará vinculado a nenhum usuário, sendo assim, caso precise por exemplo, bloquear números que foram indevidamente liberados, utilize esse tipo, já que não ficará mostrando a mensagem de liberação dos números para os usuários.

Obs.: Vale lembrar que por conta desse recurso, agora aparecem todos os registros e devem tomar cuidado para não liberar números que não devem, como as notas canceladas.


Intervalo

Caso necessário bloquear um intervalo é possível fazer via banco com o seguinte comando:

               Função: ReservaIdCriaIntervalo (@IdIni int, @IdFin int, @Tabela nVarChar(100), @ChaveCompl nVarChar(300), @Reserva bit, @SemUso bit, @ContrSistema bit)
      Parâmetros:   @IdIni => Número inicial
                   @IdFin => Número Final

@Tabela => Nome da tabela que deseja criar o intervalo de numeração

@ChaveCompl => Chave complementar que identifica a série de numeração. Essa informação deve ser copiada da própria tabela ReservaId, identificando o registro pelo campo Tabela e a ChaveComplementar desejada, por exemplo, para criar um intervalo no pedido da empresa 3, a chave será ‘EmpresaCodigo= 3 ‘, mas deve ser copiado de um registro já criado pelo sistema, pois envolve espaços e outros detalhes que podem ficar errado.

@Reserva => Define se os números criados ficarão bloqueados ou não – 0 = Liberado e 1 = Bloqueado

@SemUso => Tambem ajuda a definir se o número ficará bloqueado, definindo se esta sendo usado ou não. – 0 = Em uso – 1 = Sem uso (para bloquear deverá ser 0 (zero))

@ContrSistema = Define se o número poderá ser liberado pelo usuário. 0 = Sem controle do sistema, podendo ser liberado – 1 = Controlado pelo sistema, não podendo ser liberado pelo usuário.

      Exemplo de Sintaxe: exec dbo.ReservaIdCriaIntervalo 1, 100, 'Pedidos', ' EmpresaCodigo= 3 ', 1, 0, 1
      Nesse exemplo será criado um intervalo de números do pedido de 1 a 100 bloqueados para os usuários.


OBS

Identifiquei dois erros no procedimento, sendo o primeiro que o comando só cria os registros se ainda não existir, dessa forma tem que excluir os existentes antes e o outro é a chave complementar que está errada e no wiki está orientando a copiar a chave de um registro já existente e não tem nenhum na tabela com a chave que estava usando. Segue comandos para resolver o problema do cliente:

Delete ReservaId Where Tabela='NotaFiscal' And ChaveComplementar='#EmpresaCodigo=#1###AND##SerieEmpresaCodigo=#1##AND#SerieCodigo=#1##' And Id Between 275 And 2012

exec dbo.ReservaIdCriaIntervalo 275, 2012, 'NotaFiscal', '#EmpresaCodigo=#1###AND##SerieEmpresaCodigo=#1##AND#SerieCodigo=#1##', 0, 1, 0

Delete ReservaId Where Tabela='NotaFiscal' And ChaveComplementar='#EmpresaCodigo=#2###AND##SerieEmpresaCodigo=#2##AND#SerieCodigo=#1##' And Id Between 140 And 1212

exec dbo.ReservaIdCriaIntervalo 140, 1212, 'NotaFiscal', '#EmpresaCodigo=#2###AND##SerieEmpresaCodigo=#2##AND#SerieCodigo=#1##', 0, 1, 0

SINTAXE: Foi inserido o caractere # no lugar dos espaços porque na página do wiki é suprimido espaços repetidos, dessa forma os caracteres # deverão ser substituídos por espaços para executar o comando


Para sugerir uma numeração

--Empresa 1 - Serie 1 - Sugerir 2021 Delete ReservaId Where Tabela='NotaFiscal' And ChaveComplementar='#EmpresaCodigo=#1###AND##SerieEmpresaCodigo=#1##AND#SerieCodigo=#1##' And Id Between 275 And 2030

exec dbo.ReservaIdCriaIntervalo 275, 2020, 'NotaFiscal', '#EmpresaCodigo=#1###AND##SerieEmpresaCodigo=#1##AND#SerieCodigo=#1##', 1, 0, 1

--Empresa 1 - Convencional - Sugerir 278 Delete ReservaId Where Tabela='NotaFiscal' And ChaveComplementar='#EmpresaCodigo=#1###AND##SerieEmpresaCodigo=#1##AND#SerieCodigo=#2##' And Id Between 278 And 1686

Delete ReservaId Where Tabela='NotaFiscal' And ChaveComplementar='#EmpresaCodigo=#1###AND##SerieEmpresaCodigo=#1##AND#SerieCodigo=#2##' And Id = 1688

exec dbo.ReservaIdCriaIntervalo 278, 1686, 'NotaFiscal', '#EmpresaCodigo=#1###AND##SerieEmpresaCodigo=#1##AND#SerieCodigo=#2##', 0, 1, 0

exec dbo.ReservaIdCriaIntervalo 1688, 1688, 'NotaFiscal', '#EmpresaCodigo=#1###AND##SerieEmpresaCodigo=#1##AND#SerieCodigo=#2##', 0, 1, 0

--Empresa 2 - Serie 1 - Sugerir 729 => Ja existia notas até 1214, ficou com 1215 para a próxima Delete ReservaId Where Tabela='NotaFiscal' And ChaveComplementar='#EmpresaCodigo=#2###AND##SerieEmpresaCodigo=#2##AND#SerieCodigo=#1##' And Id <= 670

exec dbo.ReservaIdCriaIntervalo 1, 670, 'NotaFiscal', '#EmpresaCodigo=#2###AND##SerieEmpresaCodigo=#2##AND#SerieCodigo=#1##', 1, 0, 1

SINTAXE: Foi inserido o caractere # no lugar dos espaços porque na página do wiki é suprimido espaços repetidos, dessa forma os caracteres # deverão ser substituídos por espaços para executar o comando