jeudi 3 mai 2018

how to display the average rate of "tarifs" for a selected "tache"

i have 2 tables the first tache and table tarification tache .I would like to display in the interface tache.show the average rate of "tarifs" of this selected tache for all technicien. below is the code i used.........................................................................................................................................................................................................................................................................................................

@extends('Layouts/app')
@extends('Layouts.master')
@section('content')
@if(count($errors))
<div class="alert alert-danger" role="alert">
<ul>
@foreach($errors ->all() as $message)
<li></li>
@endforeach
</ul>
</div>
@endif
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>



<script type="text/javascript">

var getMetiersByTechnicienUrl = "";
var getTachesByMetierUrl = "";

 //console.log(getMetiersByTechnicienUrl,getTachesByMetierUrl, 
 getTarificationsByTacheUrl);
 function getMetiersByTechnicien(val) {
if(val.length>0) {
var technicien_id = val;
$.get(getMetiersByTechnicienUrl+'/'+technicien_id,function(res) {
    var html = '<option value="">-Select-</option>' ;
    $.each(res.metiers,function(index,item) {
        html+='<option 
 value="'+item.id+'">'+item.libelle_metier+'</option>';
    });
    $('#metiers').html(html);

});
}
}
function getTachesByMetier(val) {
 if(val.length>0) {
var metier_id = val;
$.get(getTachesByMetierUrl+'/'+metier_id,function(res) {
    var html = '<option value="">-Select-</option>' ;
    $.each(res.taches,function(index,item) {
        html+='<option 
value="'+item.id+'">'+item.libelle_tache+'</option>';
    });
    $('#taches').html(html);

});
}
}

</script>
<div class="container">
<div class="row"></div>
<div class="col-md-12">
Z
<div class="col-md-10">
<h1>Tarification tache</h1>
<form action=" " method="post">
 

<div class="form-group">
 <label for="technicien">Technicien</label>
    <select onchange="getMetiersByTechnicien(this.value)" 
name="technicien_id" 
id="technicien" class="form-control">
        <option value="">-Select-</option>
        @foreach($technicien as $t)
            <option value="">
                
            </option>
        @endforeach
    </select>
    </div>
    <div class="form-group">
    <div class="col-md-12">
        <div class="col-md-4">
    <label>Metier: </label>
    <select onchange="getTachesByMetier(this.value)" style="width: 
200px"    
    class="productm form-control" id="metiers">
     <option value="">-Select-</option>


    </select>
        </div>
        <div class="col-md-4">
            <label>tache: </label>
            <select style="width: 200px" class="productname form- 
control" 
name="tache_id" id="taches">
                <option value="">-Select-</option>
            </select>
        </div>
        <div class="col-md-4">
            <label>tarification: </label>
            <input style="width: 200px" class="productname form- 
control" type="text"  
name ="Tarif" class="form-control" value="">


        </div>


    </div>
    </div>
    <div class="form-group">
    <input type="submit" value = "enregistrer" class="form-control btn btn-primary">
     </div>
    </div>
    </div>
 </div>

@endsection

tarificationcontroller:

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\tarificationtache;
use App\technicien;
use App\tache;
use App\metier;

class TarificationController extends Controller
{
  /**
   * Display a listing of the resource.
   *
   * @return \Illuminate\Http\Response
   */
public function index()
{
$Listtache=tache::orderBy('libelle_tache')->get();
$Listtarification=tarificationtache::all();
return view('tarification.index',['tarification'=>$Listtarification]);
}

  /**
   * Show the form for creating a new resource.
   *
   * @return \Illuminate\Http\Response
   */
   public function create()

$technicien = technicien::orderBy('id','desc')->get();
$taches = Tache::orderBy('libelle_tache', 'asc')->get();
$metiers = Metier::orderBy('libelle_metier', 'asc')->get();
return view('tarification.create')->with('taches', $taches)- 
>with('technicien', $technicien)- 
>with('metiers', $metiers);
}

  /**
   * Store a newly created resource in storage.
   *
   * @param  \Illuminate\Http\Request  $request
   *@return \Illuminate\Http\Response
   */
