020IFunc Retorna os funcionários que serão cadastrados como Atendentes
Características do Requisito
Linha de Produto: | Microsiga Protheus |
Segmento: | Serviços |
Módulo: | Gestão de Serviços |
Rotina: | TECA020 |
O ponto de entrada é indicado para retornar os funcionários que poderão ser selecionados para serem cadastrados como Atendentes
Ponto de Entrada
Descrição: | At020IFunc Retorna os funcionários que serão cadastrados como Atendentes | ||||||||
Localização: | Atualizações>>Cadastros>>Prestação de Serviços >>Atendentes>>Importação de Funcionários | ||||||||
Programa Fonte: | TECA020.PRW | ||||||||
Função: | TECA020 | ||||||||
Retorno: |
|
#INCLUDE "PROTHEUS.CH"
User Function At020IFunc()
Local aStruct := {}
Local aRetorno := {}
Local aArea := GetArea()
Local nTamCDFunc := AA1->(TamSX3("AA1_CDFUNC")[1])
Local nTamFun := SRJ->(TamSX3("RJ_FUNCAO")[1])
Local nTamCC := CTT->(TamSX3("CTT_CUSTO")[1])
Local nTamTur := SR6->(TamSX3("R6_TURNO")[1])
Local nC := 0
Local aFuncImp := {}
Local nTamFunFl := AA1->(TamSX3("AA1_FUNFIL")[1])
Local cFuncs := ""
Local aAreaAA1 := AA1->(GetArea())
Local aAreaSRJ := SRJ->(GetArea())
Local aAreaCTT := CTT->(GetArea())
Local aAreaSR6 := SR6->(GetArea())
Local aAreaSRA := SRA->(GetArea())
aAdd( aFuncImp , {"D MG 01 ",;
"100002",;
"MARIANA MATHIAS",;
"",;
"",;
"01",;
"02T",;
"C001",;
"",})
aAdd( aFuncImp , {"D MG 01 ",;
"004226",;
"teste",;
"",;
"",;
"01",;
"02T",;
"C001",;
""})
aAdd( aFuncImp , {"D MG 01 ",;
"",;
"LUANA DE SOUZA",;
"",;
"",;
"01",;
"02T",;
"",;
""})
aAdd( aFuncImp , {"D MG 01 ",;
"",;
"LUANA MATHIAS",;
"",;
"",;
"",;
"",;
"C001",;
""})
aAdd( aFuncImp , {"",;
"",;
"Josefa maria",;
"002",;
"",;
"01",;
"",;
"C001",;
""})
aAdd( aFuncImp , {"D MG 01 ",;
"100004",;
"Josefa maria zinha",;
"004",;
"",;
"01",;
"",;
"C001",;
""})
//Monta a estrutura dos campos
Aadd(aStruct, TamSX3("RA_FILIAL")[1])//01
Aadd(aStruct, TamSX3("RA_MAT")[1])//02
Aadd(aStruct, TamSX3("RA_NOME")[1])//03
Aadd(aStruct, TamSX3("RA_CARGO")[1])//04
Aadd(aStruct, TamSX3("RA_DCARGO")[1])//05
Aadd(aStruct, TamSX3("RA_CODFUNC")[1])//06
Aadd(aStruct, TamSX3("RA_TNOTRAB")[1])//07
Aadd(aStruct, TamSX3("RA_CC")[1])//08
Aadd(aStruct, TamSX3("RA_DESCFUN")[1])//09
AA1->(DbSetOrder(7)) //AA1_FILIAL + AA1_CDFUNC + AA1_FUNFIL
SRJ->(DbSetOrder(1))
CTT->(DbSetOrder(1))
SR6->(DbSetOrder(1))
SRA->(DbSetOrder(1))
For nC := 1 to Len(aFuncImp)
If (Empty(aFuncImp[nC, 02]) .OR. SRA->(DbSeek(xFilial("SRA")+ PadR(aFuncImp[nC, 02], aStruct[01])))) .AND. ;
(Empty(aFuncImp[nC, 02]) .OR. !AA1->(DbSeek(xFilial("AA1")+ PadR( aFuncImp[nC, 02], nTamCDFunc)+ PadR( aFuncImp[nC, 01], nTamFunFl))) )
//Se localizou o colaborador na SRA, obtém os dados
If SRA->(Found())
aAdd(aRetorno, {SRA->RA_FILIAL, ; //**
SRA->RA_MAT,;// **
SRA->RA_NOME, ;// **
SRA->RA_CARGO,;
PadR(aFuncImp[nC, 05],aStruct[05] ), ;
SRA->RA_CODFUNC,; //**
SRA->RA_TNOTRAB, ;
SRA->RA_CC,; //**
PadR(aFuncImp[nC, 09],aStruct[09] )}) //**
ElseIf (Empty(aFuncImp[nC, 06]) .OR. SRJ->(DbSeek(xFilial("SRJ")+ PadR(aFuncImp[nC, 06], nTamFun))) ) .AND.;
(Empty(aFuncImp[nC, 08]) .OR. CTT->(DbSeek(xFilial("CTT")+ PadR(aFuncImp[nC, 08], nTamCC))) ) .AND.;
(Empty(aFuncImp[nC, 07]) .OR. SR6->(DbSeek(xFilial("SR6") + PadR(aFuncImp[nC, 07], nTamTur))) )
aAdd(aRetorno, {PadR(aFuncImp[nC, 01],aStruct[01] ), ; //**
PadR(aFuncImp[nC, 02],aStruct[02]),;// **
PadR(aFuncImp[nC, 03],aStruct[03] ), ;// **
PadR(aFuncImp[nC, 04],aStruct[04]),;
PadR(aFuncImp[nC, 05],aStruct[05] ), ;
PadR(aFuncImp[nC, 06],aStruct[06]),; //**
PadR(aFuncImp[nC, 07],aStruct[07] ), ;
PadR(aFuncImp[nC, 08],aStruct[08]),; //**
PadR(aFuncImp[nC, 09],aStruct[09] )}) //**
Else
cFuncs += CRLF + aFuncImp[nC, 03] + "/" + aFuncImp[nC, 02]
EndIf
Else
cFuncs += CRLF + aFuncImp[nC, 03] + "/" + aFuncImp[nC, 02]
EndIf
Next nC
If !Empty(cFuncs)
ConOut("At020IFunc - Registros ignorados. Funcionario/Matrícula " + cFuncs)
EndIf
RestArea(aAreaAA1)
RestArea(aAreaSRJ)
RestArea(aAreaCTT)
RestArea(aAreaSR6)
RestArea( aAreaSRA)
RestArea(aArea)
Return aRetorno