Árvore de páginas

Ponto de Entrada

Descrição:

Ponto de entrada para que na importação de peças, seja possível gravar certos campos com valores padrão ou valores vindos de uma interação com o usuário

Localização:

Atualizações / Mov. Peças / Painel Orçamento

Eventos:

Function OX0010134_ImportaOrcCSV()

local lAllExt := ExistFunc("OX001131") // se tem o PE trata todas as extensões

local cFile := cGetFile(iif(lAllExt, "", "*.csv|*.csv"), "Orçamentos em CSV", GETF_LOCALHARD) // se tem o PE libera todas as extensões senão só csv

local cContent := memoRead(cFile)

local nLines := MLCount(cContent)

local nQtdInc := 0

local cMessage := STR0353 /*"Detalhes da importação: "*/ + chr(13) + chr(10) + "---" + chr(13) + chr(10)

local cLine := ""

local lFeito := .f.

local nX, cDet


if Empty(M->VS1_CLIFAT) .or. Empty(M->VS1_LOJA)

MsgAlert(STR0122)

return .f.

endif


if ! Empty(M->VS1_PEDREF)

MsgAlert(STR0295,STR0025)

return .f.

endif


lFeito := .f.


aExtData := {} // retornar array com campo e valor

aExtData := ExecBlock("OX001132", .f., .f., {})


if lAllExt

aDados := ExecBlock("OX001131", .f., .f., {cContent, cFile})

if ! Empty(aDados) // retornar em branco segue com importacao padrão

for nX := 1 to len(aDados)


if OX0010124_IncluiItemOrc(aDados[nX, 1], val(aDados[nX, 2]), @cDet, aExtData)

nQtdInc += 1

else

cMessage += chr(13) + chr(10) + " " + STR0202 + " " + aDados[nX, 1] + " " +STR0351+ " " + cDet // código do item XXX não pode ser importado.

endif

next

lFeito := .t.

endif

endif


if ! lFeito // importação do csv

for nX := 1 to nLines

cLine := MemoLine(cContent,, nX)

if nX == 1

loop // header do csv JD

endif

cLine := STRTRAN(cLine, '"', "")

aDados := STRTOKARR2(cLine, ",", .T.)


cDet := ""

if OX0010124_IncluiItemOrc(aDados[1], val(aDados[2]), @cDet, aExtData)

nQtdInc += 1

else

cMessage += chr(13) + chr(10) + " " + STR0202 + " " + aDados[1] + " " +STR0351+ " " + cDet // código do item XXX não pode ser importado.

endif

next

endif


cMessage += chr(13) + chr(10) + cValtoChar(nQtdInc) + STR0352 // " peças incluídas do arquivo selecionado."

AVISO(STR0025, cMessage, { "Ok" }, 3)

return .t.

Programa Fonte:

OFIXX001.PRW

Função:

OX0010134_ImportaOrcCSV()

Parâmetros:

N/A 

Retorno:
NomeTipoDescrição
aDef

Vetor

Array com 2 posições, sendo a primeira o campo e a segunda o valor a ser gravado no campo.

Exemplo:

Include totvs.ch

user function OX001132()
local aParamBox := {}
local aRet := {}
local aDef := {}
aAdd(aParamBox,{1,"Operação","01","@!","","","",0,.T.})
  
If !(ParamBox(aParamBox,"",@aRet,,,,,,,,.f.,.t.))
  Return {}
else
  aAdd(aDef, {"VS3_OPER", aRet[1]})
EndIf



return aDef