Árvore de páginas

Uso da rotina automática FINA560 - Movimentos do Caixinha

Produto:

Microsiga Protheus

Versões:

12.1.7

Ocorrência:

Adaptação da rotina de Movimentos do Caixinha (FINA560) para ser executada de forma automática (via ExecAuto).

Abaixo um exemplo de RdMake para inclusão e exclusão de registros, prestação de contas de adiantamentos.

Passo a passo:

Para utilizar a rotina FINA560 - Movimentos do Caixinha via ExecAuto, deve-se utilizar o modelo padrão abaixo:


#Include 'Protheus.ch'

User Function F560AUT()

Local aArray := {}
Local aArray2:= {} // Utilizado na prestacao de contas
Local nOpc := 3 // 3 - Inclusao, 4 - Prestacao de Contas, 5 - Exclusao
Private lMsErroAuto := .F.

Do Case
  Case nOpc == 3
  //-----------------------------------------------------------------------
  // Programa de inclusao de movimentos no caixinha via rotina automatica |
  //-----------------------------------------------------------------------
  aArray := { { "EU_NUM" , "0000000037" , NIL },;
                   { "EU_CAIXA" , "CX1" , NIL },;
                   { "EU_TIPO" , "01" , NIL },; //00 - Despesa, 01 - Adiantamento
                   { "EU_HISTOR" , "TESTE CAIXINHA " , NIL },;
                   { "EU_NRCOMP" , "001 " , NIL },; 
                   { "EU_VALOR" , 500, NIL },; 
                   { "EU_BENEF" , "TOTVS ", NIL },;
                   { "EU_DTDIGT" , CtoD("05/08/2016"), NIL },;
                   { "EU_DTEMIS" , CtoD("05/08/2016"), NIL },; 
                   { "EU_FORNECE" , "001 ", NIL },;
                   { "EU_LOJA" , "01", NIL },;
                   { "EU_NOME" , "FORNECEDOR S/ IMPOSTO ", NIL },;
                   { "EU_CGC" , "51236848000155", NIL },;
                   { "EU_CONTA" , "101010100 ", NIL },;
                   { "EU_CONTAD" , "101010200 ", NIL },;
                   { "EU_CONTAC" , "101010300 ", NIL },;
                   { "EU_CCD" , "10101 ", NIL },;
                   { "EU_CCC" , "10102 ", NIL },;
                   { "EU_ITEMD" , "1010102 ", NIL },;
                   { "EU_ITEMC" , "1010101 ", NIL },;
                   { "EU_CLVLDB" , "1010101 ", NIL },;
                   { "EU_CLVLCR" , "1010102 ", NIL },;
                   { "EU_CODAPRO" , "000001", NIL },;
                   { "EU_MOEDA" , 1, NIL },;
                   { "EU_VLMOED2" , 0, NIL },;
                   { "EU_ENVUMOV" , '2', NIL } }

  MsExecAuto( { |x,y,z| FINA560(x,y,z)} ,0, aArray, 3) 

  If lMsErroAuto
    MostraErro()
  Else
    Alert("Inclusao do movimento efetuada.")
  Endif

  Case nOpc == 4
  //-----------------------------------------------------------------------
  // Programa para prestacao de contas de um adiantamento (SEU) |
  //-----------------------------------------------------------------------
  aArray := { { "EU_NUM", "0000000036", NIL },; // Numero do adiantamento a ser posicionado
                     { "EU_SLDREM", .F., Nil } } /*Deseja fechar o adiantamento e transferir o saldo remanescente? .t. = SIM, .f. = NAO*/ 

                     /*Prestacao 1*/
                     Aadd(aArray2, { { "EU_HISTOR" , "TESTE PRESTA CTAS 1 " , NIL },;
                     { "EU_NRCOMP" , "006 " , NIL },; 
                     { "EU_VALOR" , 150, NIL },; 
                     { "EU_DTEMIS" , CtoD("05/08/2016"), NIL },;
                     { "EU_FORNECE" , "001 ", NIL },;
                     { "EU_LOJA" , "01", NIL },;
                     { "EU_NOME" , "FORNECEDOR S/ IMPOSTO ", NIL },;
                     { "EU_CGC" , "51236848000155", NIL },;
                     { "EU_CCD" , "10101 ", NIL },;
                     { "EU_CCC" , "10102 ", NIL },;
                     { "EU_ITEMD" , "1010102 ", NIL },;
                     { "EU_ITEMC" , "1010101 ", NIL } } )
                     /*Prestacao 2*/
                     Aadd(aArray2, { { "EU_HISTOR" , "TESTE PRESTA CTAS 2 " , NIL },;
                     { "EU_NRCOMP" , "007 " , NIL },; 
                     { "EU_VALOR" , 150, NIL },; 
                     { "EU_DTEMIS" , CtoD("05/08/2016"), NIL },;
                     { "EU_FORNECE" , "001 ", NIL },;
                     { "EU_LOJA" , "01", NIL },;
                     { "EU_NOME" , "FORNECEDOR S/ IMPOSTO ", NIL },;
                     { "EU_CGC" , "51236848000155", NIL },;
                     { "EU_CCD" , "10101 ", NIL },;
                     { "EU_CCC" , "10102 ", NIL },;
                     { "EU_ITEMD" , "1010102 ", NIL },;
                     { "EU_ITEMC" , "1010101 ", NIL } } )

  MsExecAuto( { |x,y,z,a| FINA560(x,y,z,a)} ,0, aArray, 4, aArray2) 

  If lMsErroAuto
    MostraErro()
  Else
    Alert("Prestacao de contas do adiantamento efetuada.")
  Endif

  Case nOpc == 5
  //-----------------------------------------------------------------------
  // Programa de exclusao de movimentos no caixinha via rotina automatica |
  //----------------------------------------------------------------------- 
  aArray := { { "EU_NUM" , "0000000082", NIL } }

  MsExecAuto( { |x,y,z| FINA560(x,y,z)} ,0, aArray, 5) 

  If lMsErroAuto
    MostraErro()
  Else
    Alert("Exclusao do movimento efetuada.")
  Endif
EndCase

Return


Observações:

A Classificação das Prestações de Contas não foi adaptada para ser executada de forma automática devido à sua estrutura de processamento dos dados e da sua dependência de telas.