Árvore de páginas

Ponto de Entrada

Descrição:

O ponto de entrada é chamado ao final da inclusão do Pedido (MV_SRV3PD = P) ou Titulo (MV_SRV3PD = T), para que seja possível realizar tratamentos no registro recém gravado.

Localização:

Atualizações / Mov Oficina / Req Servicos/Apont

Eventos:

If lOperacao


// Gera pedido de compra

If cMV_SRV3PD == "P" // P - Gera pedido


If lVO4PEDCOM // Nro do Pedido

cNUM := VO4->VO4_PEDCOM

Else

cNUM := VO4->VO4_NUMTIT

EndIf


DbSelectArea("SC7")

DbSetOrder(1)


If Empty(cNUM) .or. !DbSeek(xFilial("SC7")+cNUM) // Caso Pedido em Branco ou nao existir ainda na tabela SC7 --> Gerar Pedido


If nOperacao == 3 .And. !Empty(VO4->VO4_CODFOR) .And. !Empty(VO4->VO4_FOLOJA) .And. !Empty(VO4->VO4_VALCUS)


SA2->(DbSetOrder(1))

SA2->(dbSeek(xFilial("SA2")+VO4->VO4_CODFOR+VO4->VO4_FOLOJA))

aCab:={ {"C7_NUM" ,cNUM ,Nil},; // Numero do Pedido

{"C7_EMISSAO" ,dDataBase ,Nil},; // Data de Emissao

{"C7_FORNECE" ,VO4->VO4_CODFOR ,Nil},; // Fornecedor

{"C7_LOJA" ,VO4->VO4_FOLOJA ,Nil},; // Loja do Fornecedor

{"C7_COND" ,VO4->VO4_CODPAG ,Nil},; // Condicao de pagamento

{"C7_CONTATO" ," " ,Nil},; // Contato

{"C7_FILENT" ,FWCODFIL() ,Nil}} // Filial Entrega


SB1->(DbSetOrder(7))

SB1->(DbSeek(xFilial("SB1")+VOK->VOK_GRUITE+VOK->VOK_CODITE))

SB1->(DbSetOrder(1))

aadd(aItem,{{"C7_ITEM" , strzero(1,TamSX3("C7_ITEM")[1]) ,Nil},; //Numero do Item "001"

{"C7_PRODUTO",SB1->B1_COD ,Nil},; //Codigo do Produto

{"C7_UM" ,SB1->B1_UM ,Nil},; //Unidade de Medida

{"C7_QUANT" ,1 ,Nil},; //Quantidade

{"C7_PRECO" ,VO4->VO4_VALCUS ,Nil},; //Preco

{"C7_DATPRF" ,dDataBase ,Nil},; //Data De Entrega

{"C7_FLUXO" ,"S" ,Nil},; //Fluxo de Caixa (S/N)

{"C7_LOCAL" ,FM_PRODSBZ(SB1->B1_COD,"SB1->B1_LOCPAD") ,Nil}}) //Localizacao

lMsErroAuto := .f.

MSExecAuto({|v,x,y,z| MATA120(v,x,y,z)},1,aCab,aItem,3)


EndIf


EndIf


// Gera um Titulo Provisorio

ElseIf cMV_SRV3PD == "T" // T - Gera Titulo


If lExist

aPgto := Condicao(aSrv3rd[nPos,8],aSrv3rd[nPos,7],,aSrv3rd[nPos,9])

Else

aPgto := Condicao(VO4->VO4_VALCUS,VO4->VO4_CODPAG,,VO4->VO4_DATPAG)

Endif


For nGerTit := 1 to Len(aPgto)


aContaPagar := {}

aAdd(aContaPagar, {"E2_PREFIXO" ,"SR3" ,Nil} ) // C6

aAdd(aContaPagar, {"E2_NUM" ,IIf(lExist,aSrv3rd[nPos,4],VO4->VO4_NUMTIT) ,Nil} ) // C6

aAdd(aContaPagar, {"E2_TIPO" ,Iif(lExist,aSrv3rd[nPos,5],VO4->VO4_TIPTIT) ,Nil} ) // C3

aAdd(aContaPagar, {"E2_PARCELA" ,Substr(cParc,nGerTit,TamSx3("E2_PARCELA")[1]) ,Nil} ) // C3

aAdd(aContaPagar, {"E2_NATUREZ" ,Iif(lExist,aSrv3rd[nPos,6],VO4->VO4_NATURE) ,Nil} ) // C10

aAdd(aContaPagar, {"E2_FORNECE" ,Iif(lExist,aSrv3rd[nPos,2],VO4->VO4_CODFOR) ,Nil} ) // C6

aAdd(aContaPagar, {"E2_LOJA" ,Iif(lExist,aSrv3rd[nPos,3],VO4->VO4_FOLOJA) ,Nil} ) // C2

aAdd(aContaPagar, {"E2_EMISSAO" ,dDataBase ,Nil} ) // D8

aAdd(aContaPagar, {"E2_VENCTO" ,aPgto[nGerTit,1] ,Nil} ) // D8

aAdd(aContaPagar, {"E2_VALOR" ,aPgto[nGerTit,2] ,Nil} ) // N17 2

aAdd(aContaPagar, {"E2_VLCRUZ" ,aPgto[nGerTit,2] ,Nil} ) // N17 2

aAdd(aContaPagar, {"E2_ORIGEM" ,"OFIOM030" ,Nil} ) // N17 2

aAdd(aContaPagar, {"E2_TITORIG" ,VO4->VO4_NOSNUM+VO4->VO4_SEQUEN ,Nil} ) // N17 2

// Parametros do CodBlock

// Funcao

// Vetor com conta a parar

// " "

// Tipo de Operacao 3 = Inclusao , 4 = Alteracao, 5 = Exclusao

pergunte("FIN050",.F.)

MSExecAuto({|x,Y,Z| FINA050(X,Y,Z)},aContaPagar,,nOperacao)

Next

EndIf


If ExistBlock("OM030TERC")

ExecBlock("OM030TERC",.f.,.f.)

EndIf


EndIf

Programa Fonte:

OFIOM030.PRW

Função:

FS_MOVSRVTERC()

Parâmetros:

N/A


Retorno:

N/A


Exemplo:

Include totvs.ch

#include 'protheus.ch'

#include 'parmtype.ch'


User Function OM030TERC()


Local cMV_SRV3PD := GetNewPar("MV_SRV3PD","N")


//.....Exemplo de customização

If cMV_SRV3PD == "P" //.. pedido

MsgInfo("Passou pelo PE! Pedido: "+SC7->C7_NUM,"OM030TERC")

ElseIF cMV_SRV3PD == "T"

MsgInfo("Passou pelo PE! Titulo: "+SE2->E2_NUM,"OM030TERC")

Endif


Return