Árvore de páginas

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:

Rotina(s) envolvida(s)

Nome Técnico

MDTA695

EPIs Entregues por Funcionário

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:

Nome

Tipo

Descrição

Obrigatório

 aCols

Array

Contem os epis entregues

Sim

 

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