Error saving monetary data: A non-formed numeric value encountered

0

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

  

A non well formed numerical value encountered


JQuery Library: link

The following screenshot shows some system screens:

Doubt:HomeHowtosolvethisproblem?HomeTestProfilemethodoftheProjectController.phpclass

//CadastraosdadosdaabadeaprovaçãopublicfunctioncadastroAprovacao(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);//Cadastrodasocorrênciasdosdadosdaaprovação$ocorrencia=newOcorrencia();$ocorrencia->projeto_id=$projeto->id;$ocorrencia->usuario_id=Auth::user()->id;$ocorrencia->origem='A';//AorigeméAutomática(A)poisosistemaqueregistraaocorrência$ocorrencia->tipo='I';//ÉdotipoInformação(I),poiséfeitaautomá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']); 

       }   
     }
    
asked by anonymous 03.07.2018 / 22:41

1 answer

1

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

Recalling that the decimal place separation in PHP is done by points .

For example:

If valorInterno is 10,12 it will ignore 0,12 adding only 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');
}
    
04.07.2018 / 13:14