Contabilização AxInclui

Bom dia, amigos! Estou com uma dificuldade aqui numa customização. Fiz um programa para copiar títulos do contas a pagar. Antes meu programa copiava e contabilizava normalmente. De um tempo pra cá parou de contabilizar. Sei que a cópia de título não é das melhores práticas, mas não achei nenhuma outra forma de fazer isso. Segue abaixo o exemplo do fonte:

OBS.: sei que preciso mudar a manipulação para migrar a release. Já estamos trabalhando nisso.

User Function CopiaSE2()

    Local i
    Local aParam := {} //Validações 
    Local aCpos := {} //Array com os campos que podem ser editados

    AAdd(aParam,{|| U_CargSE2() }) //Bloco de código que será processado antes da exibição das informações na tela
    AAdd(aParam,{|| .T. }) //Bloco de código para processamento na validação da confirmação das informações
    AAdd(aParam,{|| .T. }) //Bloco de código que será executado dentro da transação da AxFunction()
    AAdd(aParam,{|| .T. }) //Bloco de código que será executado fora da transação da AxFunction()

    For i := 1 To SE2->(FCount())
        IF !Alltrim(SE2->(FieldName(i))) $ 'E2_FILIAL,E2_FORNECE,E2_LOJA'
            aAdd(aCpos,SE2->(FieldName(i)))
        EndIf
    Next i

    AxInclui('SE2',SE2->(Recno()),3,/*aAcho*/,/*cFunc*/,aCpos,"U_FValOk()",/*lF3*/,/*cTransact*/,/*aButtons*/,aParam,/*aAuto*/,/*lVirtual*/,/*lMaximized*/)
Return

User Function CargSE2()

    Local i

    For i := 1 to SE2->(FCount())
        M->&(SE2->(FieldName(i))) := SE2->(FieldGet(i))

        Do Case
            Case "E2_BAIXA" $ SE2->(FieldName(i))
                M->&(SE2->(FieldName(i))) := CtoD('')
            Case "E2_BCOPAG" $ SE2->(FieldName(i))
                M->&(SE2->(FieldName(i))) := ''
            Case "E2_MOVIMEN" $ SE2->(FieldName(i))
                M->&(SE2->(FieldName(i))) := CtoD('')
            Case "E2_SALDO" $ SE2->(FieldName(i))
                M->&(SE2->(FieldName(i))) := SE2->E2_VALOR
            Case "E2_VALLIQ" $ SE2->(FieldName(i))
                M->&(SE2->(FieldName(i))) := 0
            Case "E2_DATALIB" $ SE2->(FieldName(i))
                M->&(SE2->(FieldName(i))) := CtoD('')
            Case "E2_USUALIB" $ SE2->(FieldName(i))
                M->&(SE2->(FieldName(i))) := ''
            Case "E2_TITPAI" $ SE2->(FieldName(i))
                M->&(SE2->(FieldName(i))) := ''
            Case "E2_MSIDENT" $ SE2->(FieldName(i))
                M->&(SE2->(FieldName(i))) := ''
            Case "E2_STATLIB" $ SE2->(FieldName(i))
                M->&(SE2->(FieldName(i))) := ''
            Case "E2_ORIGEM" $ SE2->(FieldName(i))
                M->&(SE2->(FieldName(i))) := 'FINA050'
            Case "E2_LA" $ SE2->(FieldName(i))
                M->&(SE2->(FieldName(i))) := ''
            Case "E2_RATEIO" $ SE2->(FieldName(i))
                M->&(SE2->(FieldName(i))) := 'N'
            Case "E2_MULTNAT" $ SE2->(FieldName(i))
                M->&(SE2->(FieldName(i))) := '2'
            Case "E2_ARQRAT" $ SE2->(FieldName(i))
                M->&(SE2->(FieldName(i))) := ''
        EndCase
    Next i

Return .T.


User Function FValOk()
    Local lRet := .T.

    SE2->(DbSetOrder(1))
    IF SE2->(MsSeek(xFilial("SE2") + M->E2_PREFIXO + M->E2_NUM + M->E2_PARCELA + M->E2_TIPO + M->E2_FORNECE + M->E2_LOJA))
        MsgInfo("Título já cadastrado!")
        lRet := .F.
    Else
        IF "MATA" $ SE2->E2_ORIGEM .and. Alltrim(SE2->E2_TIPO) $ 'TX,ISS,INS,PIS,COF,'
            MsgInfo("Título não pode ser copiado!")
            lRet := .F.
        Endif
    Endif

Return lRet
compartilhar
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do TOTVS DevForum!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags axinlcui fina050 financeiro advpl ou faça a sua própria pergunta.