/home/dvjjulio/softtrash/app/Http/Controllers/MetricasController.php
<?php
namespace Trash\Http\Controllers;
use Illuminate\Http\Request;
use Trash\Http\Requests;
use Trash\Http\Controllers\Controller;
use Trash\Ordenes;
use Trash\CombustibleOrden;
use Trash\VertederoOrden;
use stdClass;
class MetricasController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$ordenes = new Ordenes();
$orden = $ordenes->orden_mes_year();
$orden_year = $orden->getData()->data;
return view('catalogo.Metricas')->with(compact('orden_year'));
}
public function metrica_op(Request $request){
$op = $request->input('op');
$year = $request->input('year');
$month = $request->input('month');
switch($op){
case 1:
$ordenes = new Ordenes();
$reciclable = $ordenes->metricasReciclables($year);
if (isset($reciclable)){
$meses = $this->sumMonth($reciclable);
$total = array_sum(array_map(function($item) {
return $item->peso_kg;
}, $reciclable));
}
return view('catalogo.metricaReciclable')->with(compact('reciclable','total','meses','year'));
break;
case 2:
$ordenes = new Ordenes();
$residuos = $ordenes->metricasResiduos($year) ?? [];
if(isset($residuos)){
$meses = $this->sumMonth($residuos);
$total = array_sum(array_map(function($item) {
return $item->total;
}, $residuos));
}
return view('catalogo.metricaResiduos')->with(compact('residuos','total','meses','year'));
break;
case 3:
$ordenes = new Ordenes();
$unidades = $ordenes->metricasUnidad($year);
return view('catalogo.metricaUnidad')->with(compact('unidades','year'));
break;
case 4:
$ordenes = new Ordenes();
$cobro = $ordenes->metricasCobroChofer($year, $month);
$cobroTotal = $ordenes->metricasCobroTotal($year, $month);
return view('catalogo.metricaCobro')->with(compact('cobro','cobroTotal','year','month'));
break;
case 5:
$ordenes = new Ordenes();
$utilidad = $ordenes->metricasUtilidad($year, $month);
return view('catalogo.metricaUtilidad')->with(compact('utilidad','year','month'));
break;
case 6:
$ordenes = new Ordenes();
$residuos = $ordenes->metricasReciclablesCantidad($year);
if (isset($residuos)){
$meses = $this->sumMonth($residuos);
$total = array_sum(array_map(function($item) {
return $item->total;
}, $residuos));
}
return view('catalogo.metricaResiduosCantidad')->with(compact('residuos','total','meses','year'));
break;
case 7:
$combustibleOrden = new CombustibleOrden();
$getCombustibleOrden = $combustibleOrden->getCombustibleOrden($year, $month);
$combustibleOrdenYear = $combustibleOrden->getCombustibleOrdenYear($year);
$combustibleObject = [];
if (isset($getCombustibleOrden)) {
$total = 0;
$litros = 0.0;
$notesAdded = [];
$subtotales = [];
$nombre = '';
$totalChofer = 0;
$litrosChofer = 0.0;
$prev = [];
foreach($getCombustibleOrden as $key => $value) {
$semana = $value->semana;
$year = $value->year;
$total += $value->total;
$totalChofer += $value->total;
$litros += floatval($value->litros);
$litrosChofer += floatval($value->litros);
$nombre = $value->nombre;
array_push($notesAdded, $value);
$combustibleObject['semana-'.$semana] = ['semana' => $semana, 'year' => $year, 'total' => 0, 'litros' => 0, 'notas' => null];
$combustibleObject['semana-'.$semana]['total'] += $total;
$combustibleObject['semana-'.$semana]['litros'] += $litros;
$combustibleObject['semana-'.$semana]['notas'] = $notesAdded;
if (isset($getCombustibleOrden[$key + 1]) && $value->semana != $getCombustibleOrden[$key + 1]->semana) {
$combustibleObject['semana-'.$semana]['subtotales'] = $subtotales;
$total = 0;
$litros = 0;
$notesAdded = [];
}
}
}
return view('catalogo.metricaCombustible')->with(compact('combustibleObject', 'combustibleOrdenYear'));
break;
case 8:
$type = $request->input('type');
$vertederoOrden = new VertederoOrden();
$getVertederoOrden = $vertederoOrden->getVertederoOrden($year, $month, $type);
$vertederoOrdenYear = $vertederoOrden->getVertederoOrdenYear($year);
$vertederoObject = [];
if (isset($getVertederoOrden)) {
$total = 0;
$pesoNeto = 0;
$notesAdded = [];
foreach($getVertederoOrden as $key => $value) {
$semana = $value->semana;
$year = $value->year;
$total += $value->total;
$pesoNeto += floatval($value->peso_neto);
array_push($notesAdded, $value);
$vertederoObject['semana-'.$semana] = ['semana' => $semana, 'year' => $year, 'peso_neto' => 0, 'total' => 0, 'notas' => null];
$vertederoObject['semana-'.$semana]['total'] += $total;
$vertederoObject['semana-'.$semana]['peso_neto'] += $pesoNeto;
$vertederoObject['semana-'.$semana]['notas'] = $notesAdded;
if (isset($getVertederoOrden[$key + 1]) && $value->semana != $getVertederoOrden[$key + 1]->semana) {
$total = 0;
$pesoNeto = 0;
$notesAdded = [];
}
}
}
return view('catalogo.metricaVertedero')->with(compact('vertederoObject', 'vertederoOrdenYear', 'type'));
break;
}
}
public function sumMonth($data){
$meses = []; $m1 = 0; $m2 = 0; $m3 = 0; $m4 = 0; $m5 = 0; $m6 = 0; $m7 = 0; $m8 = 0; $m9 = 0; $m10 = 0; $m11 = 0; $m12 = 0;
foreach($data as $key => $values){
$m1 += $values->mes_1;
$m2 += $values->mes_2;
$m3 += $values->mes_3;
$m4 += $values->mes_4;
$m5 += $values->mes_5;
$m6 += $values->mes_6;
$m7 += $values->mes_7;
$m8 += $values->mes_8;
$m9 += $values->mes_9;
$m10 += $values->mes_10;
$m11 += $values->mes_11;
$m12 += $values->mes_12;
$meses[1] = [$m1];
$meses[2] = [$m2];
$meses[3] = [$m3];
$meses[4] = [$m4];
$meses[5] = [$m5];
$meses[6] = [$m6];
$meses[7] = [$m7];
$meses[8] = [$m8];
$meses[9] = [$m9];
$meses[10] = [$m10];
$meses[11] = [$m11];
$meses[12] = [$m12];
}
return $meses;
}
}