Árvore de páginas

Ponto de Entrada

Descrição:

Este Ponto de Entrada permite a customização de campos a gravar no momento de importação das informações da lista de peças New Holland para o cadastro de peças no Protheus.

Localização:

Atualizações > Peças NH > Import Peças NH

Eventos:

aVetInsB1 := {}

aAdd(aVetInsB1,{"SB1", "B1_FILIAL","C",cFilSB1})
aAdd(aVetInsB1,{"SB1", "B1_COD","C",""}) // <<<<< 2
aAdd(aVetInsB1,{"SB1", "B1_GRUPO","C",cGruIte})
aAdd(aVetInsB1,{"SB1", "B1_CODITE","C",""}) // <<<<< 4
aAdd(aVetInsB1,{"SB1", "B1_TIPO","C","ME"})
aAdd(aVetInsB1,{"SB1", "B1_UM","C","PC"})
aAdd(aVetInsB1,{"XXX", "B1_SEGUM","C","PC"})
aAdd(aVetInsB1,{"SB1", "B1_LOCPAD","C",cAlmox})
aAdd(aVetInsB1,{"XXX", "B1_PICM","N",0})
aAdd(aVetInsB1,{"XXX", "B1_TE","C",cTesEnt})
aAdd(aVetInsB1,{"XXX", "B1_TS","C",cTesSai})
aAdd(aVetInsB1,{"SB1", "B1_TIPOCQ","C","M"})
aAdd(aVetInsB1,{"SB1", "B1_FABRIC","C",cFabric})
aAdd(aVetInsB1,{"SB1", "B1_CONTRAT","C","N"})
aAdd(aVetInsB1,{"SB1", "B1_LOCALIZ","C","N"})
aAdd(aVetInsB1,{"SB1", "B1_IRRF","C","N"})
aAdd(aVetInsB1,{"SB1", "B1_CONTSOC","C","N"})
aAdd(aVetInsB1,{"SB1", "B1_ENVOBR","C","0"})
aAdd(aVetInsB1,{"SB1", "B1_SITPROD","C","N"})
aAdd(aVetInsB1,{"SB1", "B1_MONO","C","N"})
aAdd(aVetInsB1,{"SB1", "B1_FLAGSUG","C","1"})
aAdd(aVetInsB1,{"SB1", "B1_CLASSVE","C","1"})
aAdd(aVetInsB1,{"SB1", "B1_APROPRI","C","D"})
aAdd(aVetInsB1,{"SB1", "B1_FANTASM","C","N"})
aAdd(aVetInsB1,{"SB1", "B1_TIPODEC","C","N"})
aAdd(aVetInsB1,{"SB1", "B1_UREV","C",dtos(ddatabase)})
aAdd(aVetInsB1,{"SB1", "B1_PERINV","N",180})
aAdd(aVetInsB1,{"SB1", "B1_GRADE","C","N"})
aAdd(aVetInsB1,{"SB1", "B1_PROC","C",cCodFor})
aAdd(aVetInsB1,{"SB1", "B1_LOJPROC","C",cLojFor})
aAdd(aVetInsB1,{"SB1", "B1_FORAEST","C",cFestCo})
aAdd(aVetInsB1,{"SB1", "B1_ANUENTE","C","2"})
aAdd(aVetInsB1,{"SB1", "B1_BALANCA","C","0"})
aAdd(aVetInsB1,{"SB1", "B1_IMPZFRC","C","N"})
aAdd(aVetInsB1,{"XXX", "B1_CONV","N",1}) // <<<< 35
aAdd(aVetInsB1,{"SB1", "B1_ORIGEM","C"," "})
aAdd(aVetInsB1,{"SB1", "B1_DTREFP1","C",dtos(ddatabase)})
aAdd(aVetInsB1,{"SB1", "B1_DESC","C",""}) // <<<<< 38
aAdd(aVetInsB1,{"SB1", "B1_IPI","N",0}) // <<<<< 39
aAdd(aVetInsB1,{"SB1", "B1_CONTA","C",cCtaCtb})
aAdd(aVetInsB1,{"SB1", "B1_QE","N",0}) // <<<<< 41
aAdd(aVetInsB1,{"SB1", "B1_GRUDES","C",""}) // <<<<< 42
aAdd(aVetInsB1,{"SB1", "B1_ATIVO","C",""}) // <<<<< 43
aAdd(aVetInsB1,{"SB1", "B1_CLASSE","C",""}) // <<<<< 44
aAdd(aVetInsB1,{"SB1", "B1_POSIPI","C",""}) // <<<<< 45
aAdd(aVetInsB1,{"SB1", "B1_PICMENT","N",0}) // <<<<< 46
aAdd(aVetInsB1,{"SB1", "B1_CC","C",cCenCus})
aAdd(aVetInsB1,{"SB1", "B1_PRV1","N",0}) // <<<<< 48
aAdd(aVetInsB1,{"SB1", "B1_PIS","C",""}) // <<<<< 49
aAdd(aVetInsB1,{"SB1", "B1_COFINS","C",""}) // <<<<< 50
aAdd(aVetInsB1,{"SB1", "R_E_C_N_O_","N",0}) // <<<<< 51
aAdd(aVetInsB1,{"SB1", "B1_MSBLQL","C","2"})
aAdd(aVetInsB1,{"XXX", "B1_CODFAB","C",""}) // <<<<< 53
aAdd(aVetInsB1,{"SB1", "B1_PESO","N",0}) // <<<<< 54

