Árvore de páginas

Exemplos de execauto da rotina Contas a Pagar - FINA050 para alimentar as tabelas de complemento do título

Produto:

Protheus

Versões:

11.80 e 12.1.17 e superiores

Ocorrência:

Seguem exemplos de ExecAuto da rotina Contas a Pagar (FINA050) utilizando as tabelas de complemento do título (FKF) e complemento do imposto do título (FKG).

Ambiente:

Financeiro

Observações:

Nos exemplos abaixo, demonstraremos como alimentar as tabelas novas de complemento do título, através da MsExecAuto da rotina FINA050 para: incluir, alterar e excluir títulos com complementos.

Exemplos:

/*

Exemplo 01: Inclusão de um título com cálculo de INSS, com dados no complemento do título (FKF)
e com 2 complementos do imposto (FKG) para abater 1000,00 e 2000,00 da base de cálculo do INSS.
*/
User Function A050Inc1()

LOCAL atit := {}
LOCAL aFKF := {}
LOCAL aFKG := {}
LOCAL aAuxFKG := {}

PRIVATE lMsErroAuto := .F.


atit := { { "E2_PREFIXO" , "AUT" , NIL },;
{ "E2_NUM" , "0001" , NIL },;
{ "E2_TIPO" , "NF" , NIL },;
{ "E2_PARCELA" , " " , NIL },;
{ "E2_NATUREZ" , "NATIRINSS" , NIL },;
{ "E2_FORNECE" , "000001" , NIL },;
{ "E2_EMISSAO" , CtoD("20/06/2017"), NIL },;
{ "E2_VENCTO" , CtoD("20/06/2017"), NIL },;
{ "E2_VENCREA" , CtoD("20/06/2017"), NIL },;
{ "E2_VALOR" , 10000 , NIL } }

aFKF := { { "FKF_CPRB" , "1" , NIL },;
{ "FKF_CNAE" , "0112-1/02" , NIL },;
{ "FKF_TPSERV", "01" , NIL },;
{ "FKF_INDSUS", "2" , NIL }}

aAdd(atit,{"AUTCMTIT",aFKF,Nil})


aAuxFKG := { { "FKG_ITEM" , "000001" , NIL },;
{ "FKG_IDFKE" , "000001" , NIL },;// Código do complemento do Imposto da tabela FKE
{ "FKG_DESCR" , "ABAT MATERIAL 1" , NIL },;
{ "FKG_VALOR", 1000 , NIL }}
aAdd(aFKG,aAuxFKG)


aAuxFKG := {}

aAuxFKG := { { "FKG_ITEM" , "000002" , NIL },;
{ "FKG_IDFKE" , "000003" , NIL },;// Código do complemento do Imposto da tabela FKE
{ "FKG_DESCR" , "ABAT ALIMENT 1" , NIL },;
{ "FKG_VALOR", 2000 , NIL } }

aAdd(aFKG,aAuxFKG)

aAuxFKG := {}

aAdd(atit,{"AUTCMIMP",aFKG,Nil})

MsExecAuto( { |a,b,c| FINA050(a,b,c)} , atit,, 3)// 3 - Inclusao, 4 - Alteração, 5 - Exclusão

If lMsErroAuto
MostraErro()
Else
Alert("Título incluído com sucesso!")
Endif

Return


/*
Exemplo 02: Alteração somente dos dados do título, sem alteração na FKF e FKG
*/
User Function A050Alt1()

LOCAL atit := {}
LOCAL aFKF := {}
LOCAL aFKG := {}
LOCAL aAuxFKG := {}
LOCAL lCont := .F.

PRIVATE lMsErroAuto := .F.

atit := { { "E2_PREFIXO" , "AUT" , NIL },;
{ "E2_NUM" , "0001 " , NIL },;
{ "E2_TIPO" , "NF " , NIL },;
{ "E2_PARCELA" , " " , NIL },;
{ "E2_NATUREZ" , "NATIRINSS" , NIL },;
{ "E2_FORNECE" , "000001" , NIL },;
{ "E2_LOJA" , "01" , NIL },;
{ "E2_EMISSAO" , CtoD("20/06/2017"), NIL },;
{ "E2_VENCTO" , CtoD("20/06/2017"), NIL },;
{ "E2_VENCREA" , CtoD("20/06/2017"), NIL },;
{ "E2_VALOR" , 15000 , NIL } }

DbSelectArea("SE2")
DbSetOrder(1)
lCont:= DbSeek(xFilial("SE2")+"AUT"+"0001 "+" "+"NF "+"00000101") //Alteração deve ter o registro SE2 posicionado

If lCont
MsExecAuto( { |a,b,c| FINA050(a,b,c)} , atit,, 4)// 3 - Inclusao, 4 - Alteração, 5 - Exclusão
Endif

If lMsErroAuto
MostraErro()
Elseif lCont
Alert("Título alterado com sucesso!")
Endif

Return

