Ponto-de-Entrada: VX012VAL - Validação na Seleção do Veículo no Atendimento Modelo 2
Abrangências: | Microsiga Protheus 10 , Microsiga Protheus 11 |
Versões: | Microsiga Protheus 10 , Microsiga Protheus 11 |
Compatível Países: | Todos |
Sistemas Operacionais: | Todos |
Compatível às Bases de Dados: | Todos |
Idiomas: | Português (Brasil) |
Descrição:
Este Ponto de Entrada permite a validação na seleção do veículo da consulta de veículos F7 do atendimento modelo 2.
Eventos
User Function VX012VAL()
Local cFilVVA := ParamIXB[1] // Filial do Atendimento
Local cNumAte := ParamIXB[2] // Nro do Atendimento
Local cChassi := ParamIXB[3] // Chassi do Veiculo
Local lRet := .t.
lRet := U_ZZVALVVA(cFilVVA,cNumAte,cChassi) // Validar se existe outro Atendimento Aberto (janela aberta) para o mesmo veiculo
Return lRet
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Funcao de USUARIO para validar se existe outro Atendimento Aberto (janela aberta) para o mesmo veiculo //
////////////////////////////////////////////////////////////////////////////////////////////////////////////
User Function ZZVALVVA(cFilVVA,cNumAte,cChassi)
Local cQuery := ""
Local cQAlAux := "SQLAUXILIAR"
Local lRet := .t.
Local cFilVV1 := xFilial("VV1")
Local cFilVV2 := xFilial("VV2")
If VVA->(FieldPos("VVA_ZZABER")) > 0
cQuery := "SELECT VV9.VV9_FILIAL , VV9.VV9_NUMATE , VV0.VV0_CODVEN , VV1.VV1_CODMAR , VV2.VV2_DESMOD FROM "+RetSqlName("VVA")+" VVA "
cQuery += "JOIN "+ RetSqlName("VV9")+" VV9 ON ( VV9.VV9_FILIAL=VVA.VVA_FILIAL AND VV9.VV9_NUMATE=VVA.VVA_NUMTRA AND VV9.D_E_L_E_T_=' ') "
cQuery += "JOIN "+ RetSqlName("VV0")+" VV0 ON ( VV0.VV0_FILIAL=VVA.VVA_FILIAL AND VV0.VV0_NUMTRA=VVA.VVA_NUMTRA AND VV0.D_E_L_E_T_=' ') "
If Empty(cFilVV1)
cQuery += "JOIN "+ RetSqlName("VV1")+" VV1 ON ( VV1.VV1_FILIAL='"+cFilVV1+"' AND VV1.VV1_CHASSI=VVA.VVA_CHASSI AND VV1.D_E_L_E_T_=' ') "
Else
cQuery += "JOIN "+ RetSqlName("VV1")+" VV1 ON ( VV1.VV1_FILIAL=VVA.VVA_FILIAL AND VV1.VV1_CHASSI=VVA.VVA_CHASSI AND VV1.D_E_L_E_T_=' ') "
EndIf
If Empty(cFilVV2)
cQuery += "JOIN "+ RetSqlName("VV2")+" VV2 ON ( VV2.VV2_FILIAL='"+cFilVV2+"' AND VV2.VV2_CODMAR=VV1.VV1_CODMAR AND VV2.VV2_MODVEI=VV1.VV1_MODVEI AND VV2.D_E_L_E_T_=' ') "
Else
cQuery += "JOIN "+ RetSqlName("VV2")+" VV2 ON ( VV2.VV2_FILIAL=VVA.VVA_FILIAL AND VV2.VV2_CODMAR=VV1.VV1_CODMAR AND VV2.VV2_MODVEI=VV1.VV1_MODVEI AND VV2.D_E_L_E_T_=' ') "
EndIf
cQuery += "WHERE ( VVA.VVA_FILIAL<>'"+cFilVVA+"' OR VVA.VVA_NUMTRA<>'"+cNumAte+"' ) AND VVA.VVA_CHASSI='"+cChassi+"' AND VVA.VVA_ZZABER='1' AND VVA.D_E_L_E_T_=' '"
dbUseArea( .T., "TOPCONN", TcGenQry( ,, cQuery ), cQAlAux, .F., .T. )
If !( cQAlAux )->( Eof() )
MsgStop("Veiculo: "+( cQAlAux )->( VV1_CODMAR )+" "+( cQAlAux )->( VV2_DESMOD )+CHR(13)+CHR(10)+;
"Chassi: "+cChassi+CHR(13)+CHR(10)+CHR(13)+CHR(10)+;
"Este veiculo já se encontra com outro Atendimento em Andamento."+CHR(13)+CHR(10)+CHR(13)+CHR(10)+;
"Filial: "+( cQAlAux )->( VV9_FILIAL )+CHR(13)+CHR(10)+;
"Numero: "+( cQAlAux )->( VV9_NUMATE )+CHR(13)+CHR(10)+;
"Vendedor: "+( cQAlAux )->( VV0_CODVEN )+" - "+FM_SQL("SELECT VAI.VAI_NOMTEC FROM "+RetSqlName("VAI")+" VAI WHERE VAI.VAI_FILIAL='"+xFilial("VAI")+"' AND VAI.VAI_CODVEN='"+( cQAlAux )->( VV0_CODVEN )+"' AND VAI.D_E_L_E_T_=' ' "),"Atencao")
lRet := .f.
( cQAlAux )->( DbSkip() )
EndIf
( cQAlAux )->( DbCloseArea() )
EndIf
dbSelectArea("VV9")
Return lRet
Local cFilVVA := ParamIXB[1] // Filial do Atendimento
Local cNumAte := ParamIXB[2] // Nro do Atendimento
Local cChassi := ParamIXB[3] // Chassi do Veiculo
Local lRet := .t.
lRet := U_ZZVALVVA(cFilVVA,cNumAte,cChassi) // Validar se existe outro Atendimento Aberto (janela aberta) para o mesmo veiculo
Return lRet
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Funcao de USUARIO para validar se existe outro Atendimento Aberto (janela aberta) para o mesmo veiculo //
////////////////////////////////////////////////////////////////////////////////////////////////////////////
User Function ZZVALVVA(cFilVVA,cNumAte,cChassi)
Local cQuery := ""
Local cQAlAux := "SQLAUXILIAR"
Local lRet := .t.
Local cFilVV1 := xFilial("VV1")
Local cFilVV2 := xFilial("VV2")
If VVA->(FieldPos("VVA_ZZABER")) > 0
cQuery := "SELECT VV9.VV9_FILIAL , VV9.VV9_NUMATE , VV0.VV0_CODVEN , VV1.VV1_CODMAR , VV2.VV2_DESMOD FROM "+RetSqlName("VVA")+" VVA "
cQuery += "JOIN "+ RetSqlName("VV9")+" VV9 ON ( VV9.VV9_FILIAL=VVA.VVA_FILIAL AND VV9.VV9_NUMATE=VVA.VVA_NUMTRA AND VV9.D_E_L_E_T_=' ') "
cQuery += "JOIN "+ RetSqlName("VV0")+" VV0 ON ( VV0.VV0_FILIAL=VVA.VVA_FILIAL AND VV0.VV0_NUMTRA=VVA.VVA_NUMTRA AND VV0.D_E_L_E_T_=' ') "
If Empty(cFilVV1)
cQuery += "JOIN "+ RetSqlName("VV1")+" VV1 ON ( VV1.VV1_FILIAL='"+cFilVV1+"' AND VV1.VV1_CHASSI=VVA.VVA_CHASSI AND VV1.D_E_L_E_T_=' ') "
Else
cQuery += "JOIN "+ RetSqlName("VV1")+" VV1 ON ( VV1.VV1_FILIAL=VVA.VVA_FILIAL AND VV1.VV1_CHASSI=VVA.VVA_CHASSI AND VV1.D_E_L_E_T_=' ') "
EndIf
If Empty(cFilVV2)
cQuery += "JOIN "+ RetSqlName("VV2")+" VV2 ON ( VV2.VV2_FILIAL='"+cFilVV2+"' AND VV2.VV2_CODMAR=VV1.VV1_CODMAR AND VV2.VV2_MODVEI=VV1.VV1_MODVEI AND VV2.D_E_L_E_T_=' ') "
Else
cQuery += "JOIN "+ RetSqlName("VV2")+" VV2 ON ( VV2.VV2_FILIAL=VVA.VVA_FILIAL AND VV2.VV2_CODMAR=VV1.VV1_CODMAR AND VV2.VV2_MODVEI=VV1.VV1_MODVEI AND VV2.D_E_L_E_T_=' ') "
EndIf
cQuery += "WHERE ( VVA.VVA_FILIAL<>'"+cFilVVA+"' OR VVA.VVA_NUMTRA<>'"+cNumAte+"' ) AND VVA.VVA_CHASSI='"+cChassi+"' AND VVA.VVA_ZZABER='1' AND VVA.D_E_L_E_T_=' '"
dbUseArea( .T., "TOPCONN", TcGenQry( ,, cQuery ), cQAlAux, .F., .T. )
If !( cQAlAux )->( Eof() )
MsgStop("Veiculo: "+( cQAlAux )->( VV1_CODMAR )+" "+( cQAlAux )->( VV2_DESMOD )+CHR(13)+CHR(10)+;
"Chassi: "+cChassi+CHR(13)+CHR(10)+CHR(13)+CHR(10)+;
"Este veiculo já se encontra com outro Atendimento em Andamento."+CHR(13)+CHR(10)+CHR(13)+CHR(10)+;
"Filial: "+( cQAlAux )->( VV9_FILIAL )+CHR(13)+CHR(10)+;
"Numero: "+( cQAlAux )->( VV9_NUMATE )+CHR(13)+CHR(10)+;
"Vendedor: "+( cQAlAux )->( VV0_CODVEN )+" - "+FM_SQL("SELECT VAI.VAI_NOMTEC FROM "+RetSqlName("VAI")+" VAI WHERE VAI.VAI_FILIAL='"+xFilial("VAI")+"' AND VAI.VAI_CODVEN='"+( cQAlAux )->( VV0_CODVEN )+"' AND VAI.D_E_L_E_T_=' ' "),"Atencao")
lRet := .f.
( cQAlAux )->( DbSkip() )
EndIf
( cQAlAux )->( DbCloseArea() )
EndIf
dbSelectArea("VV9")
Return lRet
Programa Fonte
VEIXX012
Sintaxe
VX012VAL - Validação na Seleção do Veículo no Atendimento Modelo 2 ( < xFilial("VVA")> , < cNumAte> , < VV1->VV1_CHASSI> ) --> lRet
Parâmetros:
Nome | Tipo | Descrição | Default | Obrigatório | Referência | ||||||||||||
xFilial("VVA") | Caracter | Filial do Atendimento | X | ||||||||||||||
cNumAte | Caracter | Nro do Atendimento | X | ||||||||||||||
VV1->VV1_CHASSI | Caracter | Chassi do Veiculo | X |
Retorno
-
lRet(logico)
- Retorna se o veiculo pode ser selecionado na Consulta de Veiculos F7 do Atendimento Modelo 2.
Observações
Exemplos
Function VEIXX012(nTp,cFilVei,cChaInt,cCodTes,cNumAte,lFatDir)Local lRet := .t.Local cMsg := ""Local cLocVei := ""Local lReserv := .f.Local dDatRes := ctod("")Local cHorTmp := ""Local cQuery := ""Local cQAlAux := "SQLAUX"Local cGruVei := left(GetMv("MV_GRUVEI")+space(10),len(SB1->B1_GRUPO))Local cBloqStat := GetNewPar("MV_BLQSTAV","LO") // Nao mostrar veiculos que estao em Atendimentos com os STATUS informados neste ParametroDefault nTp := 1Default cFilVei := xFilial("VV1")Default cChaInt := VV1->VV1_CHAINTDefault cCodTes := ""Default lFatDir := .f.dbSelectArea("VV1")dbSetOrder(1) //Filial+ChaIntdbSeek(cFilVei+cChaInt)// Se for Finalizacao, verifica se existe VV1, // pois pode se tratar de Progresso ou venda futura If nTp == 1 // Selecao do Veiculo If ExistBlock("VX012VAL") lRet := ExecBlock("VX012VAL",.f.,.f.,{xFilial("VVA"),cNumAte,VV1->VV1_CHASSI}) If !lRet dbSelectArea("VV1") Return(.f.) EndIf EndIfElseIf nTp == 2 // Validacao na Finalizacao If !VV1->(Found()) cMsg := STR0001 // Veiculo nao cadastrado na tabela VV1! lRet := .f. EndIfEndIf
Variáveis
Nome | Tipo | Escopo | Pode Alterar | descrição | ||||||||||
Array of Record | Global | Não |
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas