Pular para o conteúdo principal

ST_QUINTA - Parametro de Dia de Visita (Quinta-feira)

Tela de configuracao: TFA079 - Parametros de Visita
Componente: chkST_QUINTA (TDBCheckBox)
Tabela: PARMVISITA.ST_QUINTA
Tipo: CHAR(1) (DOM_CHAR1)
Valor padrao: 'N' (desmarcado)
Obrigatoriedade: Nao obrigatoria — depende da estrategia de rota do tecnico.

Tela de configuracao​

O parametro e configurado na tela TFA079 — Parametros de Visita, onde sao definidos os dias da semana em que a visita ao cliente pode ocorrer.

Os demais campos de dia da semana — ST_DOMINGO, ST_SEGUNDA, ST_TERCA, ST_QUARTA, ST_SEXTA, ST_SABADO — sao checkboxes equivalentes na mesma area da tela, cada um representando um dia da semana. Todos compartilham a semantica de habilitar ('S') ou desabilitar ('N') a visita naquele dia.

Procedimento de uso (exemplo basico)​

Simulacao passo a passo​

  1. Acesse a tela TFA079 — Parametros de Visita.
  2. Selecione (ou insira) o registro de rota com o cliente desejado.
  3. Marque o checkbox Quinta para incluir a quinta-feira como dia de visita.
  4. Salve o registro.

Resultado esperado: O campo ST_QUINTA e gravado como 'S' no banco de dados (PARMVISITA). O procedimento RETORNA_ROTAVISITA passara a considerar a quinta-feira como um dia valido para agendar/retornar visitas desse cliente.

Excecao / Importante: Pelo menos um dia da semana deve estar marcado. Se todos os checkboxes de dia (ST_DOMINGO ate ST_SABADO) estiverem desmarcados ('N'), o sistema bloqueara o salvamento com mensagem exigindo que ao menos um dia seja selecionado.

Opcoes disponiveis​

O que fazDetalhe
Marcado ('S')Quinta-feira habilitada como dia de visita para a rota/cliente.
Desmarcado ('N')Quinta-feira nao e considerada dia de visita para a rota/cliente. Valor padrao.

S - Marcado (Quinta-feira como dia de visita)​

Simulacao passo a passo​

  1. Acesse a tela TFA079.
  2. Selecione um registro de rota existente ou crie um novo.
  3. Marque o checkbox Quinta.
  4. Preencha os demais campos obrigatorios (empresa, rota, pessoa, etc.).
  5. Salve o registro.

Resultado esperado: O campo ST_QUINTA e gravado como 'S' na tabela PARMVISITA. Quando o sistema calcular a rota de visita do tecnico (via RETORNA_ROTAVISITA), a quinta-feira sera incluida como dia de retorno/agendamento para esse cliente.

N - Desmarcado (Quinta-feira ignorada na rota)​

Simulacao passo a passo​

  1. Acesse a tela TFA079.
  2. Selecione o registro de rota desejado.
  3. Desmarque o checkbox Quinta (deixe em branco/desativado).
  4. Salve o registro.

Resultado esperado: O campo ST_QUINTA e gravado como 'N' na tabela PARMVISITA. O procedimento RETORNA_ROTAVISITA nao retornara quinta-feira como dia de visita para esse cliente.

Excecao / Importante: Se este e o unico dia que estava marcado e voce o desmarcar, o sistema bloqueara o salvamento, pois pelo menos um dia da semana deve ser selecionado.

Procedimento de uso — Insercao de novo registro​

Simulacao passo a passo​

  1. Acesse a tela TFA079.
  2. Clique no botao de inserir novo registro.
  3. Preencha os campos obrigatorios (empresa, rota, pessoa, etc.).
  4. Marque o checkbox Quinta se deseja incluir quinta-feira como dia de visita.
  5. Salve o registro.

Resultado esperado: O novo registro e criado na tabela PARMVISITA com ST_QUINTA = 'S' (se marcado) ou ST_QUINTA = 'N' (padrao, se nao marcado).

Regras de validacao e comportamento interno​

  1. Validacao de dia obrigatorio: No evento BeforePost da tabela PARMVISITA, o sistema verifica se pelo menos um dia da semana esta marcado. Se ST_QUINTA = 'N' e todos os demais dias tambem estiverem 'N', o salvamento e bloqueado com mensagem ao usuario. (Ref: UdmTFA079.pas:558)

  2. Valor padrao na insercao: Ao inserir um novo registro, ST_QUINTA recebe 'N' automaticamente (desmarcado), atraves do AfterInsert. (Ref: UdmTFA079.pas:584)

  3. Navegacao (UP/DOWN): Ao navegar entre registros (botoes UP/DOWN), o estado de ST_QUINTA e preservado via estruturas PosicaoAtual e PosicaoAcima, garantindo que o checkbox reflita o valor salvo para cada registro. (Ref: UTFA079.pas:924, 948, 971, 995, 1048, 1072, 1095, 1120)

  4. Validacao de data de visita: O campo DT_VISITA tem validacao propria que pode ajustar os dias da semana. (Ref: UdmTFA079.pas:765)

