Record.php
3.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
<?php namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Auth;
use App\Models\KeyVal;
class Record extends Model{
protected $table = 'records';
//protected $fillable = array('status','data','rlog','group');
private $cachecols=array("currentstatus","legalstatus","firstname","lastname",
"mobile","emailid","altphone1","altphone2","altphone3","altphone4","altphone5",
"altphone6","altphone7","altphone8","altphone9","altphone10","candidatecategory",
"nextfollowupdate","passportno","joiningdate","client","designation","supervisor",
"contracttype","saltotal","ibannumber","servicestoppeddate","employeeexitstatus",
"exittype","dateofexit","abscondtype","abscondeddate","workflowstatus","status",
"clientinternalid","department","passportstatus","clientcode","laborcardpersonalid",
"dialer_status","dialer_substatus","dialer_callback","dialer_remarks","dialer_flag",
"dialer_lastcall","priority","crmlist_id","group");
private $keyvals=null;
public $dataarr=array();
public $rlogarr=array();
public $plogarr=array();
public function keyvals()
{
if(!$this->keyvals)
{
if($this->keyval_id==0)
{
$keyval=new KeyVal();
$keyval->type='Record';
$keyval->key=$this->id;
$keyval->save();
$this->keyval_id=$keyval->id;
$this->save();
}
$this->keyvals=KeyVal::find($this->keyval_id);
$this->dataarr=unserialize($this->keyvals->data);
$this->rlogarr=unserialize($this->keyvals->rlog);
$this->plogarr=unserialize($this->keyvals->plog);
}
return $this;
}
public function save(array $attributes = array())
{
if($this->keyvals)
{
foreach($this->cachecols as $cols)
{
if(isset($this->dataarr[$cols]))$this->$cols=$this->dataarr[$cols];
}
$this->keyvals->data=serialize($this->dataarr);
$this->keyvals->rlog=serialize($this->rlogarr);
$this->keyvals->plog=serialize($this->plogarr);
$this->keyvals->save();
}
parent::save($attributes);
}
protected static function boot()
{
parent::boot();
static::addGlobalScope('groupacl', function(\Illuminate\Database\Eloquent\Builder $builder)
{
if(Auth::check())
{
//$builder->whereIn('group',Auth::user()->getAccessList("group",true,false,false));
}
});
static::creating(function($model)
{
if(Auth::check())
{
if($model->group=='')$model->group=Auth::user()->group;
if($model->group=='')$model->group="Default";
$groupacl=Auth::user()->getAccessList("group",false,true,false);
if(!in_array($model->group,$groupacl))
{
throw new \Exception("No Access to Create [".Auth::user()->id."] : (".implode(",",$groupacl).") in $model->group");
return false;
}
}
else if($model->group=='')$model->group="Default";
});
static::updating(function($model)
{
if(Auth::check())
{
$original = $model->getOriginal();
if($original['group']=='')$original['group']='Default';
if($model->group=='')$model->group=Auth::user()->group;
if($model->group=='')$model->group="Default";
$groupacl=Auth::user()->getAccessList("group",false,true,false);
if(!in_array($original['group'],$groupacl)||!in_array($model->group,$groupacl))
{
throw new \Exception("No Access to Update [".Auth::user()->id."] : (".implode(",",$groupacl).") in $model->group");
return false;
}
}
else if($model->group=='')$model->group="Default";
});
}
/**
* Get the comments for the blog post.
*/
public function calls()
{
return $this->hasMany('App\Models\CRMCallArchive', 'crm_id', 'id');
}
}