aAdd(aVetInsB1,{"SB5","B5_FILIAL","C",cFilSB5})
aAdd(aVetInsB1,{"SB5","B5_DTREFP2","C",DTOS(dDataBase)})
aAdd(aVetInsB1,{"SB5","B5_DTREFP3","C",DTOS(dDataBase)})
aAdd(aVetInsB1,{"SB5","B5_COD","C", ""}) // <<<<< 58
aAdd(aVetInsB1,{"SB5","R_E_C_N_O_","N",0}) // <<<<< 59
aAdd(aVetInsB1,{"SB5","B5_PRV2","N",0}) // <<<<< 60
aAdd(aVetInsB1,{"SB5","B5_PRV3","N",0}) // <<<<< 61
aAdd(aVetInsB1,{"SB5","B5_PRV4","N",0}) // <<<<< 62
aAdd(aVetInsB1,{"SB5","B5_PRV5","N",0}) // <<<<< 63
aAdd(aVetInsB1,{"SB5","B5_PRV6","N",0}) // <<<<< 64
aAdd(aVetInsB1,{"XXX", "B1_CRICOD","C",""}) // <<<<< 65
aAdd(aVetInsB1,{"SB5","B5_CEME","C",""}) // <<<<< 66
aAdd(aVetInsB1,{"SB1","B1_GARANT","C","2"}) // <<<<< 66


//
FT_FGotop()
While ! FT_FEof()
cStr := FT_FReadLN()
while AT("'",cSTR) > 0
nChar := AT("'",cSTR)
cStr := Left(cSTR,nChar-1)+" "+Subs(cSTR,nChar+1)
enddo
//
nCont++
//
if nCont > (nQtdReg / 200)
nCont = 0
IncRegua()
Endif
// Armazena codigo do item do arquivo
/*
ITEM 1 15
DESCRIÇÃO 16 33
ORIGEM Ver Tabela 43 1 <<<<------
CLASSIFICAÇÃO FISCAL 44 10
IPI 15,5 54 4 <<<<------
PESO 58 9
PREÇO 67 13
EMBALAGEM 80 3
LINHA DE PRODUTO Ver Tabela 83 3
DESCONTO 0,1,2 ... 9 86 1
GRUPO-MATERIAL 87 4
DESCONTO MP/EME 20,5 91 3
DESCONTO EST/PROG 20,5 94 3
MODELO 97 10
UNIDADE MEDIDA pc,kg,pe,ml,m 107 2
*/
cItem := Subs(cStr,1,15)
cDescricao := Subs(cStr,16,27)
cOrigem := Subs(cStr,43,1)
cClassFis := Subs(cStr,44,8)
nIPI := VAL(Alltrim(Subs(cStr,54,4)))/100
nPeso := VAL(Alltrim(Subs(cStr,58,9)))/1000
nPreco := VAL(Alltrim(Subs(cStr,67,13)))/100
nEmbalagem := VAL(Subs(cStr,80,3))
cLinhaProd := Subs(cStr,83,3)
cDesconto := Subs(cStr,86,1)
cGrupoMaterial := Subs(cStr,87,4)
nDescMP := Subs(cStr,91,3)
nDescEST := Subs(cStr,94,3)
cModelo := Subs(cStr,97,10)
cUniMedida := Subs(cStr,107,2)

nPrePub := Round(nPreco * (1 + MV_PAR03/100),2)
///////////////////////////////////////////
// Verificação da existência dos registros
///////////////////////////////////////////

lExisteSB1 := .f.
lExisteSB5 := .f.
lExisteGrp := .f.

nRecWhere1 = 0
nRecWhere5 = 0

cQryAl001 := GetNextAlias()
cQuery := "SELECT R_E_C_N_O_ CNT ,B1_COD, B1_GRUPO FROM "+RetSqlName("SB1")
cQuery += " WHERE B1_FILIAL ='" + cFilSB1 + "' AND B1_COD ='" + Alltrim(cItem) + "' AND"
cQuery += " D_E_L_E_T_=' '"
dbUseArea( .T., "TOPCONN", TcGenQry( ,, cQuery ), cQryAl001, .F., .T. )
if !(cQryAl001)->(eof())
nRecWhere1 = (cQryAl001)->(CNT)
lExisteSB1 := .t.
if !Empty((cQryAl001)->(B1_GRUPO))
lExisteGrp := .t.
endif
endif
(cQryAl001)->(dbCloseArea())

