Árvore de páginas

01. DADOS GERAIS

Linha de Produto:Microsiga Protheus®
Segmento:Serviços
Módulo:Gestão de Serviços
Função:TECA351
Ticket:Não há. 
Requisito/Story/Issue (informe o requisito relacionado) :

DSERSGS-5254


02. SITUAÇÃO/REQUISITO

Ponto de Entrada para exportação da apuração de benefícios, que será habilitado caso o parâmetro  MV_GSRHOTP contenha o valor 2 e a operação de  envio seja Inclusão

03. SOLUÇÃO 

Ponto de Entrada 

Descrição:Microsiga Protheus®
Localização:Serviços
Programa Fonte:TECA351.PRW
Função:At351EnvRH
Parâmetros
NomeTipoDescrição
aCabec

Array

Dados do Cabeçalho (Dados da Folha de Pagamento do Atendente) da rotina automática, de:

aCabec[n, 01] - Nome do campo da Rotina Automática

aCabec[n, 02] - Valor do campo da Rotina Automática

aItens

Array

Dados dos itens da rotina automática, onde:

aItens[n] - Item a ser inserido: Valores das Verbas de Benefícios.

Se n for ímpar é uma marcação de Entrada, caso contrário, será uma saída, onde:

aItens[n][y, 01] - Nome do campo da Rotina Automática

aItens[n][y, 02]- Valor do campo da Rotina Automática

nOpcNumérico

Opção de Execução da Rotina Automática, onde:

3 - Inclusão

lCabLógicoPrimeira Execução da rotina 
Retorno:
NomeTipoDescriçãoObrigatório
lRetLógico

Retorno de Execução do Ponto de Entrada, onde indica a execução com sucesso

Sim

#INCLUDE "PROTHEUS.CH"
#INCLUDE "FILEIO.CH"

User Function At351IBe()

Local lRet := .T.

Local cDetCab := ""

Local nY := 0

Local cDetLinha := ""

Local nC := 0

Local cEmp := FWGrpCompany()

Local cFil := FwCodFil()

Local cDirArq := "\EXPCSVTEC\"+cEmp+"\" + StrTran(cFil, " ", "_")+"\"

Local lFirstProc := .F.

Local cMsg := ""

Local cColuna := ""


If ValType(PARAMIXB) == "A" .AND. Len(PARAMIXB) >= 4 .AND. ValType(PARAMIXB[01]) == "A"  .AND. Len(PARAMIXB[01]) > 0  .AND. ValType(PARAMIXB[02]) == "A" .AND. Len(PARAMIXB[02]) > 0

                If !ExistDir(cDirArq)

                               MakeDir("\EXPCSVTEC\")

                               MakeDir("\EXPCSVTEC\"+cEmp+"\")

                               MakeDir(cDirArq)

                EndIf

                aCabec := PARAMIXB[01]

                aItens := PARAMIXB[02]             

                lFirstProc := PARAMIXB[04]

                cNomeArq := "U_At351Exp"+Dtos(Date())+LTrim(Str(PARAMIXB[03]))+".txt"

                If lFirstProc .AND. File(cDirArq+cNomeArq)

                               fErase(cDirArq+cNomeArq)

                EndIf

                If !File(cDirArq+cNomeArq)

                               nHandle := FCreate(cDirArq+cNomeArq)

                Else

                               nHandle := FOpen(cDirArq+cNomeArq, FO_READWRITE)

                               FSeek(nHandle, 0, 2)

                EndIf

                aCabec := PARAMIXB[01]

                aItens := PARAMIXB[02]

                If nHandle <> -1

                               For nC := 1 to len(aCabec)

                                               cColuna := aCabec[nC, 01]

                                               cColuna := IIF( cColuna == "CPERIODO","RGB_PERIOD", IIF(cColuna == "CROTEIRO","RGB_ROTEIR",IIF(cColuna == "CNUMPAGTO", "RGB_SEMANA", cColuna)) )

                                               cDetCab += Padr(Alltrim(IIF( ValType(aCabec[nC, 02])<> "D",cValToChar(aCabec[nC, 02])  , DtoS(aCabec[nC, 02]))), TamSX3(cColuna)[1])

                               Next nC

                                For nC := 1 to Len(aItens)

                                               cDetLinha := cDetCab   

                                               For nY := 1 to Len(aItens[nC])

                                                               cDetLinha +=  PadR(Alltrim(IIF( ValType(aItens[nC, nY, 02])<> "D",cValToChar(aItens[nC, nY, 02])  , DtoS(aItens[nC, nY, 02]))), TamSX3(aItens[nC, nY, 01])[1])

                                               Next nY

                                               fWrite(nHandle, cDetLinha)

                               Next nC

                               lRet := .T.

                               fClose(nHandle)

                Else

                               Help("", 1, "U_At351IBe", "Problemas na criação do arquivo" , 1, 0)

                               lRet := .F.

                EndIf

Else

                Help("", 1, "U_At351IBe","Não enviados dados válidos referente os beneficios" , 1, 0)

                lRet := .F.

EndIf

Return lRet

04. DEMAIS INFORMAÇÕES

Não há.

05. ASSUNTOS RELACIONADOS