Merge branch 'devel' - Effettuato modifiche nella parte progetti e righe progetto.

This commit is contained in:
Amministratore 2023-05-11 11:03:57 +02:00
commit b88290c192
7 changed files with 284 additions and 106 deletions

View File

@ -5,6 +5,7 @@ namespace App\Http\Controllers;
use App\Models\Progetti; use App\Models\Progetti;
use App\Models\User; use App\Models\User;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use App\Models\RigaProgetto;
class ProgettiController extends Controller class ProgettiController extends Controller
{ {
@ -34,15 +35,19 @@ class ProgettiController extends Controller
return redirect(Route('progetti')); return redirect(Route('progetti'));
} }
public function inserisciTask(Request $id) public function inserisciTask(Request $args)
{ {
RigaProgetto::saveRiga($args);
return redirect(Route('detail',['id'=>$args['fk_id_progetto']]));
} }
public function dettaglioProgetto(Request $id) public function dettaglioProgetto(Request $id)
{ {
$progetto = Progetti::getProgettoById($id['id']); $progetto_id=$id['id'];
return view('progetti.dettaglio',['dettaglio'=>$progetto]); $progetto = Progetti::getProgettoById($progetto_id);
$righe = RigaProgetto::getRigheProgetto($progetto_id);
return view('progetti.dettaglio',['dettaglio'=>$progetto, 'righe'=>$righe,]);
//dd($righe);
} }
} }

View File

@ -0,0 +1,19 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\RigaProgetto;
class RigaProgettoController extends Controller
{
//
public function deleterow($id_row,$id_prog)
{
$id_riga = $id_row;
$id_progetto = $id_prog;
RigaProgetto::deleteRow($id_riga);
return redirect('/admin/progetti/detail/?id='.$id_progetto);
}
}

View File

