Passed
Push — master ( 99708e...74870e )
by Thomas
14:05
created

fixIncorrectDiscountValues   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 22
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 13
c 1
b 0
f 0
dl 0
loc 22
rs 10
wmc 4

1 Method

Rating   Name   Duplication   Size   Complexity  
A handle() 0 16 4
1
<?php
2
3
namespace App\Console\Commands;
4
5
use App\Models\Discount;
6
use App\Models\Enrollment;
7
use App\Models\Invoice;
8
use Illuminate\Console\Command;
9
10
class fixIncorrectDiscountValues extends Command
11
{
12
    protected $signature = 'academico:fix-discount-values';
13
14
    protected $description = 'Command description';
15
16
    public function handle()
17
    {
18
        $anomalies = 0;
19
        foreach (Invoice::all() as $invoice) {
20
            if ($invoice->invoiceDetails->where('product_type', Discount::class)->count() > 0) {
21
                $enrollmentValue = $invoice->invoiceDetails->where('product_type', Enrollment::class)->sum('price');
22
                foreach ($invoice->invoiceDetails->where('product_type', Discount::class) as $discount) {
23
                    $discountValue = $discount->price / 100;
24
                    $discount->update(['price' => ($discountValue * $enrollmentValue)]);
25
                    $anomalies++;
26
                    echo "\ninvoice ".$invoice->id . "fixed";
27
                }
28
29
            }
30
        }
31
        echo "\n".$anomalies.' anomalies fixed';
32
    }
33
}
34