SIN001 — Cadastro de Dispositivo Móvel (enriquecimento)
Menu: Sincronização de PDAs-Palms > Cadastro de Dispositivo Móvel
Objetivo
A tela SIN001 cadastra os dispositivos móveis (coletores/PDAs, tablets) que sincronizam com o JunsoftERP, definindo empresa, usuário responsável e o tipo de uso do aparelho: Coleta Recap., Produção Recap., Pedido Faturamento (venda externa) ou Balanço/Contagem de Estoque. Também controla, para cada dispositivo, parâmetros de sincronização (GPS, estoque, imagens, preços), vendedores autorizados e as contas de saldo/formas de pagamento que ele pode movimentar.
Fluxo principal
- Acessar Sincronização de PDAs-Palms > Cadastro de Dispositivo Móvel e incluir um novo registro; a aba Parâmetros é aberta e o foco vai para o código do dispositivo. (Parâmetros) —
source/SIN001/UframeSIN001.pas:331-336 (TframeSIN001.FrameEnter) - Informar a Empresa (F9 para buscar); o sistema valida e preenche o nome da empresa. (Parâmetros) —
source/SIN001/UframeSIN001.pas:226-239 (TframeSIN001.editIdEmpresaKeyDown) - Informar o Usuário (F9 para buscar); o sistema valida se o usuário existe e verifica se ele é recebedor de contas. (Parâmetros) —
source/SIN001/UdmSIN001.pas:275-297 (TdmSIN001.qryCadastroCD_USUARIOValidate) - Escolher o Tipo do Aparelho (Coleta Recap., Produção Recap., Pedido Faturamento ou Balanço/Contagem Estoque), que ajusta as abas disponíveis. (Parâmetros) —
source/SIN001/UframeSIN001.pas:419-473 (TframeSIN001.cmbTPDISPOSITIVOChange) - Se aplicável, configurar dias da semana, horário de expediente e tempo de sincronização na aba Sincronização GPS. (Sincronização GPS) —
source/SIN001/UformSIN001.pas:213-227 (TformSIN001.ValidaCamposObrigatorios) - Se a empresa usa múltiplos vendedores, incluir vendedores na aba Vendedores (F9 para buscar cada um). (Vendedores) —
source/SIN001/UframeSIN001.pas:475-505 (TframeSIN001.btnIncluirVendedorClick) - Se o dispositivo recebe contas, informar a Conta de Saldo (campo único ou grade da aba Recbto Contas) e a Forma de Pagamento. (Recbto Contas) —
source/SIN001/UframeSIN001.pas:566-599 (TframeSIN001.chkSTRECEBECONTASClick) - Clicar em OK (F6) para validar todas as regras obrigatórias e gravar o cadastro do dispositivo. (Parâmetros) —
source/SIN001/UframeSIN001.pas:291-329 (TframeSIN001.actionOKExecute)
Campos obrigatórios
| Campo | Condição | Mensagem | Fonte |
|---|---|---|---|
| Empresa (IDEMPRESA) | Sempre, ao gravar o dispositivo | source/SIN001/UframeSIN001.pas:291-297 (TframeSIN001.actionOKExecute) | |
| Usuário (CD_USUARIO) | Sempre, ao gravar o dispositivo | source/SIN001/UframeSIN001.pas:291-297 (TframeSIN001.actionOKExecute) | |
| Conta de Saldo (campo único) | Dispositivo diferente de Balanço/Contagem (E) e sem usar a grade de múltiplas contas | source/SIN001/UframeSIN001.pas:313-317 (TframeSIN001.actionOKExecute) | |
| Conta de Saldo (grade Recbto Contas) | Recebimento de Contas = Sim e aba Recbto Contas visível | source/SIN001/UframeSIN001.pas:318-325 (TframeSIN001.actionOKExecute) | |
| Vendedor (linha da grade Vendedores) | Ao incluir/gravar uma linha na grade Vendedores | source/SIN001/UdmSIN001.pas:534-540 (TdmSIN001.qryVendedoresBeforePost) | |
| Conta (CD_CONTA, linha da grade Contas de Saldo) | Ao gravar uma linha da grade Contas de Saldo | source/SIN001/UdmSIN001.pas:833-841 (TdmSIN001.qryContaSaldoBeforePost) | |
| Forma de Pagamento (linha da grade Forma Pagto) | Ao gravar uma linha da grade Forma Pagto | source/SIN001/UdmSIN001.pas:914-920 (TdmSIN001.qryFormaPagtoBeforePost) | |
| Tolerância (Dias) - NRTOLERANCIADIA | Sincronização Automática = Sim | source/SIN001/UformSIN001.pas:207-211 (TformSIN001.ValidaCamposObrigatorios) | |
| Dias da semana, Horário Início/Fim Expediente e Tempo Sincronização GPS | Dispositivo tipo Coleta ou Pedido com 'Obriga uso do GPS no pedido' ou 'Sincroniza GPS em Tempo Real' = Sim | source/SIN001/UformSIN001.pas:213-227 (TformSIN001.ValidaCamposObrigatorios) |
Mensagens: causa e ação
A Conta saldo já cadastrada para o dispositivo. Verifique!
Causa: Na grade Contas de Saldo (aba Recbto Contas) foi informada uma conta que já está vinculada a este mesmo dispositivo.
Ação: Informar outra conta ou remover a linha duplicada da grade.
Fonte: source/SIN001/UdmSIN001.pas:843-879 (TdmSIN001.qryContaSaldoCD_CONTAValidate)
A Conta saldo não está cadastrada, ou está indisponível para o usuário informado. Verifique[FNC002]!
Causa: A conta informada não existe para a empresa em PARMSALDO/Cartão de Crédito, ou não está liberada para o usuário vinculado ao dispositivo (VIEW_PARMSALDO).
Ação: Liberar a conta para o usuário no cadastro financeiro (Contas de Saldo) ou informar outra conta.
Fonte: source/SIN001/UdmSIN001.pas:622-654 (TdmSIN001.qryCadastroIDCONTASALDOCARTAOValidate)
A Movimentação Não Está Ativa! [TCB001]
Causa: A Movimentação de Itens informada está com ST_ATIVO = N.
Ação: Reativar a movimentação em Cadastro de Movimentação ou escolher outra ativa.
Fonte: source/SIN001/UdmSIN001.pas:227-249 (TdmSIN001.qryCadastroIDMOVITEMValidate)
A Movimentação Não Está Parametrizada para Dispositivos Móveis! [TCB001]
Causa: A movimentação informada não tem o parâmetro de sincronização com dispositivos móveis (ST_SINCRONIZACAO) habilitado.
Ação: Habilitar a sincronização na movimentação em Cadastro de Movimentação ou escolher outra.
Fonte: source/SIN001/UdmSIN001.pas:227-249 (TdmSIN001.qryCadastroIDMOVITEMValidate)
A Movimentação Não Está Cadastrada! [TCB001]
Causa: O código de movimentação informado não existe.
Ação: Informar um código válido usando F9 para buscar.
Fonte: source/SIN001/UdmSIN001.pas:227-249 (TdmSIN001.qryCadastroIDMOVITEMValidate)
A quantidade de dias deve maior que zero. Verfique!
Causa: Foi informado valor zero ou negativo no campo Qtde dias p/ buscar Lista de Preços por Faturamento.
Ação: Informar um valor maior que zero ou deixar o campo em branco.
Fonte: source/SIN001/UdmSIN001.pas:522-526 (TdmSIN001.qryCadastroQTDIASSINCPRECOFATURValidate)
A Quantidade de Dias Informada Deve Ser Maior que Zero. Verfique!
Causa: Foi informado valor zero ou negativo no campo Qtd Dias Rota.
Ação: Informar um valor maior que zero ou deixar o campo em branco.
Fonte: source/SIN001/UdmSIN001.pas:515-520 (TdmSIN001.qryCadastroQTDIASROTAValidate)
Antes de Informar a conta é necessário informar a Empresa. Verifique!
Causa: Foi digitada a Conta de Saldo antes de preencher a Empresa do dispositivo.
Ação: Preencher primeiro o campo Empresa.
Fonte: source/SIN001/UdmSIN001.pas:622-634 (TdmSIN001.qryCadastroIDCONTASALDOCARTAOValidate)
Antes de Informar a conta é necessário informar o Usuário. Verifique!
Causa: Foi digitada a Conta de Saldo antes de preencher o Usuário do dispositivo.
Ação: Preencher primeiro o campo Usuário.
Fonte: source/SIN001/UdmSIN001.pas:622-634 (TdmSIN001.qryCadastroIDCONTASALDOCARTAOValidate)
Deseja realmente limpar a chave? Esta ação vai liberar este cadastro para ser usado por qualquer dispositivo...
Causa: O usuário clicou no botão Limpar Chave para reutilizar o cadastro em outro aparelho.
Ação: Confirmar apenas se for reaproveitar o cadastro em outro dispositivo; a base local do aparelho antigo precisa ser apagada.
Fonte: source/SIN001/UframeSIN001.pas:382-401 (TframeSIN001.btnLimparChaveClick)
Existem Contas de Saldo cadastradas para a empresa %s. Delete essas contas antes de alterar a empresa
Causa: Tentativa de trocar a Empresa do dispositivo enquanto ainda há Contas de Saldo cadastradas vinculadas à empresa anterior.
Ação: Excluir as contas de saldo do dispositivo na aba Recbto Contas antes de trocar a empresa.
Fonte: source/SIN001/UdmSIN001.pas:186-201 (TdmSIN001.qryCadastroBeforePost)
Forma de Pagamento não cadastrada. Verifique! [TFC001]
Causa: O código de forma de pagamento informado não existe.
Ação: Usar F9 para buscar uma forma de pagamento válida.
Fonte: source/SIN001/UdmSIN001.pas:887-912 (TdmSIN001.qryFormaPagtoCD_FORMAPAGTOValidate)
Forma de Pagamento já cadastrada para o dispositivo. Verifique!
Causa: A forma de pagamento informada já está vinculada a este dispositivo.
Ação: Escolher outra forma de pagamento ou remover a linha duplicada.
Fonte: source/SIN001/UdmSIN001.pas:887-912 (TdmSIN001.qryFormaPagtoCD_FORMAPAGTOValidate)
Informe o Vendedor!
Causa: Tentou gravar uma linha da grade Vendedores sem selecionar o vendedor.
Ação: Informar o vendedor (F9) antes de sair da linha.
Fonte: source/SIN001/UdmSIN001.pas:534-540 (TdmSIN001.qryVendedoresBeforePost)
Local de Estoque informado não está cadastrado. Verfique [TEQ003]!
Causa: O código de Local de Estoque informado não existe.
Ação: Usar F9 para buscar um local de estoque cadastrado.
Fonte: source/SIN001/UdmSIN001.pas:782-811 (TdmSIN001.qryCadastroIDLOCALESTOQUEValidate)
Movimentação Informada não está cadastrada. Verifique [TCB001]!
Causa: O código de Movimentação de Compra informado não existe.
Ação: Informar um código válido usando F9.
Fonte: source/SIN001/UdmSIN001.pas:722-756 (TdmSIN001.qryCadastroIDMOVIMENTACAOCOMPRAValidate)
O número de dispositivos cadastrados do tipo Coleta Recap./Pedido Mobile excede o número de dispositivos permitidos para a licença!
Causa: A soma de dispositivos tipo Coleta e Pedido Mobile cadastrados ultrapassa o limite NRLICENCACOLETA da licença contratada.
Ação: Excluir dispositivos não usados ou solicitar ampliação da licença ao comercial.
Fonte: source/SIN001/UformSIN001.pas:132-196 (TformSIN001.verificaLicencaDispositivos)
O número de dispositivos cadastrados do tipo Produção Recap. excede o número de dispositivos permitidos para a licença!
Causa: A quantidade de dispositivos tipo Produção Recap. cadastrados ultrapassa o limite NRLICENCAPRODUCAO da licença contratada.
Ação: Excluir dispositivos não usados ou solicitar ampliação da licença ao comercial.
Fonte: source/SIN001/UformSIN001.pas:132-205 (TformSIN001.verificaLicencaDispositivos)
O Tipo de Operação da Movimentação "%s" não pode ser de Venda. Verifique [TCB001]!
Causa: A movimentação de compra informada tem tipo de operação Venda.
Ação: Informar uma movimentação cujo tipo de operação não seja Venda.
Fonte: source/SIN001/UdmSIN001.pas:722-756 (TdmSIN001.qryCadastroIDMOVIMENTACAOCOMPRAValidate)
O Tipo Vendedor não está cadastrado. Verifique [TFA064]!
Causa: O código de Tipo Vendedor informado não existe.
Ação: Usar F9 para buscar um tipo de vendedor válido.
Fonte: source/SIN001/UdmSIN001.pas:701-720 (TdmSIN001.qryCadastroIDTIPOVENDEDORPEDIDOValidate)
O Usuário não está Cadastrado [ADM001]!
Causa: O código de usuário informado não existe na tabela USUARIO.
Ação: Informar um código de usuário válido (F9).
Fonte: source/SIN001/UdmSIN001.pas:275-297 (TdmSIN001.qryCadastroCD_USUARIOValidate)
O usuário não possui um "ID"
Causa: O usuário localizado na busca está com o campo ID vazio no cadastro de usuários.
Ação: Acionar o suporte/TI para corrigir o cadastro do usuário em Cadastro de Usuário.
Fonte: source/SIN001/UframeSIN001.pas:241-266 (TframeSIN001.editIdUsuarioKeyDown)
O Vendedor não está Cadastrado ! [TFA007]!
Causa: O vendedor informado não existe ou está com ST_ATIVO diferente de 'S'.
Ação: Informar um vendedor ativo, usando F9 para buscar.
Fonte: source/SIN001/UdmSIN001.pas:554-604 (TdmSIN001.qryVendedoresIDVENDEDORValidate)
Para Dispositivo de Coleta e "Obriga Uso do GPS no pedido" ou "Sincroniza GPS em Tempo Real" igual a "Sim"...
Causa: Dispositivo tipo Coleta/Pedido com uma dessas opções marcadas, mas faltam dias da semana, horários de expediente ou tempo de sincronização GPS.
Ação: Preencher os dias da semana, horário de início/fim e tempo de sincronização na aba Sincronização GPS.
Fonte: source/SIN001/UformSIN001.pas:213-227 (TformSIN001.ValidaCamposObrigatorios)
Perfil Informado não está cadastrado. Verifique [TPO033]!
Causa: O código de Perfil de Itens de Compra informado não existe.
Ação: Informar um perfil válido usando F9.
Fonte: source/SIN001/UdmSIN001.pas:758-780 (TdmSIN001.qryCadastroIDPERFILITENSCOMPRAValidate)
Vendedor já informado. Verifique!
Causa: O vendedor selecionado já está vinculado a este dispositivo.
Ação: Escolher outro vendedor ou remover a linha duplicada da grade.
Fonte: source/SIN001/UdmSIN001.pas:554-604 (TdmSIN001.qryVendedoresIDVENDEDORValidate)
É obrigatório informar a Conta de Saldo. Verifique!
Causa: Dispositivo configurado para receber contas, mas nenhuma conta de saldo foi informada (nem no campo único nem na grade).
Ação: Informar a conta de saldo no campo único ou incluir ao menos uma linha na grade Contas de Saldo.
Fonte: source/SIN001/UframeSIN001.pas:313-325 (TframeSIN001.actionOKExecute)
É obrigatório informar a forma de pagamento. Verifque!
Causa: Tentou gravar uma linha da grade Forma Pagto sem informar o código.
Ação: Informar a forma de pagamento (F9) antes de sair da linha.
Fonte: source/SIN001/UdmSIN001.pas:914-920 (TdmSIN001.qryFormaPagtoBeforePost)
Regras de negócio
SIN001.R001(verregras/SIN001/SIN001.R001.md)SIN001.R002(verregras/SIN001/SIN001.R002.md)SIN001.R003(verregras/SIN001/SIN001.R003.md)SIN001.R004(verregras/SIN001/SIN001.R004.md)SIN001.R005(verregras/SIN001/SIN001.R005.md)SIN001.R006(verregras/SIN001/SIN001.R006.md)SIN001.R007(verregras/SIN001/SIN001.R007.md)SIN001.R008(verregras/SIN001/SIN001.R008.md)SIN001.R009(verregras/SIN001/SIN001.R009.md)SIN001.R010(verregras/SIN001/SIN001.R010.md)SIN001.R011(verregras/SIN001/SIN001.R011.md)SIN001.R012(verregras/SIN001/SIN001.R012.md)SIN001.R013(verregras/SIN001/SIN001.R013.md)SIN001.R014(verregras/SIN001/SIN001.R014.md)SIN001.R015(verregras/SIN001/SIN001.R015.md)SIN001.R016(verregras/SIN001/SIN001.R016.md)SIN001.R017(verregras/SIN001/SIN001.R017.md)SIN001.R018(verregras/SIN001/SIN001.R018.md)SIN001.R019(verregras/SIN001/SIN001.R019.md)SIN001.R020(verregras/SIN001/SIN001.R020.md)SIN001.R021(verregras/SIN001/SIN001.R021.md)SIN001.R022(verregras/SIN001/SIN001.R022.md)
Perguntas frequentes
P: Por que não consigo salvar o dispositivo e aparece 'É obrigatório informar a Conta de Saldo'?
R: Dispositivos que não são do tipo Balanço/Contagem precisam de uma Conta de Saldo vinculada: no campo único (quando 'Recebimento de Contas' está desmarcado ou o tipo não é Coleta) ou em pelo menos uma linha da grade Contas de Saldo (aba Recbto Contas, quando Recebimento de Contas = Sim).
Fonte: source/SIN001/UframeSIN001.pas:313-325 (TframeSIN001.actionOKExecute)
P: Recebi a mensagem de que o número de dispositivos excede a licença, o que fazer?
R: A quantidade de dispositivos cadastrados dos tipos Coleta/Pedido Mobile (ou Produção) ultrapassou o limite contratado em PARMSISTEMA; é preciso excluir dispositivos não usados ou solicitar ampliação da licença.
Fonte: source/SIN001/UformSIN001.pas:132-203 (TformSIN001.verificaLicencaDispositivos)
P: Por que a aba Vendedores não aparece no cadastro do dispositivo?
R: Essa aba só é exibida quando o parâmetro PARMFATUR.ST_VARIOSVENDEDORES está configurado como 'S' (Sim) para a empresa.
Fonte: source/SIN001/UformSIN001.pas:82-88 (iniciar)
P: Por que o campo Local Estoque não aparece na aba Pedido 2?
R: Esse campo só é exibido quando o parâmetro PARMFATUR.ST_SOLICITALOCALPED está configurado como 'S' (Sim).
Fonte: source/SIN001/UformSIN001.pas:90-95 (iniciar)
P: Deu a mensagem 'A Conta saldo não está cadastrada, ou está indisponível para o usuário informado'.
R: A conta informada não existe para a empresa em PARMSALDO/Cartão de Crédito, ou não está liberada para o usuário vinculado ao dispositivo; libere a conta para o usuário no financeiro ou informe outra conta.
Fonte: source/SIN001/UdmSIN001.pas:622-654 (TdmSIN001.qryCadastroIDCONTASALDOCARTAOValidate)
P: Para que serve o botão 'Limpar Chave'?
R: Ele libera o cadastro do dispositivo para ser reutilizado em outro aparelho, guardando a chave antiga como backup; a base de dados local do aparelho anterior precisa ser apagada para o novo vínculo funcionar.
Fonte: source/SIN001/UframeSIN001.pas:382-401 (TframeSIN001.btnLimparChaveClick)
P: Apareceu 'O usuário não possui um ID' ao buscar o usuário.
R: O usuário localizado na busca está com o campo ID vazio no cadastro; é um problema no cadastro do usuário que precisa ser corrigido em Cadastro de Usuário.
Fonte: source/SIN001/UframeSIN001.pas:241-266 (TframeSIN001.editIdUsuarioKeyDown)
P: Não consigo trocar a Empresa do dispositivo, por quê?
R: Se já existem Contas de Saldo cadastradas para o dispositivo vinculadas à empresa atual, é preciso excluir essas contas (aba Recbto Contas) antes de trocar a empresa.
Fonte: source/SIN001/UdmSIN001.pas:186-201 (TdmSIN001.qryCadastroBeforePost)
P: Recebi a mensagem sobre GPS pedindo para preencher dias e horários.
R: Isso ocorre em dispositivos tipo Coleta ou Pedido quando 'Obriga uso do GPS no pedido' ou 'Sincroniza GPS em Tempo Real' está marcado como Sim; é necessário preencher os dias da semana, horário de início/fim do expediente e o tempo de sincronização GPS na aba Sincronização GPS.
Fonte: source/SIN001/UformSIN001.pas:207-227 (TformSIN001.ValidaCamposObrigatorios)
P: Deu erro 'Vendedor já informado' ao incluir um vendedor.
R: O vendedor selecionado já está vinculado a este dispositivo; escolha outro vendedor ou remova a linha duplicada da grade.
Fonte: source/SIN001/UdmSIN001.pas:554-604 (TdmSIN001.qryVendedoresIDVENDEDORValidate)
P: O que muda ao selecionar cada Tipo do Aparelho?
R: O tipo (Coleta Recap., Produção Recap., Pedido Faturamento ou Balanço/Contagem Estoque) mostra/oculta as abas de parâmetros correspondentes (Coleta, Produção, Pedido, Estoque, Sincronização GPS, Canhotos).
Fonte: source/SIN001/UframeSIN001.pas:419-473 (TframeSIN001.cmbTPDISPOSITIVOChange)
Dúvidas em aberto (o código não responde)
- A checagem de 'Vendedor já informado' consulta duas bases (transactionBanco e transaction) em sequência para o mesmo vendedor — é redundância ou há bases/servidores distintos sendo verificados? — UdmSIN001.pas:573-599 TdmSIN001.qryVendedoresIDVENDEDORValidate executa a mesma consulta duas vezes em transações diferentes.
- Por que a validação de QTDIASSINCPRECOFATUR usa aviso (W-0000, não bloqueante) enquanto a validação equivalente de QTDIASROTA usa erro (E-0000, bloqueante)? — UdmSIN001.pas:515-526, duas rotinas quase idênticas com severidades diferentes.
- A definição completa de Validaempresa (jValidate.pas) não foi lida nesta sessão — há alguma outra condição de bloqueio além de checar existência da empresa? — UdmSIN001.pas:207-225 TdmSIN001.qryCadastroIDEMPRESAValidate apenas chama o validador compartilhado.
- O cálculo de licença soma dispositivos tipo Coleta (C) e Pedido Mobile (P) no mesmo limite NRLICENCACOLETA — isso é do conhecimento do usuário final ou pode gerar confusão ao interpretar a mensagem de excesso de licença? — UformSIN001.pas:187 'qtColeta := qtColeta + qtPedido' antes de comparar com qtLicencaColeta.