WebErpMesv2
WebErpMesv2 copied to clipboard
[TASK/ORDER] Taux de Rendement Synthétique (TRS)
namespace App\Models\Planning;
use Illuminate\Database\Eloquent\Model;
class Task extends Model
{
// ... (votre code actuel)
// Calcul de la disponibilité
public function getAvailabilityAttribute()
{
$plannedTime = $this->TotalTime();
if ($plannedTime <= 0) {
return 0;
}
$operationalTime = $this->getTotalLogTime();
return $operationalTime / $plannedTime;
}
// Calcul de la performance
public function getPerformanceAttribute()
{
$producedQty = $this->getTotalLogGoodQt();
$theoreticalQty = $this->GetOrderQtyLine(); // Suppose que c'est la quantité prévue pour cette tâche
if ($theoreticalQty <= 0) {
return 0;
}
return $producedQty / $theoreticalQty;
}
// Calcul de la qualité
public function getQualityAttribute()
{
$goodQty = $this->getTotalLogGoodQt();
$totalQty = $goodQty + $this->getTotalLogBadQt();
if ($totalQty <= 0) {
return 0;
}
return $goodQty / $totalQty;
}
}
namespace App\Models\Workflow;
use Illuminate\Database\Eloquent\Model;
class OrderLines extends Model
{
// ... (votre code actuel)
// Calcul du TRS pour une ligne de commande
public function getTRSAttribute()
{
$tasks = $this->Task;
if ($tasks->isEmpty()) {
return 0;
}
$availability = $tasks->avg('availability');
$performance = $tasks->avg('performance');
$quality = $tasks->avg('quality');
return round($availability * $performance * $quality * 100, 2);
}
}