- Criado por Vitor Duca Aguiar Gomes, última alteração por Fabio Casagrande Lima em 09 fev, 2023
VISÃO GERAL
Exemplo de execução automáticas das operações de inclusão, exclusão e alteração de títulos a pagar.
Aviso
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.
EXEMPLO DE UTILIZAÇÃO
Inclusão Expandir origem
#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
Alteração Expandir origem
#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
Exclusão Expandir origem
#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
Inclusão com VA (Valores acessorios) Expandir origem
#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
Inclusão com PA com cheque Expandir origem
#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
Inclusão com rateio de projeto (PMS) Expandir origem
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
Código de retenção de títulos a pagar Expandir origem
#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
Substituição de titulo provisório Expandir origem
#INCLUDE "Protheus.ch" USER FUNCTION FIN050SUBST() LOCAL aArray := {} LOCAL aAuxTitPrv := {} LOCAL aTitPrv := {} PRIVATE lMsErroAuto := .F. //Titulo efetivo aArray := { { "E2_PREFIXO" , "DRG" , NIL },; { "E2_NUM" , "VT002" , NIL },; { "E2_PARCELA" , " " , NIL },; { "E2_TIPO" , "NF" , NIL },; { "E2_NATUREZ" , "001" , NIL },; { "E2_FORNECE" , "001" , NIL },; { "E2_LOJA" , "00" , 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" ,PadR("DRG",TamSx3("E2_PREFIXO")[1]) , NIL },; { "E2_NUM" ,PadR("000000001",TamSx3("E2_NUM")[1]) , NIL },; { "E2_PARCELA" ,PadR("1",TamSx3("E2_PARCELA")[1]) , NIL },; { "E2_TIPO" ,PadR("PR ",TamSx3("E2_TIPO")[1]) , NIL },; { "E2_FORNECE" ,PadR("001",TamSx3("E2_FORNECE")[1]) , NIL },; { "E2_LOJA" ,PadR("00",TamSx3("E2_LOJA")[1]) , 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
Inclusão com Complemento de Título Expandir origem
#INCLUDE "Protheus.ch" /* Exemplo: Inclusão de título a pagar com cálculo de IR, preenchendo a natureza de rendimento (FKF_NATREN) no complemento do título (FKF). */ User Function A050Inc1() Local aArray := {} Local aFKF := {} Local cNatRen := "13002" PRIVATE lMsErroAuto := .F. //Dados da SE2 aArray := { { "E2_PREFIXO" , "BOL" , NIL },; { "E2_NUM" , "BOL00110" , NIL },; { "E2_TIPO" , "BOL" , NIL },; { "E2_NATUREZ" , "RNF000002" , NIL },; { "E2_FORNECE" , "RNF017" , NIL },; { "E2_LOJA" , "01" , NIL },; { "E2_EMISSAO" , CtoD("09/02/2023") , NIL },; { "E2_VENCTO" , CtoD("09/02/2023") , NIL },; { "E2_VENCREA" , CtoD("09/02/2023") , NIL },; { "E2_VALOR" , 5000 , NIL }} //Dados da FKF - Complemento do titulo aFKF := { { "FKF_NATREN", cNatRen , NIL }} aAdd(aArray, {"AUTCMTIT", aFKF, Nil}) MsExecAuto( { |x,y,z| FINA050(x,y,z)}, aArray,, 3) // 3 - Inclusao, 4 - Alteração, 5 - Exclusão If lMsErroAuto MostraErro() Else Conout("Titulo incluso com sucesso!") Endif Return
DEMAIS INFORMAÇÕES
Não há.
ASSUNTOS RELACIONADOS
Documento de referencia FINA050
Visão Geral
Import HTML Content
Conteúdo das Ferramentas