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

PaymentDetail   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 46
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 7
eloc 25
dl 0
loc 46
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A invoice() 0 3 1
A scopeIndexQuery() 0 13 5
A cheque() 0 3 1
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