Árvore de páginas

Ponto de Entrada

Descrição:

Este ponto de entrada está localizado na rotina Mov Inter. Veículo (VEIVM120) e é executado no momento da movimentação de armazém / localização de um veículo. A finalidade deste ponto de entrada é permitir a manipulação / inserção de novos campos no momento de realizar a movimentação de transferência de armazéns na chamada da rotina MATA261 (tabela SD3).

Localização:

Atualizações \ Mov Atendimento \ Mov Inter. Veículo

Eventos:

Static Function FS_VEIVM120() // Movimentacao Interna

Local cDocumento

Local aItensNew := {}

Local nTamAEstq := 0

Local nPosAEstq

Local nUltPos

Local l261IntWMS := a261IntWMS()

///////////////////////////////////////////////////

// Posicoes no Vetor de Integracao com o MATA261 //

///////////////////////////////////////////////////

nTamAEstq := 21

If l261IntWMS

nTamAEstq += 1

EndIf

nTamAEstq += 1

If SD3->(FieldPos("D3_IDDCF"))>0 .And. l261IntWMS

nTamAEstq += 1

EndIf

If SD3->(FieldPos("D3_OBSERVA")) <> 0

nTamAEstq += 1

EndIf

///////////////////////////////////////////////////

If !Empty(cChassi)

If (cArmDe+cLocDe) <> (cArmPara+cLocPara)

If !Empty(cArmPara) .and. !Empty(cLocPara)

DbSelectArea("SB1")

BEGIN TRANSACTION

// Cria Movimentacao Interna //

cDocumento := Criavar("D3_DOC")

cDocumento := IIf(Empty(cDocumento),NextNumero("SD3",2,"D3_DOC",.T.),cDocumento)

cDocumento := A261RetINV(cDocumento)

aadd ( aItensNew,{cDocumento,dDataBase})


AADD( aItensNew , Array(nTamAEstq) )

nPosAEstq := Len(aItensNew)


// Produto Origem

aItensNew[nPosAEstq,01] := SB1->B1_COD

aItensNew[nPosAEstq,02] := SB1->B1_DESC

aItensNew[nPosAEstq,03] := SB1->B1_UM

aItensNew[nPosAEstq,04] := cArmDe

aItensNew[nPosAEstq,05] := cLocDe

// Produto Destino

aItensNew[nPosAEstq,06] := SB1->B1_COD

aItensNew[nPosAEstq,07] := SB1->B1_DESC

aItensNew[nPosAEstq,08] := SB1->B1_UM

aItensNew[nPosAEstq,09] := cArmPara

aItensNew[nPosAEstq,10] := cLocPara

//

aItensNew[nPosAEstq,11] := ""

aItensNew[nPosAEstq,12] := ""

aItensNew[nPosAEstq,13] := ""

aItensNew[nPosAEstq,14] := criavar('D3_DTVALID')

aItensNew[nPosAEstq,15] := criavar('D3_POTENCI')

aItensNew[nPosAEstq,16] := 1

aItensNew[nPosAEstq,17] := criavar("D3_QTSEGUM")

aItensNew[nPosAEstq,18] := criavar("D3_ESTORNO")

aItensNew[nPosAEstq,19] := criavar("D3_NUMSEQ")

aItensNew[nPosAEstq,20] := criavar("D3_LOTECTL")

aItensNew[nPosAEstq,21] := criavar("D3_DTVALID")


nUltPos := 21

If l261IntWMS

aItensNew[nPosAEstq,++nUltPos] := criavar("D3_SERVIC")

EndIf

aItensNew[nPosAEstq,++nUltPos] := criavar("D3_ITEMGRD")

If SD3->(FieldPos("D3_IDDCF"))>0 .And. l261IntWMS

aItensNew[nPosAEstq,++nUltPos] := criavar("D3_IDDCF")

EndIf

If SD3->(FieldPos("D3_OBSERVA")) <> 0

aItensNew[nPosAEstq,++nUltPos] := criavar("D3_OBSERVA")

EndIf


If (ExistBlock("VM120AV"))

aItensNew := ExecBlock("VM120AV", .f., .f., {aItensNew})

EndIf

Programa Fonte:

VEIVM120.PRW

Função:

FS_VEIVM120()

Parâmetros:
NomeTipo Descrição

aItensNew

Matriz

Campos da SD3 que deverão ser atualizados ou inseridos novos campos pelo ponto de entrada para serem utilizados no ExecAuto da rotina de transferência de peças entre armazéns (MATA261).

Retorno:
NomeTipoDescrição

aItensNew

Matriz

Campos da SD3 atualizados pelo ponto de entrada para serem utilizados no ExecAuto da rotina de transferência de peças entre armazéns (MATA261).

Exemplo:

Include totvs.ch

User Function VM120AV()


Local aItensAlt := ParamIxb[1]


MsgInfo("Ponto de Entrada VM120AV executado com sucesso!")


Return aItensAlt