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
- Acesse a tela TFA079 — Parametros de Visita.
- Selecione (ou insira) o registro de rota com o cliente desejado.
- Marque o checkbox Quinta para incluir a quinta-feira como dia de visita.
- 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_DOMINGOateST_SABADO) estiverem desmarcados ('N'), o sistema bloqueara o salvamento com mensagem exigindo que ao menos um dia seja selecionado.
Opcoes disponiveis
| O que faz | Detalhe |
|---|---|
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
- Acesse a tela TFA079.
- Selecione um registro de rota existente ou crie um novo.
- Marque o checkbox Quinta.
- Preencha os demais campos obrigatorios (empresa, rota, pessoa, etc.).
- 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
- Acesse a tela TFA079.
- Selecione o registro de rota desejado.
- Desmarque o checkbox Quinta (deixe em branco/desativado).
- 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
- Acesse a tela TFA079.
- Clique no botao de inserir novo registro.
- Preencha os campos obrigatorios (empresa, rota, pessoa, etc.).
- Marque o checkbox Quinta se deseja incluir quinta-feira como dia de visita.
- 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
-
Validacao de dia obrigatorio: No evento
BeforePostda tabelaPARMVISITA, o sistema verifica se pelo menos um dia da semana esta marcado. SeST_QUINTA = 'N'e todos os demais dias tambem estiverem'N', o salvamento e bloqueado com mensagem ao usuario. (Ref:UdmTFA079.pas:558) -
Valor padrao na insercao: Ao inserir um novo registro,
ST_QUINTArecebe'N'automaticamente (desmarcado), atraves doAfterInsert. (Ref:UdmTFA079.pas:584) -
Navegacao (UP/DOWN): Ao navegar entre registros (botoes UP/DOWN), o estado de
ST_QUINTAe preservado via estruturasPosicaoAtualePosicaoAcima, garantindo que o checkbox reflita o valor salvo para cada registro. (Ref:UTFA079.pas:924, 948, 971, 995, 1048, 1072, 1095, 1120) -
Validacao de data de visita: O campo
DT_VISITAtem validacao propria que pode ajustar os dias da semana. (Ref:UdmTFA079.pas:765)
Procedures impactadas
Rotinas Delphi com referencia direta ao parametro
| Rotina | Arquivo | Linha | Evidencia |
|---|---|---|---|
TfrmTFA079.btnUPClick | source/TFA079/UTFA079.pas | 924 | Leitura: PosicaoAtual.stQuinta := dmTFA079.tabPARMVISITAST_QUINTA.AsString; |
TfrmTFA079.btnDOWNClick | source/TFA079/UTFA079.pas | 1048 | Leitura: PosicaoAtual.stQuinta := dmTFA079.tabPARMVISITAST_QUINTA.AsString; |
TdmTFA079.tabPARMVISITABeforePost | source/TFA079/UdmTFA079.pas | 558 | Validacao: (dmTFA079.tabPARMVISITAST_QUINTA.AsString = 'N') and |
TdmTFA079.tabPARMVISITAAfterInsert | source/TFA079/UdmTFA079.pas | 584 | Padrao: tabPARMVISITAST_QUINTA.AsString := 'N'; |
TdmTFA079.tabPARMVISITAAfterScroll | source/TFA079/UdmTFA079.pas | 635 | Padrao na navegacao: dmTFA079.tabPARMVISITAST_QUINTA.AsString := 'N'; |
TdmTFA079.tabPARMVISITADT_VISITAValidate | source/TFA079/UdmTFA079.pas | 765 | Padrao na validacao: dmTFA079.tabPARMVISITAST_QUINTA.AsString := 'N'; |
Scripts SQL com referencia direta ao campo
| Procedure/View | Arquivo | Evidencia |
|---|---|---|
RETORNA_ROTAVISITA | Scripts/RETORNA_ROTAVISITA.sql | Variavel V_ST_QUINTA declarada; condicoes IF ((V_DIA = 4) AND (V_ST_QUINTA = 'S')) para definir o dia de retorno da visita. |
VIEW_HORATECNICO | Scripts/VIEW_HORATECNICO.sql | Coluna 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)
| Parametro | Dia | Valor padrao | Componente |
|---|---|---|---|
ST_DOMINGO | Domingo | 'N' | chkST_DOMINGO |
ST_SEGUNDA | Segunda | 'N' | chkST_SEGUNDA |
ST_TERCA | Terca | 'N' | chkST_TERCA |
ST_QUARTA | Quarta | 'N' | chkST_QUARTA |
ST_QUINTA | Quinta | 'N' | chkST_QUINTA |
ST_SEXTA | Sexta | 'N' | chkST_SEXTA |
ST_SABADO | Sabado | 'N' | chkST_SABADO |