Ao Executar um botao no MVC faz 2 insert

Bom dia,

estou fazendo um botao que faca uma alteracao do grid e atualice a tela, mais cuando tente salvar, tenho erro de insert duplicate no banco de dados, nao sei porque intenta salvar duas veces o primer modelo (SEH)

botao

oView:AddUserButton("Recalculo Mágico", 'PROBAR', {|oModel,oView| linePostGrid(oModel,oView) } ) //Recalcula la grid

Funcao

static function linePostGrid(oModel,oView)
local oModelGrid := nil
local nLin
aCuotas := {}
SaveInter() // Salva as variaveis publicas
oModelGrid := oModel:GetModel( "FLYDETAIL" ) // obtener el modelo del grid
nTotLin := oModelGrid:Length( .F. ) // obtenes el TOTAL de lineas del grid
     nInicial := 1
     nTotTot := 0// valor total saldo capital
     nAntJuros := 0// valor interés
     nAntAmorti   := 0// valor amortización
     nAntValor := 0
     nTotImpuest := 0
     nTotalAmort := 0
For nLin := 1 To nTotLin - 1  
     oModelGrid:SetLine( nLin ) // le das el total

        if nInicial <> nLin // si es que no es el primero
            oModelGrid:SetValue( "VALOR",nAntValor - nAntAmorti ) // calcula el valor de nuevo
        endif
            oModelGrid:SetValue( "JUROS",oModelGrid:GetValue("VALOR" ) * (M->EH_TAXA /100) / (360/M->EH_UINTDIA))
            oModelGrid:SetValue( "PRESTACAO", oModelGrid:GetValue("JUROS") + oModelGrid:GetValue("AMORTIZA" ) )    // modificas el VALOR
            oModelGrid:SetValue( "VCORRIGIDO", oModelGrid:GetValue("VALOR") + oModelGrid:GetValue("JUROS" ) )    // modificas el VALOR

     nAntValor := oModelGrid:GetValue("VALOR" )// valor total saldo capital
     nAntJuros := oModelGrid:GetValue("JUROS" ) // VALOR impuestos
     nAntAmorti   := oModelGrid:GetValue("AMORTIZA" )// valor amortización
     NvECORRE    := oModelGrid:GetValue("VCORRIGIDO" )
     nTotTot +=  oModelGrid:GetValue("PRESTACAO" )
     nTotImpuest += nAntJuros
     nTotalAmort += oModelGrid:GetValue("AMORTIZA" )
    aAdd(aCuotas,{oModelGrid:GetValue("PARCELA" ),nAntValor, nAntJuros,NvECORRE,nAntAmorti ,oModelGrid:GetValue("PRESTACAO" ) })


Next
    oModelGrid:SetLine( nLin ) // le das el total
    oModelGrid:SetValue( "JUROS",nTotImpuest)
    oModelGrid:SetValue( "PRESTACAO", nTotTot )    // modificas el VALOR
    oModelGrid:SetValue( "AMORTIZA", nTotalAmort )    // modificas el VALOR
    oModelGrid:SetLine( 1 ) // 
oView:Refresh() // haces un refresh a la VIEW
RestInter() // Restaura as variavis publicas
return

Agradeço desde já pela atenção.

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 DevForum TOTVS!

2 respostas

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