Data truncated for column vlrDesconto Laravel

2

I am trying to save field with formatting by jqueryMaskMoney , but this is giving truncated data error

 $("#desconto01").maskMoney({thousands: ".", decimal: ","});

Error:

  

CONTROLLER

publicfunctionstore(Request$request){//try{//DB::beginTransaction();$dados=newMapaCompra;$mytime=Carbon::now('America/Sao_Paulo');$dados->data=$mytime->toDateTimeString();$dados->infadicionais=$request->get('infadicionais');$dados->orc01=$request->get('orc01');$dados->orc02=$request->get('orc02');$dados->orc03=$request->get('orc03');$dados->codpg01=$request->get('codpg01');$dados->codpg02=$request->get('codpg02');$dados->codpg03=$request->get('codpg03');$dados->obs01=$request->get('obs01');$dados->obs02=$request->get('obs02');$dados->obs03=$request->get('obs03');$dados->desconto01=$request->get('desconto01');$dados->desconto02=$request->get('desconto02');$dados->desconto03=$request->get('desconto03');$dados->idforn01=$request->get('idforn01');$dados->idforn02=$request->get('idforn02');$dados->idforn03=$request->get('idforn03');$dados->acrescimo01=$request->get('acrescimo01');$dados->acrescimo02=$request->get('acrescimo02');$dados->acrescimo03=$request->get('acrescimo03');$dados->status='AA';$dados->data_status=$mytime->toDateTimeString();$dados->empresa_id=$request->session()->get('idempresa');$dados->user_id=Auth::user()->id;$dados->ativo='a';$dados->save();//$idproduto=$request->get('idproduto');//$qnt=$request->get('qnt');//$detalhes=$request->get('detalhe');//$idcentrocusto=$request->get('idcentrocusto');//$cont=0;//while($cont<count($idproduto)){//$detalhe=newSolicitacaoDet();//$detalhe->idsolicitacao=$solicitacoes->idsolicitacao;//$detalhe->idproduto=$idproduto[$cont];//$detalhe->qnt=$qnt[$cont];//$detalhe->detalhe=$detalhes[$cont];//$detalhe->idcentrocusto=$idcentrocusto[$cont];//$detalhe->save();//$cont=$cont+1;//}//DB::commit();//}catch(\Exception$e){//DB::rollback();//}returnRedirect::to('compra/mapacompra');

MYSCREENFORQUOTATIONS

    
asked by anonymous 14.11.2018 / 12:44

1 answer

1

Truncated data, it is because the passed value is greater than is set in the database and also needs to convert the value that is in the Brazilian format to the American example :

$dados->desconto01 = 0;
$desconto01 = $request->get('desconto01');
$desconto01 = str_replace('.','',$desconto01);
$desconto01 = str_replace(',','.',$desconto01);
if (is_numeric($desconto01))
{
    $dados->desconto01 = $desconto01;
}

The rough way is, you can do a helper or function to automate, simple example of a function with default value:

function number_decimal($valor, $default = 0)
{
    $valor = str_replace('.','',$valor);
    $valor = str_replace(',','.',$valor);
    if (is_numeric($valor))
    {
        return $valor;
    }
    return $default;
}

just call

$dados->desconto01 = number_decimal($request->get('desconto01'));      
    
14.11.2018 / 12:55