Error saving monetary data: A non well Formed Numeric value encountered

Asked

Viewed 1,294 times

0

Contextualization:

I’m using the library *Jquery-maskMoney to format monetary data. But when saving this data the following error occurs:

A non well Formed Numeric value encountered


Jquery library: http://plentz.github.io/jquery-maskmoney/

The following images show some system screens:

inserir a descrição da imagem aqui

inserir a descrição da imagem aqui

Doubt:

How to solve this problem?

Method registration class Projectocontroller.php

//Cadastra os dados da aba de aprovação
     public function cadastroAprovacao(Request $request)
     {
       $projeto = Projeto::find($request->get('id'));

     //  dd($projeto);
       $projeto->valor_aprovado_total = $request->get('valorInterno') + $request->get('valorEmenda');
       $projeto->valor_interno = $request->get('valorInterno');
       $projeto->valor_contrapartida = $request->get('contrapartida');
      /*  $projeto->valor_aprovado_total = str_replace(',','.',  preg_replace('#[^\d\,]#is','',$request->get('valorInterno'))) + $request->get('valorEmenda');
       $projeto->valor_interno = str_replace(',', '.', preg_replace('#[^\d\,]#is','',$request->get('valorInterno')));
       $projeto->valor_contrapartida = str_replace(',','.',  preg_replace('#[^\d\,]#is','',$request->get('contrapartida')));   */
       $projeto->nome_fiscal = $request->get('nomeFiscal'); 
       $projeto->matricula_fiscal = $request->get('matriculaFiscal'); 
       $projeto->dt_pag_autorizado = $request->get('dtAutPagamento'); 
       $projeto->observacao_autorizacao = $request->get('observacaoAprovacao');

       $response =  $projeto->salvarAprovacao($projeto);  

      //Cadastro das ocorrências dos dados da aprovação
       $ocorrencia = new Ocorrencia();
       $ocorrencia->projeto_id = $projeto->id;
       $ocorrencia->usuario_id = Auth::user()->id;
       $ocorrencia->origem = 'A'; //A origem é Automática (A) pois o sistema que registra a ocorrência
       $ocorrencia->tipo = 'I'; //É do tipo Informação (I), pois é feita automática
       $ocorrencia->descricao = "Cadastro dos Dados da Aprovação";
       $ocorrencia->dt_ocorrencia =  date('Y-m-d H:i:s');
       $ocorrencia->save();


       if($response['success'])
       {
           return redirect()
                     ->route('projeto.edita',$projeto->id) 
                     ->with('success',$response['message']);
       }else
       {
           return redirect()
                     ->back()
                     ->with('error',$response['message']); 

       }   
     }
  • Ruama, check the type of table field that will be saved, you probably have a field int in the table and wanting to save a string

1 answer

1

Try to convert the values before adding them and checks if the fields exist and are different from nulls!

Recalling that decimal house separation in PHP is done by dots.

For example:

if valorInterno for 10,12 he will ignore the 0,12 adding up only the 10

echo (double) "10.12" + (double) 10.12;
//20.24

echo (double) "10,12" + (double) 10.12;
//20.12
if(isset($request->get('valorInterno')) && isset($request->get('valorEmenda'))){
    $projeto->valor_aprovado_total = (double) $request->get('valorInterno') + (double)$request->get('valorEmenda');
}

Browser other questions tagged

You are not signed in. Login or sign up in order to post.