/*
Exemplo 03: Alteração dos dados de complemento do imposto do título (FKG), alterando o valor do abatimento
*/
User Function A050Alt2()

LOCAL atit := {}
LOCAL aFKF := {}
LOCAL aFKG := {}
LOCAL aAuxFKG := {}
LOCAL lCont := .F.

PRIVATE lMsErroAuto := .F.

atit := { { "E2_PREFIXO" , "AUT" , NIL },;
{ "E2_NUM" , "0001 " , NIL },;
{ "E2_TIPO" , "NF " , NIL },;
{ "E2_PARCELA" , " " , NIL },;
{ "E2_NATUREZ" , "NATIRINSS" , NIL },;
{ "E2_FORNECE" , "000001" , NIL },;
{ "E2_LOJA" , "01" , NIL },;
{ "E2_EMISSAO" , CtoD("20/06/2017"), NIL },;
{ "E2_VENCTO" , CtoD("20/06/2017"), NIL },;
{ "E2_VENCREA" , CtoD("20/06/2017"), NIL },;
{ "E2_VALOR" , 15000 , NIL } }

aAuxFKG := { { "FKG_ITEM" , "000001" , NIL },;
{ "FKG_IDFKE" , "000001" , NIL },;// Código do complemento do Imposto da tabela FKE
{ "FKG_DESCR" , "ABAT MATERIAL 1" , NIL },;
{ "FKG_VALOR", 3000 , NIL }}

aAdd(aFKG,aAuxFKG)

aAdd(atit,{"AUTCMIMP",aFKG,Nil})

DbSelectArea("SE2")
DbSetOrder(1)
lCont:= DbSeek(xFilial("SE2")+"AUT"+"0001 "+" "+"NF "+"00000101") //Exclusão deve ter o registro SE2 posicionado

If lCont
MsExecAuto( { |a,b,c| FINA050(a,b,c)} , atit,, 4)// 3 - Inclusao, 4 - Alteração, 5 - Exclusão
Endif


If lMsErroAuto
MostraErro()
Elseif lCont
Alert("Título alterado com sucesso!")
Endif

Return

 

/*
Exemplo 04: Exclusão do título com FKF e FKG, somente informar o título a ser excluído.
*/
User Function Auto050Exc()
LOCAL atit := {}
LOCAL lCont := .F.

PRIVATE lMsErroAuto := .F.

atit := { { "E2_PREFIXO" , "AUT" , NIL },;
{ "E2_NUM" , "0001 " , NIL },;
{ "E2_TIPO" , "NF " , NIL },;
{ "E2_PARCELA" , " " , NIL },;
{ "E2_NATUREZ" , "NATIRINSS" , NIL },;
{ "E2_FORNECE" , "000001" , NIL },;
{ "E2_LOJA" , "01" , NIL },;
{ "E2_EMISSAO" , CtoD("20/06/2017"), NIL },;
{ "E2_VENCTO" , CtoD("20/06/2017"), NIL },;
{ "E2_VENCREA" , CtoD("20/06/2017"), NIL },;
{ "E2_VALOR" , 15000 , NIL } }

DbSelectArea("SE2")
DbSetOrder(1)
lCont:= DbSeek(xFilial("SE2")+"AUT"+"0001 "+" "+"NF "+"00000101") //Exclusão deve ter o registro SE2 posicionado

If lCont
MsExecAuto( { |a,b,c | FINA050(a,b,c)} , atit,, 5) // 3 - Inclusao, 4 - Alteração, 5 - Exclusão
Endif

If lMsErroAuto
MostraErro()
Elseif lCont
Alert("Título Excluido com sucesso!")
Endif


Return

 


/*
Exemplo 05: Teste de inclusão de título com complemento de título (FKF) e com complemento do imposto do título (FKG)
de dedução do valor do imposto por processo judicial.
*/

User Function A050Inc2()

LOCAL atit := {}
LOCAL aFKF := {}
LOCAL aFKG := {}
LOCAL aAuxFKG := {}

PRIVATE lMsErroAuto := .F.

atit := { { "E2_PREFIXO" , "AUT" , NIL },;
{ "E2_NUM" , "0002 " , NIL },;
{ "E2_TIPO" , "NF " , NIL },;
{ "E2_PARCELA" , " " , NIL },;
{ "E2_NATUREZ" , "NATIRINSS" , NIL },;
{ "E2_FORNECE" , "000001" , NIL },;
{ "E2_LOJA" , "01" , NIL },;
{ "E2_EMISSAO" , CtoD("20/06/2017"), NIL },;
{ "E2_VENCTO" , CtoD("20/06/2017"), NIL },;
{ "E2_VENCREA" , CtoD("20/06/2017"), NIL },;
{ "E2_VALOR" , 10000 , NIL } }


aFKF := { { "FKF_CPRB" , "1" , NIL },;
{ "FKF_CNAE" , "0112-1/02" , NIL },;
{ "FKF_TPSERV", "01" , NIL },;
{ "FKF_INDSUS", "2" , NIL }}

