Passed
Push — master ( be1785...591f13 )
by Ajit
07:10
created

PaymentDetail::scopeIndexQuery()   A

Complexity

Conditions 5
Paths 8

Size

Total Lines 13
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 8
dl 0
loc 13
rs 9.6111
c 0
b 0
f 0
cc 5
nc 8
nop 5
1
<?php
2
3
namespace App;
4
5
use Sofa\Eloquence\Eloquence;
6
use Illuminate\Database\Eloquent\Model;
7
8
class PaymentDetail extends Model
9
{
10
    //Eloquence Search mapping
11
    use Eloquence;
12
    use createdByUser,updatedByUser;
13
14
    protected $table = 'trn_payment_details';
15
16
    protected $fillable = [
17
        'payment_amount',
18
        'note',
19
        'mode',
20
        'invoice_id',
21
        'created_by',
22
        'updated_by',
23
    ];
24
25
    protected $searchableColumns = [
26
        'payment_amount' => 20,
27
        'Invoice.invoice_number' => 20,
28
        'Invoice.member.name' => 20,
29
    ];
30
31
    public function scopeIndexQuery($query, $sorting_field, $sorting_direction, $drp_start, $drp_end)
32
    {
33
        $sorting_field = ($sorting_field != null ? $sorting_field : 'created_at');
34
        $sorting_direction = ($sorting_direction != null ? $sorting_direction : 'desc');
35
36
        if ($drp_start == null or $drp_end == null) {
37
            return $query->leftJoin('trn_invoice', 'trn_payment_details.invoice_id', '=', 'trn_invoice.id')->leftJoin('mst_members', 'trn_invoice.member_id', '=', 'mst_members.id')->select('trn_payment_details.id', 'trn_payment_details.created_at', 'trn_payment_details.payment_amount', 'trn_payment_details.mode', 'trn_payment_details.invoice_id', 'trn_invoice.invoice_number', 'mst_members.id as member_id', 'mst_members.name as member_name', 'mst_members.member_code')->orderBy($sorting_field, $sorting_direction);
38
        }
39
40
        return $query->leftJoin('trn_invoice', 'trn_payment_details.invoice_id', '=', 'trn_invoice.id')->leftJoin('mst_members', 'trn_invoice.member_id', '=', 'mst_members.id')->select('trn_payment_details.id', 'trn_payment_details.created_at', 'trn_payment_details.payment_amount', 'trn_payment_details.mode', 'trn_invoice.invoice_number', 'mst_members.name as member_name', 'mst_members.member_code')->whereBetween('trn_payment_details.created_at', [
41
                $drp_start,
42
                $drp_end,
43
            ])->orderBy($sorting_field, $sorting_direction);
44
    }
45
46
    public function invoice()
47
    {
48
        return $this->belongsTo('App\Invoice', 'invoice_id');
49
    }
50
51
    public function cheque()
52
    {
53
        return $this->hasOne('App\ChequeDetail', 'payment_id');
54
    }
55
}
56