Dúvidas Manutenção ReservaID: mudanças entre as edições
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...' |
Sem resumo de edição |
||
| Linha 85: | Linha 85: | ||
'''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''''' | '''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''''' | ||
==ReservaID - Bloquear Intervalos de Números== | |||
Segue abaixo orientações para bloquear um intervalo de numeração do controle de ReservaId do sistema diretamente pelo banco de dados SQL. Importante destacar que, antes da realização do procedimento detalhado abaixo, o script '''''SCRIPT0619 - Função auxiliar aos controles de ReservaId.sql''''' deverá ser executado (independentemente se a execução for manual ou pelo Atualizador de Scripts do ERP). | |||
---- | |||
'''Função:''' | |||
'''''ReservaIdCriaIntervalo (@IdIni int, @IdFin int, @Tabela nVarChar(100), @ChaveCompl nVarChar(300), @Reserva bit, @SemUso bit, @ContrSistema bit)''''' | |||
'''Exemplo Montado:''' ReservaIdCriaIntervalo 1, 30592, 'NotaFiscal', ' EmpresaCodigo= 1 AND SerieEmpresaCodigo= 1 AND SerieCodigo= 1 ', 1, 0, 1 | |||
---- | |||
'''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 está 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, na empresa 3 e que estarão bloqueados para utilização pelos usuários. | |||
Edição atual tal como às 10h52min de 5 de agosto de 2025
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
ReservaID - Bloquear Intervalos de Números
Segue abaixo orientações para bloquear um intervalo de numeração do controle de ReservaId do sistema diretamente pelo banco de dados SQL. Importante destacar que, antes da realização do procedimento detalhado abaixo, o script SCRIPT0619 - Função auxiliar aos controles de ReservaId.sql deverá ser executado (independentemente se a execução for manual ou pelo Atualizador de Scripts do ERP).
Função:
ReservaIdCriaIntervalo (@IdIni int, @IdFin int, @Tabela nVarChar(100), @ChaveCompl nVarChar(300), @Reserva bit, @SemUso bit, @ContrSistema bit)
Exemplo Montado: ReservaIdCriaIntervalo 1, 30592, 'NotaFiscal', ' EmpresaCodigo= 1 AND SerieEmpresaCodigo= 1 AND SerieCodigo= 1 ', 1, 0, 1
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 está 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, na empresa 3 e que estarão bloqueados para utilização pelos usuários.