aAdd(atit,{"AUTCMTIT",aFKF,Nil})

aAuxFKG := { { "FKG_ITEM" , "000001" , NIL },;
{ "FKG_IDFKE" , "000002" , NIL },;// Código do complemento do imposto (FKE)
{ "FKG_DESCR" , "DISPENSA INSS" , NIL },;
{ "FKG_NUMPRO" , "0000001" , NIL },; // Código do processo judicial/adm (CCF)
{ "FKG_VALOR", 100 , NIL }}

aAdd(aFKG,aAuxFKG)

aAuxFKG := {}

aAdd(atit,{"AUTCMIMP",aFKG,Nil})

MsExecAuto( { |a,b,c| FINA050(a,b,c)} , atit,, 3)// 3 - Inclusao, 4 - Alteração, 5 - Exclusão

If lMsErroAuto
MostraErro()
Else
Alert("Título incluído com sucesso!")
Endif

Return


/*

Exemplo 06: Teste de alteração do valor do título e do valor complemento do imposto do título (FKG)
de dedução do valor do imposto por processo judicial.
*/
User Function A050Al22()

LOCAL atit := {}
LOCAL aFKF := {}
LOCAL aFKG := {}
LOCAL aAuxFKG := {}
LOCAL lCont := .F.

PRIVATE lMsErroAuto := .F.

atit := { { "E2_PREFIXO" , "AUT" , NIL },;
{ "E2_NUM" , "0002 " , NIL },;
{ "E2_TIPO" , "NF " , NIL },;
{ "E2_PARCELA" , " " , NIL },;
{ "E2_NATUREZ" , "NATIRINSS" , NIL },;
{ "E2_FORNECE" , "000001" , NIL },;
{ "E2_LOJA" , "01" , NIL },;
{ "E2_EMISSAO" , CtoD("20/06/2017"), NIL },;
{ "E2_VENCTO" , CtoD("20/06/2017"), NIL },;
{ "E2_VENCREA" , CtoD("20/06/2017"), NIL },;
{ "E2_VALOR" , 20000 , NIL } }

aAuxFKG := { { "FKG_ITEM" , "000001" , NIL },;
{ "FKG_IDFKE" , "000002" , NIL },;
{ "FKG_DESCR" , "AUMENTADO" , NIL },;
{ "FKG_VALOR", 300 , NIL }}

aAdd(aFKG,aAuxFKG)

aAuxFKG := {}

aAdd(atit,{"AUTCMIMP",aFKG,Nil})

DbSelectArea("SE2")
DbSetOrder(1)
lCont:= DbSeek(xFilial("SE2")+"AUT"+"0002 "+" "+"NF "+"00000101") //Alteração deve ter o registro SE2 posicionado

If lCont
MsExecAuto( { |a,b,c| FINA050(a,b,c)} , atit,, 4)// 3 - Inclusao, 4 - Alteração, 5 - Exclusão
Endif

If lMsErroAuto
MostraErro()
Elseif lCont
Alert("Título alterado com sucesso!")
Endif

Return

 

/*

Exemplo 07: inclusao de titulo com complemento do imposto inexistente. Será exibida a mensagem que não existe o cadastro de complemento, porém o título será incluído sem complemento.*/

User Function A050Inc3()

LOCAL atit := {}
LOCAL aFKF := {}
LOCAL aFKG := {}
LOCAL aAuxFKG := {}

PRIVATE lMsErroAuto := .F.

atit := { { "E2_PREFIXO" , "AUT" , NIL },;
{ "E2_NUM" , "0003 " , NIL },;
{ "E2_TIPO" , "NF" , NIL },;
{ "E2_PARCELA" , " " , NIL },;
{ "E2_NATUREZ" , "NATIRINSS" , NIL },;
{ "E2_FORNECE" , "000001" , NIL },;
{ "E2_LOJA" , "01" , NIL },;
{ "E2_EMISSAO" , CtoD("20/06/2017"), NIL },;
{ "E2_VENCTO" , CtoD("20/06/2017"), NIL },;
{ "E2_VENCREA" , CtoD("20/06/2017"), NIL },;
{ "E2_VALOR" , 20000 , NIL } }


aAuxFKG := { { "FKG_ITEM" , "000001" , NIL },;
{ "FKG_IDFKE" , "000005" , NIL },;
{ "FKG_DESCR" , "DISPENSA INSS" , NIL },;
{ "FKG_VALOR", 100 , NIL }}

aAdd(aFKG,aAuxFKG)
aAuxFKG := {}

aAdd(atit,{"AUTCMIMP",aFKG,Nil})

MsExecAuto( { |a,b,c| FINA050(a,b,c)} , atit,, 3)// 3 - Inclusao, 4 - Alteração, 5 - Exclusão

If lMsErroAuto
MostraErro()
Else
Alert("Título incluído com sucesso!")
Endif

Return