Histórico da Página
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