Exemplo de execução automáticas das operações de inclusão, exclusão e alteração de títulos a pagar.
A função Fa050Inclu() não pode ser usada em customizações por se tratar de um função de menu existem algumas dependências de variáveis privates declaradas no FINA050. |
#INCLUDE "Protheus.ch" USER FUNCTION FIN050INC() LOCAL aArray := {} PRIVATE lMsErroAuto := .F. //Estrutura para PA ( Pagamento Antecipado ) aArray := { { "E2_PREFIXO" , "PAG" , NIL },; { "E2_NUM" , "0001" , NIL },; { "E2_TIPO" , "PA" , NIL },; { "E2_NATUREZ" , "001" , NIL },; { "E2_FORNECE" , "0001" , NIL },; { "E2_EMISSAO" , CtoD("17/02/2012"), NIL },; { "E2_VENCTO" , CtoD("17/02/2012"), NIL },; { "E2_VENCREA" , CtoD("17/02/2012"), NIL },; { "E2_VALOR" , 5000 , NIL },; { "AUTBANCO" , "001" , NIL },; { "AUTAGENCIA" , "1234" , NIL },; { "AUTCONTA" , "123456" , NIL } } //Estrutura para demais títulos aArray := { { "E2_PREFIXO" , "PAG" , NIL },; { "E2_NUM" , "0001" , NIL },; { "E2_TIPO" , "NF" , NIL },; { "E2_NATUREZ" , "001" , NIL },; { "E2_FORNECE" , "0001" , NIL },; { "E2_EMISSAO" , CtoD("17/02/2012"), NIL },; { "E2_VENCTO" , CtoD("17/02/2012"), NIL },; { "E2_VENCREA" , CtoD("17/02/2012"), NIL },; { "E2_VALOR" , 5000 , NIL } } MsExecAuto( { |x,y,z| FINA050(x,y,z)}, aArray,, 3) // 3 - Inclusao, 4 - Alteração, 5 - Exclusão If lMsErroAuto MostraErro() Else Alert("Título incluído com sucesso!") Endif Return |
#INCLUDE "Protheus.ch" USER FUNCTION FIN050ALT() LOCAL aArray := {} PRIVATE lMsErroAuto := .F. aArray := { { "E2_PREFIXO" , "PAG" , NIL },; { "E2_NUM" , "0001" , NIL },; { "E2_VALOR" , 2000 , NIL } } DbSelectArea("SE2") DbSetOrder(1) DbSeek(xFilial("SE2")+"PAG"+"0001 "+" "+"NF") //Alteração deve ter o registro SE2 posicionado MsExecAuto( { |x,y,z| FINA050(x,y,z)}, aArray,, 4) // 3 - Inclusao, 4 - Alteração, 5 - Exclusão If lMsErroAuto MostraErro() Else Alert("Título alterado com sucesso!") Endif Return |
#INCLUDE "Protheus.ch" USER FUNCTION FIN050EXC() LOCAL aArray := {} PRIVATE lMsErroAuto := .F. DbSelectArea("SE2") DbSetOrder(1) DbSeek(xFilial("SE2")+"PAG"+"0001 "+" "+"NF") //Exclusão deve ter o registro SE2 posicionado aArray := { { "E2_PREFIXO" , SE2->E2_PREFIXO , NIL },; { "E2_NUM" , SE2->E2_NUM , NIL } } MsExecAuto( { |x,y,z| FINA050(x,y,z)}, aArray,, 5) // 3 - Inclusao, 4 - Alteração, 5 - Exclusão If lMsErroAuto MostraErro() Else Alert("Exclusão do Título com sucesso!") Endif Return |
#INCLUDE "Protheus.ch" USER FUNCTION FIN050VA() LOCAL aArray := {} LOCAL nOpc := 3 // 3-Inclusão, 4 Alteração // Dados do valor acessório. LOCAL aVAAut := {} LOCAL cValAce1 := "000001" // Código do Va LOCAL nValAce1 := 200 // Valor do Va LOCAL cValAce2 := "000012" LOCAL nValAce2 := 4 PRIVATE lMsErroAuto := .F. aArray := { { "E2_PREFIXO" , "PAG" , NIL },; { "E2_NUM" , "0001" , NIL },; { "E2_TIPO" , "NF" , NIL },; { "E2_NATUREZ" , "001" , NIL },; { "E2_FORNECE" , "0001" , NIL },; { "E2_EMISSAO" , CtoD("17/02/2012"), NIL },; { "E2_VENCTO" , CtoD("17/02/2012"), NIL },; { "E2_VENCREA" , CtoD("17/02/2012"), NIL },; { "E2_VALOR" , 5000 , NIL } } // Array com valor acessório aAdd(aVAAut, {cValAce1, nValAce1}) aAdd(aVAAut, {cValAce2, nValAce2}) MsExecAuto( { |a,b,c,d,e,f,g,h,i,j,k,l| FINA050(a, b, c, d, e, f, g, h, i, j, k, l)}, aArray,, nOpc,,,,,,,,, aVAAut) If lMsErroAuto MostraErro() Else If nOpc == 3 Alert("Título incluido com sucesso!") Else Alert("Título alterado com sucesso!") EndIf Endif Return |
#INCLUDE "Protheus.ch" USER FUNCTION FIN050INCPA() LOCAL aArray := {} PRIVATE lMsErroAuto := .F. aArray := { { "E2_PREFIXO", "PAG" , NIL },; { "E2_NUM" , "0001" , NIL },; { "E2_TIPO" , "PA" , NIL },; { "E2_NATUREZ" , "001" , NIL },; { "E2_FORNECE" , "0001" , NIL },; { "E2_EMISSAO" , CtoD("17/02/2012"), NIL },; { "E2_VENCTO" , CtoD("17/02/2012"), NIL },; { "E2_VENCREA" , CtoD("17/02/2012"), NIL },; { "E2_VALOR" , 5000 , NIL },; { "AUTBANCO" , "FIN" , NIL },; { "AUTAGENCIA" , "00015" , NIL },; { "AUTCONTA" , "0000000001" , NIL },; { "AUTMOED" , "1" , NIL },; { "AUTCHEQUE" , "124569" , NIL }} MsExecAuto( { |x,y,z| FINA050(x,y,z)}, aArray,, 3) // 3 - Inclusão If lMsErroAuto MostraErro() Else Alert("Título incluído com sucesso!") Endif Return |
USER FUNCTION F050IPMS() Local cPref := "FIN" Local cNum := "210408001" Local cPar := "1" Local cTipo := "NF" Local cNaturez := "FGRV01" Local cFornec := "FGRV04" Local cLoja := "01" Local nValor := 1000 Local aGrvSe2 := {} Local aInfProj := {} Local aInfAFR := {} PRIVATE lMsErroAuto := .F. PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01 " MODULO "FIN" TABLES "SE2","SE5","SA2","AFR","AF9","AF8" aAdd(aInfAFR, {"AFR_PROJET", PadR("PMSU000023", TamSX3("AF9_PROJET")[1]), Nil}) aAdd(aInfAFR, {"AFR_TAREFA", "01.02", Nil}) aAdd(aInfAFR, {"AFR_TIPOD", PadR("0004", TamSx3("AFR_TIPOD")[1]), Nil}) aAdd(aInfAFR, {"AFR_VALOR1", nValor, Nil}) aAdd(aInfAFR, {"AFR_REVISA", StrZero(4, TamSX3("AFR_REVISA")[1]), Nil}) aAdd(aInfAFR, {"AFR_PREFIX", cPref, Nil}) aAdd(aInfAFR, {"AFR_NUM", cNum, Nil}) aAdd(aInfAFR, {"AFR_PARCEL", cPar, Nil}) aAdd(aInfAFR, {"AFR_TIPO", cTipo, Nil}) aAdd(aInfAFR, {"AFR_FORNEC", cFornec, Nil}) aAdd(aInfAFR, {"AFR_LOJA", cLoja, Nil}) aAdd(aInfAFR, {"AFR_DATA", Date(), Nil}) aAdd(aInfAFR, {"AFR_VENREA", Date(), Nil}) aAdd(aInfProj, aInfAFR) aGrvSe2 := { { "E2_PREFIXO" , cPref , NIL },; { "E2_NUM" , cNum , NIL },; { "E2_TIPO" , cTipo , NIL },; { "E2_NATUREZ" , cNaturez , NIL },; { "E2_FORNECE" , cFornec , NIL },; { "E2_LOJA" , cLoja , NIL },; { "E2_EMISSAO" , Date() , NIL },; { "E2_VENCTO" , Date() , NIL },; { "E2_VENCREA" , Date() , NIL },; { "E2_VALOR" , nValor , NIL },; { "E2_PROJPMS" , "2" , NIL },; { "E2_HIST" , "Inclusão de Projeto" , NIL },; {"AUTRATAFR" , aInfProj ,Nil } } MsExecAuto( { |x,y,z| FINA050(x,y,z)}, aGrvSe2,, 3) // 3 - Inclusao, 4 - Alteração, 5 - Exclusão If lMsErroAuto MostraErro() Else Conout("Título incluído com sucesso!") Endif Return |
#INCLUDE "Protheus.ch" /* Quando houver qualquer tipo de operação que envolva a inserção de valor no campo E2_CODRET, é necessário utilizar a função SetFuName("FINA050") antes de executar a MSExecAuto(), pois existe uma validação no X3_VALID -(EXISTCPO("SX5","37"+M->E2_CODRET) .AND. Iif(FUNNAME() $ "FINA050|FINA750",FA050Natur(),.T.)) deste campo que so ira realizar o calculo do imposto por código de retenção se o FunName() estiver contido em "FINA050". */ USER FUNCTION F050CODRET() LOCAL aArray := {} PRIVATE lMsErroAuto := .F. //Estrutura para demais títulos aArray := { { "E2_PREFIXO" , "PAG" , NIL },; { "E2_NUM" , "0001" , NIL },; { "E2_TIPO" , "NF" , NIL },; { "E2_NATUREZ" , "001" , NIL },; { "E2_FORNECE" , "0001" , NIL },; { "E2_EMISSAO" , CtoD("17/02/2012"), NIL },; { "E2_VENCTO" , CtoD("17/02/2012"), NIL },; { "E2_VENCREA" , CtoD("17/02/2012"), NIL },; { "E2_VALOR" , 5000 , NIL },; { "E2_DIRF" , "1" , NIL },; { "E2_CODRET" , "3208" , NIL }} SetFunName("FINA050") MsExecAuto( { |x,y,z| FINA050(x,y,z)}, aArray,, 3) // 3 - Inclusao, 4 - Alteração, 5 - Exclusão If lMsErroAuto MostraErro() Else Alert("Título incluído com sucesso!") Endif Return |
#INCLUDE "Protheus.ch" USER FUNCTION FIN050SUBST() LOCAL aArray := {} LOCAL aAuxTitPrv := {} LOCAL aTitPrv := {} PRIVATE lMsErroAuto := .F. //Titulo efetivo aArray := { { "E2_PREFIXO" , "PAG" , NIL },; { "E2_NUM" , "0001" , NIL },; { "E2_PARCELA" , " " , NIL },; { "E2_TIPO" , "NF" , NIL },; { "E2_NATUREZ" , "001" , NIL },; { "E2_FORNECE" , "0001" , NIL },; { "E2_LOJA" , "01" , NIL },; { "E2_EMISSAO" , CtoD("27/10/2021"), NIL },; { "E2_VENCTO" , CtoD("27/10/2021"), NIL },; { "E2_VENCREA" , CtoD("27/10/2021"), NIL },; { "E2_VALOR" , 5000 , NIL } } //No array aAuxTitPrv devera conter as informações dos títulos provisórios que serão substituídos aAuxTitPrv := { { "E2_PREFIXO" ,"PAG" , NIL },; { "E2_NUM" ,"000000001" , NIL },; { "E2_PARCELA" ,"1" , NIL },; { "E2_TIPO" ,"PR " , NIL },; { "E2_FORNECE" ,"0001" , NIL },; { "E2_LOJA" ,"01" , NIL }} aadd(aTitPrv, aAuxTitPrv) MsExecAuto({|a,b,c,d,e,f,g,h,i,j| FINA050(a,b,c,d,e,f,g,h,i,j)},aArray,,6,,,,,,aTitPrv) If lMsErroAuto MostraErro() Else Conout("Título substituído com sucesso!") Endif Return |
Não há.
Documento de referencia FINA050