public function store(Request $request)
{

$tarification = new tarificationtache();
$tarification ->tache_id = $request->input('tache_id');
$tarification ->Tarif =$request->input('Tarif');
$tarification->save();
$tarification->techniciens()->attach($request->technicien_id);
return redirect('technicien');  }

  /**
   * Display the specified resource.
   *
   * @param  int  $id
   * @return \Illuminate\Http\Response
   */
   public function show($id)
   {
   //
   }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
    $tache=Tache::find($id);
    return view('tache.edit',['libelle_tache'=>$tache], 
    ['Tarif'=>$tache], 
    ['metier_id'=>$tache]);
    }

   /**
    * Update the specified resource in storage.
    *
    * @param  \Illuminate\Http\Request  $request
    * @param  int  $id
    * @return \Illuminate\Http\Response
    */
    public function update(Request $request, $id)
    {
    //
    }

   /**
    * Remove the specified resource from storage.
    *
    * @param  int  $id
    * @return \Illuminate\Http\Response
    */
    public function destroy($id)
    {
    $tache =Tache::find($id);
    $tache->delete();

    return redirect('tache');
    }
    public function getTarificationsByTache($tache_id)
    {
    $t =tache::find($tache_id);
    return response()->json(['tarifications' => $t- 
    >tarificationtache]);
    }

tache.show

@extends('Layouts/app')
@extends('Layouts.master')
@section('content')
<div class="container">
<div class="row">
    <div class="col-md-10">





<h1 align="center">Detail Tache</h1>

<div class="form-group">
        <label for="libelle_Tache">Libelle Tache</label>
        <label id="libelle_Tache" type="text" class="form-control"                      name="tache[libelle_Tache]" ></label>
    </div>
    <div class="form-group">
        <label for="Tarif">Tarif moyenne </label>
        <label id="Tarif" type="text" class="form-control" name="tache[Tarif]" ></label>
    </div>
    <div class="form-group">
        <label for="libelle_metier">Libelle Metier</label>
        <label id="prenom" type="text" class="form-control" name="metier[libelle_metier]" >         {$tache->metier->libelle_metier}}</label>
    </div>




        <div class="form-group" align="right">

                    <form action="" method="post">
                        
                        

                        <a href="" class="btn btn-default" class="btn btn-         primary">Retour</a>
                        <a href="" class="btn btn-default">Editer</a>
                        <button type="submit" class="btn btn-danger">Supprimer</button>
                    </form>
        </div>
</div>
@endsection

tache controler

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Tache;
use App\Metier;
use App\Technicien;
class TacheController extends Controller
{

protected function validator(array $data)
{
return Validator::make($data, [
    'Tarif' => 'required|floatval(6.3)',

]);
}
   /**
    * Display a listing of the resource.
    *
    * @return \Illuminate\Http\Response
    */
public function index(Request $request)
{


$tache=tache::with(['metier'])->get();

$search = $request->get('search');

$field = $request->get('field') != '' ? $request->get('field') : 
'libelle_tache';
$sort = $request->get('sort') != '' ? $request->get('sort') : 'asc';
$tache = new tache();
if ($request)

$tache = $tache->where('libelle_tache', 'like', '%' . $search . '%')
    ->orderBy($field, $sort)
    ->paginate(5)
    ->withPath('?search=' . $search . '&libelle_tache=' . $tache . 
'&field=' . $field . '&sort=' .          $sort);
    return view('tache.index',['tache'=>$tache]);

}

/**
 * Show the form for creating a new resource.
 *
 * @return \Illuminate\Http\Response
*/
public function create()
{

//$metiers = Costcenter::lists('libelle_metier', 'id');
$metiers = Metier::orderBy('libelle_metier', 'asc')->get();
return view('tache.create')->with('metiers', $metiers);
}

/**
* Store a newly created resource in storage.
*
* @param  \Illuminate\Http\Request  $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$tache = new Tache();
$tache ->libelle_tache =$request->input('libelle_tache');
$tache ->Tarif =$request->input('Tarif');
$tache ->metier_id = $request->input('metier_id');
$tache->save();
return redirect('tache');
}

/**
* Display the specified resource.
*
* @param  int  $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{

$tache = tache::findOrFail($id);
$metier = $tache->metier;
return view('tache.show' , compact('tache'))->with('metier',$metier);

}

/**
* Show the form for editing the specified resource.
*
* @param  int  $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
$tache=Tache::find($id);
$metiers = Metier::orderBy('libelle_metier', 'asc')->get();
return view('tache.edit',['libelle_tache'=>$tache],['Tarif'=>$tache], 
['metier_id'=>$tache])-    >with('metiers', $metiers);
}

public function update(Request $request, $id)
{
// do some request validation
$tache=Tache::find($id);
$tache->update($request->all());
return redirect('tache');
}

/**
* Remove the specified resource from storage.
*
* @param  int  $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
$tache =Tache::find($id);
$tache->delete();

return redirect('tache');
}
public function getTachesByMetier($metier_id)
{
$t = Metier::find($metier_id);
return response()->json(['taches' => $t->taches]);
}

}



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire