WebErpMesv2 icon indicating copy to clipboard operation
WebErpMesv2 copied to clipboard

[TASK/ORDER] Taux de Rendement Synthétique (TRS)

Open SMEWebify opened this issue 1 year ago • 0 comments

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);
    }
}

SMEWebify avatar Aug 23 '24 20:08 SMEWebify