Árvore de páginas


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 cEmp	:= FWGrpCompany()
Local cDirArq := "\EXPCSVTEC\"+cEmp+"\" + StrTran(FwCodFil(), " ", "_")+"\"
Local lFirstProc := .F.
Local cMsg := ""
Local lRet := .F.

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_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(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 += Alltrim(IIF( ValType(aCabec[nC, 02])<> "D",cValToChar(aCabec[nC, 02])  , DtoS(aCabec[nC, 02])))+"|"
		Next nC
		
		For nC := 1 to Len(aItens)
			cDetLinha := cDetCab
		
			For nY := 1 to Len(aItens[nC])
				cDetLinha +=  Alltrim(IIF( ValType(aItens[nC, nY, 02])<> "D",cValToChar(aItens[nC, nY, 02])  , DtoS(aItens[nC, nY, 02])))+","
			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 marcações"
EndIf

aRetInc[1] := lRet
aAdd(aRetInc[2], cMsg)

Return aRetInc


04. DEMAIS INFORMAÇÕES

Não há.

05. ASSUNTOS RELACIONADOS