Árvore de páginas

Ponto de Entrada

Descrição:

Ponto de Entrada tem a finalidade de permitir que o cliente inclua campos na integração com o Pedido de Venda.(SC5/SC6)

Localização:

Atualizações / Mov. Peças / Contagem Estoque (OFIPM040)

Eventos:

Static Function GeraPedido(aRet)

Local _niS := 0

Local aCabecS := {}

Local aIteSai := {}

 

dbSelectArea("SA1")

dbSetOrder(1)

dbSeek(xFilial("SA1")+aRet[1,1]+aRet[1,2])

 

aadd(aCabecS,{"C5_TIPO" ,"N" ,Nil})

aadd(aCabecS,{"C5_CLIENTE",aRet[1,1] ,Nil})

aadd(aCabecS,{"C5_LOJACLI",aRet[1,2] ,Nil})

aadd(aCabecS,{"C5_LOJAENT",aRet[1,2] ,Nil})

aadd(aCabecS,{"C5_CONDPAG",aRet[1,4] ,Nil})

aadd(aCabecS,{"C5_VEND1",aRet[1,5] ,Nil})

aAdd(aCabecS,{"C5_TIPOCLI",SA1->A1_TIPO ,Nil}) // Tipo do Cliente

 

lMsErroAuto := .f.

 

For _niS := 1 to Len(aSF2)

 

dbSelectArea("SB1")

dbSetOrder(7)

dbSeek(xFilial("SB1")+aSF2[_niS,1]+aSF2[_niS,2])

dbSetOrder(1)

 

cTESSai := MaTesInt(2,aRet[1,3],SA1->A1_COD,SA1->A1_LOJA,"C",SB1->B1_COD)

 

aLinha := {}

aadd(aLinha,{"C6_ITEM" ,StrZero(_niS,2) ,Nil})

aadd(aLinha,{"C6_PRODUTO" ,SB1->B1_COD ,Nil})

aadd(aLinha,{"C6_LOCAL" ,SB1->B1_LOCPAD ,Nil})

aadd(aLinha,{"C6_QTDVEN" ,aSF2[_niS,7] ,Nil})

aadd(aLinha,{"C6_PRCVEN" ,Round(aSF2[_niS,8],2) ,Nil})

aadd(aLinha,{"C6_PRUNIT" ,Round(aSF2[_niS,8],2) ,Nil})

aadd(aLinha,{"C6_VALOR" ,Round(aSF2[_niS,8],2)*aSF2[_niS,7] ,Nil})

aadd(aLinha,{"C6_QTDLIB" ,0 ,Nil})

aadd(aLinha,{"C6_TES" ,Alltrim(cTESSai) ,Nil})

aadd(aIteSai,aLinha)

 

Next

 

//Ponto de Entrada p/ inclusao de campos (SC5 e SC6) na integração com o pedido de venda (MATA410)

If ExistBlock("OPM040CPO")

aVet := ExecBlock("OPM040CPO",.f.,.f.,{aCabecS,aIteSai})

aCabecS := aVet[1]

aIteSai := aVet[2]

EndIf

 

// Inclusao do pedido

MsExecAuto({|x,y,z| mata410(x,y,z)},aCabecS,aIteSai,3)

// Checa erro de rotina automatica

If lMsErroAuto

Mostraerro()

RollBAckSx8()

Return(.f.)

Endif

 

// Gravacao do pedido da nota fiscal de saida

dbSelectArea("VPE")

RecLock("VPE",.f.)

VPE->VPE_NUMPED := SC5->C5_NUM

MsUnlock()

MsgInfo(STR0170+chr(13) + chr(10)+ chr(13) + chr(10)+STR0171+SC5->C5_NUM )

Return(.t.)

Programa Fonte:

OFIPM040.PRW   

Função:

GeraPedido()                  

Retorno:

Array contendo os vetores aCabPV,aItePv

aCabPV = Vetor contendo os campos da cabeça do pedido. (SC5)

aItePv = Vetor contendo os campos dos itens do pedido. (SC6)

 

Exemplo:

User Function OPM040CPO()

aCabPV := ParamIxb[1]

aItePv := ParamIxb[2]

 

If SC5->(FieldPos("C5_INDPRES")) > 0

aAdd(aCabPV,{"C5_INDPRES","XX" ,Nil})

EndIf

If SC5->(FieldPos("C5_TPFRETE")) > 0

aAdd(aCabPV,{"C5_TPFRETE","XX" ,Nil})

EndIf

 

MsgInfo("Ponto de entrada OPM040CPO executado com sucesso!")

 

Return({aCabPV,aItePv})