Descrição | Ponto de entrada localizado na rotina Garantia Mutua. Esta posicionado depois da mensagem de aviso informando as solicitação de garantia geradas para a O.S., e perguntando se o usuário deseja gerar uma nova solicitação ou continuar com a exportação do Orçamento. |
---|---|
Observações | |
Exemplos | #include "protheus.ch" |
User Function OA550VLD()
Local nResposta := ParamIXB1
If nResposta == 2
Alert("Usuario clicou em continuar")
EndIf
Return
Preview | |
---|---|
Veja também | |
Idioma | Português(Brasil) |
Versões | Todas |
Sistemas Operacionais Suportados | Todos |
Compatível com as Bases de Dados | Todas |
Updates | |
Parâmetros | nRespAviso - Botão selecionado na mensagem de aviso. |
1 = Opção de nova solicitação
2 = Opção de continuar
Retorno |
---|
Eventos de chamada do Ponto de Entrada |
// Se for passado um numero de orcamento, procura qualquer solicitacao para a mesma os sem numero de orcamento
// ou o numero do orcamento
If !Empty(cNumOrc)
cSQL := cSQLBase
cSQL += " AND VDF_NUMOSV = '" + cNumOsv + "'"
cSQL += " AND VDF_NUMORC = '" + cNumOrc + "'"
nAuxRecno := FM_SQL(cSQL)
// Se nao encontrar registro, procura um registro com o mesmo
// numero de OS e sem orcamento gravado, pois se trata de uma
// solicitacao de garantia criada pela Abertura de OS
If nAuxRecno == 0
cSQL := cSQLBase
cSQL += " AND VDF_NUMOSV = '" + cNumOsv + "'"
cSQL += " AND VDF_NUMORC = ' '"
nAuxRecno := FM_SQL(cSQL)
// Se encontrar o registro, pergunta se o usuario deseja criar
// um novo registro relacionando com o orcamento ...
If /* nAuxRecno <> 0 .and. */ lPergunta
cMsg := ""
cSQL := "SELECT VDF_NUMPED, VDF_VLREST , VDF_STATUS "
cSQL += " FROM " + RetSQLName("VDF")
cSQL += " WHERE VDF_FILIAL = '" + xFilial("VDF") + "'"
cSQL += " AND VDF_NUMOSV = '" + cNumOsv + "'"
cSQL += " AND VDF_STATUS IN ('P','L')"
cSQL += " AND D_E_L_E_T_ = ' '"
cSQL += " ORDER BY VDF_STATUS,VDF_NUMPED"
dbUseArea( .T., "TOPCONN", TcGenQry( ,, cSQL ), cAliasVDF , .F., .T. )
cQuebra := (cAliasVDF)->VDF_STATUS
While !(cAliasVDF)->(Eof())
cPedidos += (cAliasVDF)->VDF_NUMPED + "/"
nSubValor += (cAliasVDF)->VDF_VLREST
(cAliasVDF)->(dbSkip())
If (cAliasVDF)>(Eof()) .or. cQuebra <> (cAliasVDF)>VDF_STATUS
cMsg += AllTrim(RetTitle("VDF_STATUS")) + ": " + X3CBOXDESC("VDF_STATUS",cQuebra) + chr(13) + chr(10)
cMsg += AllTrim(RetTitle("VDF_NUMPED")) + ": " + Left(cPedidos,Len(cPedidos)-1) + chr(13) + chr(10)
cMsg += AllTrim(RetTitle("VDF_VLREST")) + ": " + Transform(nSubValor,PesqPict("VDF","VDF_VLREST")) + chr(13) + chr(10) + chr(13) + chr(10)
nValor += nSubValor
cPedidos := ""
nSubValor := 0
cQuebra := IIf( !(cAliasVDF)>(Eof()) , (cAliasVDF)>VDF_STATUS , "")
EndIf
End
(cAliasVDF)->(dbCloseArea())
dbSelectArea("VDF")
If !Empty(cMsg)
cMsg := STR0013 + chr(13) + chr(10) + chr(13) + chr(10) + cMsg // "Existe uma solicitação de garantia criada para a OS."
Else
cMsg := STR0018 + chr(13) + chr(10) + cMsg // "OS de garantia mútua mas ainda não possui solicitação gerada."
EndIf
cMsg += chr(13) + chr(10) + STR0017 + ": " + Transform(nValor,PesqPict("VDF","VDF_VLREST")) + chr(13) + chr(10) + chr(13) + chr(10) // "Total estimado"
cMsg += STR0016 // "Deseja criar uma nova solicitação relacionando este orçamento ou continuar a exportação?"
nRespAviso := Aviso(STR0012, cMsg , {STR0014 , STR0015
},3) // "Nova Sol.","Continuar"
If nRespAviso == 1
nAuxRecno := 0
Else
nAuxRecno := -1
EndIf
Endif
EndIf
If ExistBlock("OA550VLD")
//TODO Tratar o retorno do PE para possibilitar o usuario cancelar a exportação do orcamento
ExecBlock("OA550VLD",.F.,.F., { nRespAviso
} )
EndIf
Else
cSQL := cSQLBase + " AND VDF_NUMOSV = '" + cNumOsv + "'"
nAuxRecno := FM_SQL(cSQL)
EndIf
Variáveis | |
---|---|
Programa Fonte | OFIOA550 |