Procedures impactadas​

Rotinas Delphi com referencia direta ao parametro​

RotinaArquivoLinhaEvidencia
TfrmTFA079.btnUPClicksource/TFA079/UTFA079.pas924Leitura: PosicaoAtual.stQuinta := dmTFA079.tabPARMVISITAST_QUINTA.AsString;
TfrmTFA079.btnDOWNClicksource/TFA079/UTFA079.pas1048Leitura: PosicaoAtual.stQuinta := dmTFA079.tabPARMVISITAST_QUINTA.AsString;
TdmTFA079.tabPARMVISITABeforePostsource/TFA079/UdmTFA079.pas558Validacao: (dmTFA079.tabPARMVISITAST_QUINTA.AsString = 'N') and
TdmTFA079.tabPARMVISITAAfterInsertsource/TFA079/UdmTFA079.pas584Padrao: tabPARMVISITAST_QUINTA.AsString := 'N';
TdmTFA079.tabPARMVISITAAfterScrollsource/TFA079/UdmTFA079.pas635Padrao na navegacao: dmTFA079.tabPARMVISITAST_QUINTA.AsString := 'N';
TdmTFA079.tabPARMVISITADT_VISITAValidatesource/TFA079/UdmTFA079.pas765Padrao na validacao: dmTFA079.tabPARMVISITAST_QUINTA.AsString := 'N';

Scripts SQL com referencia direta ao campo​

Procedure/ViewArquivoEvidencia
RETORNA_ROTAVISITAScripts/RETORNA_ROTAVISITA.sqlVariavel V_ST_QUINTA declarada; condicoes IF ((V_DIA = 4) AND (V_ST_QUINTA = 'S')) para definir o dia de retorno da visita.
VIEW_HORATECNICOScripts/VIEW_HORATECNICO.sqlColuna de saida O_ST_QUINTA; logica para marcar 'S' ou 'N' conforme dia da semana.

Tela TFA073 — Valor por Tecnico/Hora (tabela relacionada)​

A tela TFA073 utiliza valores derivados de ST_QUINTA atraves da view VIEW_HORATECNICO (coluna O_ST_QUINTA), exibidos como ST_QUI na interface. O campo serve como indicador visual de disponibilidade do tecnico na quinta-feira. (Ref: source/TFA073/UTFA073.pas:444, 556)

Schema da tabela PARMVISITA​

CREATE TABLE PARMVISITA (
CD_EMPRESA DOM_INTEGER NOT NULL,
CD_ROTA DOM_INTEGER NOT NULL,
TP_VISITA DOM_CHAR1 DEFAULT 'P' NOT NULL,
CD_PESSOA DOM_INTEGER NOT NULL,
ST_DOMINGO DOM_CHAR1 DEFAULT 'N' NOT NULL,
ST_SEGUNDA DOM_CHAR1 DEFAULT 'N' NOT NULL,
ST_TERCA DOM_CHAR1 DEFAULT 'N' NOT NULL,
ST_QUARTA DOM_CHAR1 DEFAULT 'N' NOT NULL,
ST_QUINTA DOM_CHAR1 DEFAULT 'N' NOT NULL,
ST_SEXTA DOM_CHAR1 DEFAULT 'N' NOT NULL,
ST_SABADO DOM_CHAR1 NOT NULL,
NR_DIAS DOM_INTEGER NOT NULL,
TP_PRIORIDADE DOM_CHAR1 DEFAULT 'S' NOT NULL,
DT_REGISTRO DOM_TIMESTAMP_NOW NOT NULL,
NR_ORDEM DOM_INTEGER NOT NULL,
DT_VISITA DOM_DATE,
DS_OBSVISITA DOM_VARCHAR5000,
ID_PARMVISITA DOM_INTEGER NOT NULL
);

ALTER TABLE PARMVISITA ADD CONSTRAINT PK_PARMVISITA PRIMARY KEY (ID_PARMVISITA);
ALTER TABLE PARMVISITA ADD CONSTRAINT FK_PARMVISITA_1
FOREIGN KEY (CD_EMPRESA, CD_ROTA) REFERENCES ROTAVISITA (CD_EMPRESA, CD_ROTAVISITA);

Tabelas de comparacao (parametros de dia relacionados)​

ParametroDiaValor padraoComponente
ST_DOMINGODomingo'N'chkST_DOMINGO
ST_SEGUNDASegunda'N'chkST_SEGUNDA
ST_TERCATerca'N'chkST_TERCA
ST_QUARTAQuarta'N'chkST_QUARTA
ST_QUINTAQuinta'N'chkST_QUINTA
ST_SEXTASexta'N'chkST_SEXTA
ST_SABADOSabado'N'chkST_SABADO