dowload wip
This commit is contained in:
1 parent
b004542988
commit
8971b8b948
41 files changed
+2103
-243
No files matched your search
@@ -0,0 +1,141 @@
|
||||
<?php
|
||||
|
||||
namespace App\Actions\Generate\Nutzwerte;
|
||||
|
||||
use App\Models\Raumalles;
|
||||
use App\Models\Raumorientierung;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class BerechnungNutzwerte
|
||||
{
|
||||
public static function berechnen($projekts_id)
|
||||
{
|
||||
// 5
|
||||
// Stellplätze berechnet nur mit Absolutem Faktor multipliziert,
|
||||
// wird aber nicht in Orientierung aufgeführt und im PDF als eigenes Objekt ausgegeben.
|
||||
|
||||
// 6
|
||||
// Zubehör zu Objekt der Methode 5
|
||||
// (z.b ein Kellerabteil, das zu einem Stellplatz gehört, aber räumlich getrennt ist)
|
||||
// Wird wie bei Methode 4 im PDF einzeln aufgelistet und
|
||||
// nur mit Absolutem Faktor multipliziert, dann gerundet und der Nutzwert als ganze Zahl angeführt.
|
||||
// Vor dem Objekt steht "Zubehör"
|
||||
|
||||
// 9
|
||||
// Zubehör zu Objekt der Methode 5
|
||||
// (ist direkt verbunden mit dem Objekt, zB. das Kellerabteil hinter dem Stellplatz,
|
||||
// oder eine eigene Zufahrt nur zu einem Stellplatz).
|
||||
// Wird mit Absolutem Faktor multipliziert und ungerundet zum Objekt der Methode 5 dazugezählt,
|
||||
// dann erst die Summe des NW gerundet
|
||||
|
||||
// METHODEN 5, 6 ,9
|
||||
// METHODEN 4
|
||||
// METHODE 3 & 3b
|
||||
|
||||
$_raumorientierung = Raumorientierung::where('projekts_id', $projekts_id)
|
||||
// ->where('nicht_in_orientierung', 0)
|
||||
->get();
|
||||
|
||||
foreach ($_raumorientierung as $raumorientierung) {
|
||||
|
||||
$_raumalles = Raumalles::where('raumorientierung_id', $raumorientierung->id)
|
||||
->where('projekts_id', $projekts_id)
|
||||
->whereIn('methodes_id', [3, 4, 5, 6, 7, 9])
|
||||
->get();
|
||||
|
||||
foreach ($_raumalles as $raumalle) {
|
||||
|
||||
$nutzwert_ungerundet = $raumalle->qm * $raumalle->factor;
|
||||
|
||||
switch ($raumalle->methodes_id) {
|
||||
case '9':
|
||||
Raumalles::where('id', $raumalle->id)
|
||||
->where('methodes_id', 9)
|
||||
->update(['nutzwert_ungerundet' => $nutzwert_ungerundet]);
|
||||
break;
|
||||
case '3':
|
||||
$nutzwert_gerundet = round($raumalle->qm * $raumalle->factor * $raumorientierung->factor);
|
||||
Raumalles::where('id', $raumalle->id)
|
||||
->where('methodes_id', 3)
|
||||
->update(['nutzwert_gerundet' => $nutzwert_ungerundet]);
|
||||
break;
|
||||
default:
|
||||
$nutzwert_gerundet = round($raumalle->qm * $raumalle->factor);
|
||||
Raumalles::where('id', $raumalle->id)
|
||||
->where('methodes_id', $raumalle->methodes_id)
|
||||
->update(['nutzwert_gerundet' => $nutzwert_gerundet]);
|
||||
break;
|
||||
}
|
||||
|
||||
Raumorientierung::where('id', $raumorientierung->id)
|
||||
->where('nutzwert_summe', 0)
|
||||
->update(['nutzwert_summe' => 1]);
|
||||
|
||||
$t1 = Raumalles::select('nutzwert_gerundet')
|
||||
->where('raumorientierung_id', $raumorientierung->id)
|
||||
->whereIn('methodes_id', [5, 6])
|
||||
->get()
|
||||
->sum('nutzwert_gerundet');
|
||||
$t2 = Raumalles::select('nutzwert_ungerundet')
|
||||
->where('raumorientierung_id', $raumorientierung->id)
|
||||
->where('methodes_id', 9)
|
||||
->get()
|
||||
->sum('nutzwert_ungerundet');
|
||||
$nutzwert_summe = round($t1 + $t2);
|
||||
|
||||
Raumorientierung::where('id', $raumorientierung->id)
|
||||
->update(['nutzwert_summe' => $nutzwert_summe]);
|
||||
}
|
||||
}
|
||||
|
||||
// METHODEN 1, 2, 2b , 3, 3b, 4
|
||||
$_raumorientierung = Raumorientierung::where('projekts_id', $projekts_id)
|
||||
->where('nicht_in_orientierung', 0)
|
||||
->get();
|
||||
|
||||
foreach ($_raumorientierung as $raumorientierung) {
|
||||
|
||||
// METHODE 1
|
||||
$qm_m1 = Raumalles::select('qm')
|
||||
->where('projekts_id', $projekts_id)
|
||||
->where('raumorientierung_id', $raumorientierung->id)
|
||||
->where('methodes_id', 1)
|
||||
->get()
|
||||
->sum('qm');
|
||||
|
||||
if ($qm_m1) {
|
||||
Raumorientierung::where('id', $raumorientierung->id)
|
||||
->where('projekts_id', $projekts_id)
|
||||
->update(['qm_m1' => $qm_m1]);
|
||||
}
|
||||
|
||||
// METHODE 1 & METHODE 2
|
||||
$nw_m2 = Raumalles::select(DB::raw('sum(qm * factor) as total'))
|
||||
->where('projekts_id', $projekts_id)
|
||||
->where('raumorientierung_id', $raumorientierung->id)
|
||||
->where('methodes_id', 2)
|
||||
->get()
|
||||
->sum('total');
|
||||
|
||||
$nw_m8 = Raumalles::select(DB::raw('sum(qm * factor) as total'))
|
||||
->where('projekts_id', $projekts_id)
|
||||
->where('raumorientierung_id', $raumorientierung->id)
|
||||
->where('methodes_id', 8)
|
||||
->get()
|
||||
->sum('total');
|
||||
|
||||
$nw_m1_m2 = round((($qm_m1 + $nw_m2) * $raumorientierung->factor) + $nw_m8);
|
||||
|
||||
$nw_m3_m4 = Raumalles::select('nutzwert_gerundet')
|
||||
->where('projekts_id', $projekts_id)
|
||||
->where('raumorientierung_id', $raumorientierung->id)
|
||||
->whereIn('methodes_id', [3, 4, 7])
|
||||
->get()
|
||||
->sum('nutzwert_gerundet');
|
||||
|
||||
$nutzwert_summe = $nw_m1_m2 + $nw_m3_m4;
|
||||
Raumorientierung::where('id', $raumorientierung->id)
|
||||
->update(['nutzwert_summe' => $nutzwert_summe]);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user