Versão atual:

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.

Versão (1):

Ver a versão formatada

Ao Executar um botao no MVC faz 2 insert

Comentário

new question