01. DADOS GERAIS

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

DSERSGS-5254


02. SITUAÇÃO/REQUISITO

Ponto de Entrada para exportação de Marcações, que será habilitado caso o parâmetro  MV_GSRHOTP contenha o valor 2

03. SOLUÇÃO 

Ponto de Entrada 

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

Array

Dados do Cabeçalho (Matrícula 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: Horários de Marcação do Atendente.

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

5 - Exclusão

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

Retorno de Execução do Ponto de Entrada, onde

aRetInc[1] - Lógico - Execução com Sucesso?

aRetInc[2] - Array Unidimensional contendo a lista de mensagens de Erro

Sim

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

User Function At910CMa()

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

Local cDetCab := ""

Local nY := 0

Local cDetLinha := ""

Local nC := 0

Local cDirArq := "\EXPCSVTEC\"+cEmpAnt+"\" + StrTran(cFilAnt, " ", "_")+"\"

Local lFirstProc := .F.

Local cMsg := ""

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

                               MakeDir(cDirArq)

                EndIf

                aCabec := PARAMIXB[01]

                aItens := PARAMIXB[02]             

                lFirstProc := PARAMIXB[04]

                cNomeArq := "U_At910CMa_"+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(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 //+ IIf( nC % 2 == 1, "E", "S")+";"

                                               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 às maracaoes"

EndIf

aRetInc[1] := lRet

aAdd(aRetInc[2], cMsg)

Return aRetInc

04. DEMAIS INFORMAÇÕES

Não há.

05. ASSUNTOS RELACIONADOS