cQryAl001 := GetNextAlias()
cQuery := "SELECT R_E_C_N_O_ CNT FROM "+RetSqlName("SB5")
cQuery += " WHERE B5_FILIAL ='" + cFilSB5 + "'AND B5_COD ='" + Alltrim(cItem) + "' AND"
cQuery += " D_E_L_E_T_=' '"
dbUseArea( .T., "TOPCONN", TcGenQry( ,, cQuery ), cQryAl001, .F., .T. )
if !(cQryAl001)->(eof())
nRecWhere5 = (cQryAl001)->(CNT)
lExisteSB5 := .t.
endif
(cQryAl001)->(dbCloseArea())

if !lExisteSB1
cAliasSB1 := GetNextAlias()
BeginSql Alias cAliasSB1
SELECT MAX(R_E_C_N_O_) NRO
FROM %Table:SB1% SB1
EndSql
nRecNoB1 := (cAliasSB1)->(NRO)
(cAliasSB1)->(DBCloseArea())
nRecNoB1++

aVetInsB1[2,4] := cItem // "CPCJD"+STRZERO(nProx,TamSx3("B1_COD")[1] - 6)
aVetInsB1[51,4] := nRecNoB1
else
aVetInsB1[2,4] := ""
aVetInsB1[51,4] := 0
endif

if !lExisteSB5
cAliasSB5 := GetNextAlias()
BeginSql Alias cAliasSB5
SELECT MAX(R_E_C_N_O_) NRO
FROM %Table:SB5% SB5
EndSql
nRecNoB5 := (cAliasSB5)->(NRO)
(cAliasSB5)->(DBCloseArea())
nRecNoB5++

aVetInsB1[58,4] := cItem // "CPCJD"+STRZERO(nProx,TamSx3("B1_COD")[1] - 6)
aVetInsB1[59,4] := nRecNoB5
else
aVetInsB1[58,4] := ""
aVetInsB1[59,4] := 0
endif
//
aVetInsB1[4,4] := cItem
aVetInsB1[36,4] := cOrigem
aVetInsB1[38,4] := cDescricao // aAdd(aVetInsB1,{"SB1", "B1_DESC","C",""}) // <<<<< 38
aVetInsB1[39,4] := 0 // TODO: aAdd(aVetInsB1,{"SB1", "B1_IPI","N",0}) // <<<<< 39
aVetInsB1[41,4] := nEmbalagem // aAdd(aVetInsB1,{"SB1", "B1_QE","N",0}) // <<<<< 41
aVetInsB1[42,4] := cDesconto // TODO: aAdd(aVetInsB1,{"SB1", "B1_GRUDES","C",""}) // <<<<< 42
aVetInsB1[43,4] := "S" // TODO: aAdd(aVetInsB1,{"SB1", "B1_ATIVO","C",""}) // <<<<< 43
aVetInsB1[44,4] := "" // aAdd(aVetInsB1,{"SB1", "B1_CLASSE","C",""}) // <<<<< 44
aVetInsB1[45,4] := cClassFis // aAdd(aVetInsB1,{"SB1", "B1_POSIPI","C",""}) // <<<<< 45
aVetInsB1[46,4] := 0 // TODO: aAdd(aVetInsB1,{"SB1", "B1_PICMENT","N",0}) // <<<<< 46
aVetInsB1[48,4] := nPrePub // aAdd(aVetInsB1,{"SB1", "B1_PRV1","N",0}) // <<<<< 48
aVetInsB1[49,4] := "S" // TODO: aAdd(aVetInsB1,{"SB1", "B1_PIS","C",""}) // <<<<< 49
aVetInsB1[50,4] := "S" // TODO: aAdd(aVetInsB1,{"SB1", "B1_COFINS","C",""}) // <<<<< 50
aVetInsB1[53,4] := cItem // aAdd(aVetInsB1,{"SB1", "B1_CODFAB","C",""}) // <<<<< 53
aVetInsB1[54,4] := nPeso // aAdd(aVetInsB1,{"SB1", "B1_PESO","N",""}) // <<<<< 54

aVetInsB1[66,4] := cDescricao

If ExistBlock("ONNH01AV")
ExecBlock("ONNH01AV",.f.,.f.)
EndIf

INSUPDPEC(aVetInsB1, if(lExisteSB1, "R_E_C_N_O_ =" + Alltrim(STR(nRecWhere1)) ,NIL),"SB1",lExisteGrp)

INSUPDPEC(aVetInsB1, if(lExisteSB5, "R_E_C_N_O_ =" + Alltrim(STR(nRecWhere5)) ,NIL),"SB5")

ft_fskip()

End
//
ConfirmSX8()
FClose(nHnd)

Programa Fonte:

OFINNH01.PRW

Função:

RunProc

Retorno:

N/A

Parâmetro:N/A

 

Exemplo:

User Function ONNH01AV()
Local nCntFor
//
DBSelectArea("SBZ")
DBSetOrder(1)
for nCntFor := 1 to Len(aFilis)
if !DBSeek(aFilis[nCntFor,1] + cPartNumber)
reclock("SBZ",.t.)
SBZ->BZ_FILIAL = aFilis[nCntFor,1]
SBZ->BZ_COD = cPartNumber
msunlock()
endif
next

return