@ -27,7 +27,11 @@ class Progetti extends Model
} }
public static function getProgettoById($id){ public static function getProgettoById($id){
return DB::table('progettis')->join('users','progettis.fk_user','=','users.id')->where('progettis.id','=',$id)->get(); return DB::table('progettis')->
join('users','progettis.fk_user','=','users.id')->
select('users.id as userid', 'users.name as name', 'progettis.*')->
where('progettis.id','=',$id)->
get();
} }
public static function saveProgetto($progetto){ public static function saveProgetto($progetto){

View File

@ -0,0 +1,33 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
class RigaProgetto extends Model
{
use HasFactory;
public static function getRigheProgetto($progetto_id)
{
return DB::table('riga_progettos')->where('fk_id_progetto','=',$progetto_id)->get();
}
public static function saveRiga($args)
{
DB::table('riga_progettos')->insert([
'fk_id_progetto'=>$args['fk_id_progetto'],
'data'=>$args['data'],
'descrizione'=>$args['descrizione'],
'prezzo'=>$args['prezzo'],
'ore'=>$args['ore'],
]);
}
public static function deleteRow($id)
{
DB::table('riga_progettos')->delete($id);
}
}

View File

@ -0,0 +1,37 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateRigaProgettosTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('riga_progettos', function (Blueprint $table) {
$table->id();
$table->timestamps();
$table->date('data');
$table->longText('descrizione');
$table->decimal('prezzo',10,2)->nullable();
$table->decimal('ore',10,2)->nullable();
$table->unsignedBigInteger('fk_id_progetto');
$table->foreign('fk_id_progetto')->references('id')->on('progettis');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('riga_progettos');
}
}

View File

@ -1,110 +1,188 @@
@extends('admin') @extends('admin') @section('content')
@section('content')
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<h1 class="page-header">Lista Progetti</h1> <h1 class="page-header">Dettaglio Progetto</h1>
</div> </div>
</div> </div>
<div class="container"> <div class="container">
<!-- Content here --> <!-- Content here -->
<div class="row"> <div class="row">
<div class="col-xs-12"> <div class="col-xs-12">
<a class="btn btn-primary" href="progetti/new"><i class="fa fa-pencil-square-o fw"></i></a> <a class="btn btn-primary" href="progetti/new"><i
</div> class="fa fa-pencil-square-o fw"></i></a>
</div> </div>
</div>
<div class="row"> <div class="row">
<div class="col-xs-10"> <div class="col-xs-10">
<div class="panel panel-default"> <div class="panel panel-default">
<div class="panel-heading"> <div class="panel-heading" id="dettaglio">Dettaglio Progetto</div>
Dettaglio Progetto <div class="panel-body">
</div> @foreach($dettaglio ?? '' as $progetto)
<div class="panel-body"> <div class="row">
@foreach($dettaglio ?? '' as $progetto) <div class="col-xs-2">Nome:</div>
<div class="row"> <div class="col-xs-8">
<div class="col-xs-4"> <b>{{ $progetto->nome; }}</b>
Nome </div>
</div> </div>
<div class="col-xs-8">
<b>{{ $progetto->nome; }}</b>
</div>
</div>
<div class="row"> <div class="row" hidable="">
<div class="col-xs-4"> <div class="col-xs-2">Descrizione</div>
Descrizione <div class="col-xs-8">
</div> <b>{{ $progetto->descrizione; }}</b>
<div class="col-xs-8"> </div>
<b>{{ $progetto->descrizione; }}</b> </div>
</div> <div class="row" hidable="">
</div> <div class="col-xs-2">Data Inizio</div>
<div class="row"> <div class="col-xs-3">
<div class="col-xs-3"> <b>{{ date('d/m/Y',strtotime($progetto->data_inizio)) }}</b>
Data Inizio </div>
</div> <div class="col-xs-2">Data Termine</div>
<div class="col-xs-3"> <div class="col-xs-3">
<b>{{ $progetto->data_inizio }}</b> <b>{{ date('d/m/Y',strtotime($progetto->data_fine)) }}</b>
</div> </div>
<div class="col-xs-3"> </div>
Data Termine <div class="row" hidable="">
</div> <div class="col-xs-2">Stato</div>
<div class="col-xs-3"> <div class="col-xs-3">
<b>{{ $progetto->data_fine }}</b> <b>{{ $progetto->stato }}</b>
</div> </div>
</div> <div class="col-xs-2">Data Creazione</div>
<div class="row"> <div class="col-xs-3">
<div class="col-xs-3"> <b>{{ date('d/m/Y',strtotime($progetto->data_creazione)) }}</b>
Stato </div>
</div> </div>
<div class="col-xs-3"> <div class="row" hidable="">
<b>{{ $progetto->stato }}</b> <div class="col-xs-2">Budget</div>
</div> <div class="col-xs-3">
<div class="col-xs-3"> <b>&euro; {{ $progetto->budget }}</b>
Data Creazione </div>
</div> <div class="col-xs-2">Coordinatore</div>
<div class="col-xs-3"> <div class="col-xs-3">
<b>{{ $progetto->data_creazione }}</b> <b>{{ $progetto->name }}</b>
</div> </div>
</div> </div>
<div class="row"> <div class="row" hidable="">
<div class="col-xs-3"> <div class="col-xs-2">Note</div>
Budget <div class="col-xs-8">
</div> <b>{{ $progetto->note; }}</b>
<div class="col-xs-3"> </div>
<b>&euro; {{ $progetto->budget }}</b> </div>
</div> @endforeach
<div class="col-xs-3"> </div>
Coordinatore </div>
</div> </div>
<div class="col-xs-3"> </div>
<b>{{ $progetto->name }}</b>
</div>
</div> <div class="row">
<div class="row"> <div class="col-xs-10">
<div class="col-xs-4"> <div class="panel panel-default">
Note <div class="panel-heading" id="form">Inserisci riga (click
</div> show/hide)</div>
<div class="col-xs-8"> <div class="panel-body">
<b>{{ $progetto->note; }}</b> <form method="POST" action="">
</div> <div class="row">
</div> @csrf
@endforeach <div class="col-xs-2">
</div>
</div> <!-- Form per task con jquery e aggiunta righe automatica -->
</div> <label for="tdata" class="form-label">data:</label> <input
</div> type="date" name="data" class="form-control" id="data"
value="{{ date('Y-m-d') }}">
</div>
<div class="col-xs-5">
<!-- Form per task con jquery e aggiunta righe automatica -->
<label for="desc" class="form-label">descrizione:</label> <input
type="text" name="descrizione" class="form-control" id="desc">
</div>
<div class="col-xs-2">
<label for="ore" class="form-label">ore lavoro:</label>
<!-- Form per task con jquery e aggiunta righe automatica -->
<input type="text" name="ore" class="form-control" id="ore">
</div>
<div class="col-xs-2">
<label for="ore" class="form-label">prezzo:</label>
<!-- Form per task con jquery e aggiunta righe automatica -->
<input type="text" name="prezzo" class="form-control" id="ore">
</div>
<div class="col-xs-1">
<input type="hidden" name="fk_id_progetto" value="{{ $progetto->id }}">
<input type="submit" name="Submit" class="form-control">
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-10">
<div class="panel panel-default">
<div class="panel-heading" id="form">Elementi e costi del progetto</div>
</div>
<div class="panel-body">
<div class="row">
<table class="table table-striped table-bordered table-hover" id="tab_progetti">
<thead>
<tr>
<th>Data</th>
<th>Descrizione</th>
<th>Ore lavoro</th>
<th>Costo</th>
<th>Azioni</th>
</tr>
</thead>
<tbody>
@foreach($righe as $riga)
@if(isset($riga->data))
<tr>
<td>{{ date('d/m/Y',strtotime($riga->data)) }}</td>
<td>{{ $riga->descrizione }}</td>
<td>{{ $riga->ore }}</td>
<td>{{ $riga->prezzo }}</td>
<td><a href="delete_row/{{ $riga->id }}/return/{{ $progetto->id }}" class="btn btn-danger">X</a></td>
</tr>
@else
<tr>
<td>non c'è</td>
<td>non c'è</td>
<td>non c'è</td>
<td>non c'è</td>
</tr>
@endif
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</div> </div>
<!-- /.col-lg-12 -->
<!-- /.col-lg-12 --> @endsection @section('script')
<script>
@endsection
@section('script')
<script>
$(document).ready(function() { $(document).ready(function() {
$('#tab_progetti').DataTable({ $('#tab_progetti').DataTable({
responsive: true responsive: true
}); });
$('#form').click(function(){
$('form').toggle();
});
$("#dettaglio").click(function(){
$('[hidable]').toggle();
});
}); });
</script> </script>
@endsection @endsection

View File

@ -8,6 +8,7 @@ use App\Http\Controllers\ContatoreEnElController;
use App\Http\Controllers\ContatoreGasController; use App\Http\Controllers\ContatoreGasController;
use App\Http\Controllers\DocumentiController; use App\Http\Controllers\DocumentiController;
use App\Http\Controllers\MovimentiController; use App\Http\Controllers\MovimentiController;
use App\Http\Controllers\RigaProgettoController;
use App\Http\Controllers\TagController; use App\Http\Controllers\TagController;
use App\Http\Controllers\FullCalenderController; use App\Http\Controllers\FullCalenderController;
use App\Http\Controllers\AutoController; use App\Http\Controllers\AutoController;
@ -110,7 +111,8 @@ Route::get('/', [MovimentiController::class,'dashboard']);
Route::post('progetti/new', [ProgettiController::class, 'salvaProgetto']); Route::post('progetti/new', [ProgettiController::class, 'salvaProgetto']);
Route::get('progetti/new', [ProgettiController::class, 'nuovoProgetto'])->name('nuovoProgetto'); Route::get('progetti/new', [ProgettiController::class, 'nuovoProgetto'])->name('nuovoProgetto');
Route::get('progetti/delete',[ProgettiController::class, 'deleteProgetto']); Route::get('progetti/delete',[ProgettiController::class, 'deleteProgetto']);
Route::get('progetti/detail', [ProgettiController::class, 'dettaglioProgetto']); Route::get('progetti/delete_row/{id_row}/return/{id_prog}',[RigaProgettoController::class, 'deleterow']);
Route::get('progetti/detail', [ProgettiController::class, 'dettaglioProgetto'])->name('detail');
Route::post('progetti/detail', [ProgettiController::class, 'inserisciTask']); Route::post('progetti/detail', [ProgettiController::class, 'inserisciTask']);
/// TEST routes /// TEST routes