Ponto de Entrada para realizar operações ao confirmar a tela da Rotina de Epis Entregues por Funcionário
Características do Requisito
Linha de Produto: | Microsiga Protheus | ||||
Segmento: | Serviço | ||||
Módulo: | Medicina e Segurança do Trabalho. | ||||
Rotina: |
| ||||
Chamados Relacionados | TTZLOJ | ||||
País(es): | Brasil | ||||
Banco(s) de Dados: | Todos | ||||
Sistema(s) Operacional(is): | Windows/Linux | ||||
Versões/Release: | Release 12.1.6 | ||||
Versão Expedida: | Release 12.1.6 |
Ponto de Entrada
Descrição: | O ponto de entrada MDTA6958 poderá ser utilizado ao realizar a entrega de um epi, no procedimento de confirmação da tela de EPIs Entregues por Funcionário. | ||||||||
Localização: | Atualizações\Epi\Funcionário x Epi | ||||||||
Eventos: | É executado ao confirmar a tela. | ||||||||
Programa Fonte: | MDTA695.PRX | ||||||||
Função: | MDTA6958() | ||||||||
Retorno: |
|
Exemplo:
#Include 'Protheus.ch'
User Function MDTA6958()
//Variaveis basicas(Parametros)
Local nPosChv := PARAMIXB[1]
Local aChvTNF := PARAMIXB[2]
Local nPosTNF := PARAMIXB[3]
Local cEpi := PARAMIXB[4]
Local dDte := PARAMIXB[5]
Local cHra := PARAMIXB[6]
Local nINDDEV := PARAMIXB[7]
Local aCols := PARAMIXB[8]
Local aCOLStnf := PARAMIXB[9]
Local nPOSEpi := PARAMIXB[10]
Local nPOS1 := PARAMIXB[11]
Local nPOS2 := PARAMIXB[12]
Local lFound := PARAMIXB[13]
Local lRET := PARAMIXB[14]
Local l695Auto := PARAMIXB[15]
Local cUsaInt1 := PARAMIXB[16]
Local dDataBloq := PARAMIXB[17]
Local nDTADEV := PARAMIXB[18]
Local nDEVQTD := PARAMIXB[19]
Local nQTDE := PARAMIXB[20]
Local oGet := PARAMIXB[21]
//Variaveis basicas
Local nX := 0
Local nPosAnt := 0
Local lYesNo := .T.
nPosChv := aScan( aChvTNF , {|x| x == cEpi+DtoS(dDte)+cHra } )
If nPosChv == 0 .and. nPosTNF == 0
aAdd ( aChvTNF , cEpi+DtoS(dDte)+cHra )
For nX := 1 To Len(aCols)
If nx <> n .And. !lFound .And. lRET
nPosAnt := aSCAN(aCOLStnf, {|x| aCols[nx][nPOSEpi] == x[nPOSEpi] .and. aCols[nx][nPOS1] == x[nPOS1] .and. aCols[nx][nPOS2] == x[nPOS2] })
If nPosAnt > 0 .and. aCols[nX][nPOSEpi] == cEpi .and. aCols[nX][nINDDEV] == "2"
If !l695Auto
lYesNo:= MsgYesNo("Este funcionário já possui um EPI do mesmo tipo."+CHR(13)+"Deseja alterar o status do EPI anterior para 'Devolvido'?")
EndIf
If l695Auto .Or. lYesNo
If cUsaInt1 == "S" .And. ( aCols[ nX , nPOS1 ] <= dDataBloq .And. !Empty( aCols[ nX , nPOS1 ] ) .And. Empty( aCols[ nX , nDTADEV ] ) .Or.;
aCols[ nX , nDTADEV ] <= dDataBloq .And. !Empty( aCols[ nX , nDTADEV ] ) )
ShowHelpDlg( "ATENÇÃO" , { "A data informado está bloqueada para movimentos." } , 1 , { "Favor verificar o parâmetro MV_DBLQMOV." } , 2 )
lRET := .F.
Else
aCols[nx][nDTADEV] := dDte
aCols[nx][nINDDEV] := "1"
aCols[nx][nDEVQTD] := aCols[nx][nQTDE]
If !l695Auto
If ValType( oGet ) == "O" .And. Type( "oGet:oBrowse" ) == "O"
oGet:oBrowse:nAt := nX
oGet:oBrowse:Refresh()
oGet:oBrowse:SetFocus()
Else
oGet:nAt := nX
oGet:Refresh()
oGet:SetFocus()
EndIf
EndIf
EndIf
lRET := .F.
EndIf
lFound := .t. //Encontrou EPI do mesmo tipo em uso
EndIf
EndIf
Next
EndIf
Return aCols