Árvore de páginas

01. DADOS GERAIS

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

DSERSGS-5422


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:TECA960.PRW
Função:A960ProRat
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
aRetArray

Retorno da Execução onde

aRet[1] - Execução com sucesso

aRet[2] - Mensagens de Erro do Ponto de Entrada

Sim

User Function At960PrRt()

Local aRetInc := {.T., ""}

Local cDetCab := ""

Local nY := 0

Local cDetLinha := ""

Local nC := 0

Local cDirArq := "\EXPCSVTEC\"+FWGrpCompany()+"\" + StrTran(FwCodFil(), " ", "_")+"\"

Local lFirstProc := .F.

Local cMsg := ""

Local lRet := .T.


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\"+FWGrpCompany()+"\")

                               MakeDir(cDirArq)

                EndIf


                aCabec := PARAMIXB[01]

                aItens := PARAMIXB[02]             

                lFirstProc := PARAMIXB[04]

               

               

                cNomeArq := "U_At960PrRt"+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)

                                               cDetCab += Padr(Alltrim(IIF( ValType(aCabec[nC, 02])<> "D",cValToChar(aCabec[nC, 02])  , DtoS(aCabec[nC, 02]))), TamSX3(aCabec[nC, 01])[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                              

                                         

                                               cDetLinha := Substr(cDetLinha, 1, Len(cDetLinha)-1) + CRLF

                                               fWrite(nHandle, cDetLinha)

                               Next nC

                               lRet := .T.

                               fClose(nHandle)

                Else

                               cMsg := "Problemas na criação do arquivo"

                EndIf

Else

                cMsg := "Não enviados dados válidos referente ao rateio"

EndIf


aRetInc[1] := lRet


If !lRet

                aRetInc[2] := cMsg

EndIf


Return aRetInc

04. DEMAIS INFORMAÇÕES

Não há.

05. ASSUNTOS RELACIONADOS