workflowsubmit.blade.php
10.2 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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
<?php
$themehome=$wakka->GetThemePath('/');
$from='';
if($wakka->GetUser())$from=$wakka->GetUserName();else $from= "System";
function mkdir_r ($dir)
{
if (strlen($dir) == 0)return 0;
if (is_dir($dir))return 1;
elseif (dirname($dir) == $dir)return 1;
return (mkdir_r(dirname($dir)) and mkdir($dir,0777));
}
$usertime=time();
$message="";
$success="";
if(isset($_POST['ftaskbulkupload']))
{
include_once(app_path().'/lib/phpexcel/PHPExcel.php');
$inputFileType = "Excel5";
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load($_FILES['taskbulkupload']['tmp_name']);
$objWorksheet = $objPHPExcel->getActiveSheet();
$highestColumn = PHPExcel_Cell::columnIndexFromString($objPHPExcel->getActiveSheet()->getHighestColumn());
$highestrow=$objPHPExcel->getActiveSheet()->getHighestRow();
for($i=2;$i<=$highestrow;$i++)
{
$wakkarow=array();
for ($head = 0; $head < $highestColumn; $head++)
$wakkarow[PHPExcel_Cell::stringFromColumnIndex($head)]=$wakka->safeString(str_replace('\n',"<br>",$wakka->sqlescape($objWorksheet->getCellByColumnAndRow($head, $i)->getValue())));
if($wakkarow["A"]>100)
{
if($wakkarow["G"]<10)$wakkarow["G"]="0".$wakkarow["G"];
if($wakkarow["H"]<10)$wakkarow["H"]="0".$wakkarow["H"];
$tendtime=$wakkarow["F"]."-".$wakkarow["G"]."-".$wakkarow["H"]." 20:00:00";
if(\App\Models\User::where('username','=',$wakkarow['D'])->count()<1) {$message.= "Invalid UserName : ".$wakkarow["D"].",";}
else if(time()-strtotime($tendtime)>0&&$wakkarow["E"]!="") {$message.= "End Time Should be in future : ".$tendtime.",";}
else
{
$olddata=$wakka->LoadSingle("select * from hrms_tasks where id='".$wakkarow["A"]."'");
$olddata['remarks']=$wakka->safeString($olddata['remarks']);
if($olddata['accepted']=="0000-00-00 00:00:00"||trim($olddata['accepted'])=='')$olddata['accepted']=date("Y-m-d H:i:s");
if($wakkarow["E"]!="")$remarks=$olddata['remarks']."<br>[".date('Y-m-d_H')."][".$wakka->GetUserName()."]: ".$wakkarow["E"];
else $remarks=$olddata['remarks'];
$wakka->Query("update hrms_tasks set username='".$wakkarow["D"]."',remarks='$remarks',endtime='".$tendtime."',accepted='".$olddata['accepted']."' where id='".$wakkarow["A"]."' and (username='".$wakka->GetUserName()."' or (username='' and escalation2 like '%".$wakka->GetUserName()."%'))");
$tasks=$wakka->LoadSingle("select * from hrms_tasks where id='".$wakkarow["A"]."'");
//echo $olddata['accepted'];
if($wakkarow["E"]=="DONE")$wakka->Query("update hrms_tasks set status='DONE',completed='".date("Y-m-d H:i:s", $usertime)."' where id='".$wakkarow["A"]."' and (username='".$wakka->GetUserName()."' or (username='' and escalation2 like '%".$wakka->GetUserName()."%'))");
}
for ($head = 0; $head < $highestColumn; $head++)
unset($wakkarow[PHPExcel_Cell::stringFromColumnIndex($head)]);
}
else if($wakkarow["A"]!="")$message.= "Invalid ID : ".$wakkarow["A"].",";
}
@unlink($_FILES['taskbulkupload']);
$success="Data Uploaded";
}
else if(isset($_GET["dlwip"])&&$wakka->GetUser())
{
include_once(app_path().'/lib/phpexcel/PHPExcel.php');
$mytaskfilter=$_GET['mytaskfilter'];
if($mytaskfilter=='undefined')$mytaskfilter="";
$filters=str_replace(" ","|",$mytaskfilter);
if($_GET["mytaskfilter"]!="")$filterstr=" and (name REGEXP '$filters' or remarks REGEXP '$filters' or creatorid REGEXP '$filters' or endtime REGEXP '$filters' or username REGEXP '$filters') ";
$tasksarr=$wakka->LoadAll("select * from hrms_tasks where status not in ('DONE','REJECT','UNSET','Cancel') and (username='$from' or (username='' and escalation2 like '%$from%')) $filterstr order by empid,endtime");
$inputFileType = "Excel5";
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load("$themehome/uploads/sreports/blank.xls");
$baseRow = 3;
$highestColumn = 0;
$baserowArr=array();
$baserowArr[$highestColumn++]="id";
$baserowArr[$highestColumn++]="creatorid";
$baserowArr[$highestColumn++]="name";
$baserowArr[$highestColumn++]="username";
$baserowArr[$highestColumn++]="remarks";
$baserowArr[$highestColumn++]="endtime";
foreach($baserowArr as $key => $val)
{
$colstr=PHPExcel_Cell::stringFromColumnIndex($key);
$objPHPExcel->getActiveSheet()->setCellValue($colstr."1", $val);
if($val=='endtime')
{
$colstr=PHPExcel_Cell::stringFromColumnIndex($key);$objPHPExcel->getActiveSheet()->setCellValue($colstr."2", "Year");
$colstr=PHPExcel_Cell::stringFromColumnIndex($key+1);$objPHPExcel->getActiveSheet()->setCellValue($colstr."2", "Month");
$colstr=PHPExcel_Cell::stringFromColumnIndex($key+2);$objPHPExcel->getActiveSheet()->setCellValue($colstr."2", "Date");
$colstr=PHPExcel_Cell::stringFromColumnIndex($key+3);$objPHPExcel->getActiveSheet()->setCellValue($colstr."1", "Old Remarks");//old remarks
}
}
foreach($tasksarr as $r => $userdata)
{
$row = $baseRow + $r;
$remarks=$userdata["remarks"];
foreach($baserowArr as $key => $val)
{
if($val=='remarks')$userdata[$val]="";
if($val!='endtime') {$colstr=PHPExcel_Cell::stringFromColumnIndex($key);$objPHPExcel->getActiveSheet()->setCellValue($colstr.$row, $userdata[$val]);}
else //NOTE careful this can only be at the last column
{
$dtparts=explode(" ",$userdata[$val]);
$dateparts=explode("-",$dtparts[0]);
$colstr=PHPExcel_Cell::stringFromColumnIndex($key);$objPHPExcel->getActiveSheet()->setCellValue($colstr.$row, $dateparts[0]);
$colstr=PHPExcel_Cell::stringFromColumnIndex($key+1);$objPHPExcel->getActiveSheet()->setCellValue($colstr.$row, $dateparts[1]);
$colstr=PHPExcel_Cell::stringFromColumnIndex($key+2);$objPHPExcel->getActiveSheet()->setCellValue($colstr.$row, $dateparts[2]);
$colstr=PHPExcel_Cell::stringFromColumnIndex($key+3);$objPHPExcel->getActiveSheet()->setCellValue($colstr.$row, str_replace("<br>","\n",$remarks));$objPHPExcel->getActiveSheet()->getStyle($colstr.$row)->getAlignment()->setWrapText(true);
}
}
}
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="WIP_'.$from.'.xls"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, $inputFileType);
$objWriter->save('php://output');
return;
}
else if(isset($_POST["addtask"]))
{
$varid='';
$name = $wakka->safeString(Input::get('name'));
$duration = explode(".",Input::get('duration'));
$time = Input::get('time');
$assignto = Input::get('assignto');
$remarks = $wakka->safeString(Input::get('remarks'));
if(isset($_POST['selfservice']))
{
$varid=Input::get("selfservice");
$empdata=$wakka->getPerson($varid);
$ppldata=$empdata['peopledata'];
$duration=date('d').".".date('m').".".date('Y');
$time='20';
$name=$varid." SELFSERVE ".$name." [".$ppldata['firstname']."]";
$unameslist=$wakka->getUserListforClient($ppldata['client']).",".$wakka->HRCoreVars["selfservicecc"];
$assignto='';
$from="[$varid] ".$ppldata["firstname"];
}
else if(isset($_POST['proempid']))
{
$varid=Input::get("proempid");
$empdata=$wakka->getPerson($varid);
$ppldata=$empdata['peopledata'];
if($name!="")$name=$varid." PROTASK ".$name." [".$_POST['empname']."]";
$remarks="Client: ".$ppldata["client"]." ".$remarks;
}
$attach = $_FILES['attach']['name'];
$role = Input::get('role');
$timezone= Input::get('timezone');
if(sizeof($duration)==3)$duration=mktime($time, 0, 0, $duration[1], $duration[0], $duration[2]);
else $duration=time();
$durationSQL=date("Y-m-d H:i:s", $duration);
$usertime=time();
$strippedname = str_replace(array('\'',' '), '',$attach);
$strippedname = stripslashes($strippedname);
$destfile = "$themehome/uploads/$assignto/$strippedname";
if (!is_dir("$themehome/uploads/$assignto"))mkdir_r("$themehome/uploads/$assignto");
if(!empty($_FILES['attach']['name'])&&!move_uploaded_file($_FILES['attach']['tmp_name'], $destfile))$message="File cannot be uploaded : ".$_FILES['attach']['error'];
else if(strlen($name) < 5)$message="Please Fill Task Name (more then 5 letters)";
else if(sizeof($assignto) == 0&&!isset($_POST['selfservice']))$message="Please Assign task";
else if($duration<($usertime+(1*60*60)))$message="End time cannot be less then one hour from Now";
else if(strlen($remarks)<10)$message="Please provide detailed remarks/description";
else
{
$dtask=$wakka->LoadSingle("select * from hrms_tasks where name='$name' and status in ('NEW','WIP')");
if(empty($dtask))
{
if(is_array($assignto))foreach($assignto as $assigniee)
{
$wakka->Query("INSERT INTO hrms_tasks set name='$name',username='$assigniee',attachment='$strippedname',endtime='$durationSQL',status='NEW',remarks='$remarks',creatorid='$from',created_at=now(),escalation2='$unameslist',empid='$varid'");
$wakka->sendPopUpUserAlert('system',$assigniee,"New Task Created for you by [$from]",$name." : ".$remarks);
}
else
{
$remarks=str_replace("\n","<br>",$remarks);
$wakka->Query("INSERT INTO hrms_tasks set name='$name',username='',attachment='$strippedname',endtime='$durationSQL',status='NEW',remarks='$remarks',creatorid='$from',created_at=now(),escalation2='$unameslist',empid='$varid'");
$users=explode(",",$unameslist);
foreach($users as $user)if(trim($user)!="")$wakka->sendPopUpUserAlert('system',$user,"New SelfService Task from Employee [$from]",$name." : ".$remarks);
}
$success="Task Created.";
//if(!isset($_POST['proempid']))echo $wakka->alertMail($from,$assignto,'TaskCreated',$name." : ".$remarks);
}
else
{
$message="Duplicate Task. Already exists (User: [$dtask[username]] From [$dtask[creatorid]])";
}
}
@unlink($_FILES['attach']);
}
?>
<script>
var data='';
data+="<?php if($success!="")echo "<div class='message success close'><h2>Success!</h2><p>$success</p></div>"; ?>";
data+="<?php if($message!="")echo "<div class='message error close'><h2>Error!</h2><p>$message</p></div>"; ?>";
if(parent.document.getElementById("wresults"))parent.document.getElementById("wresults").innerHTML = data;
else if(document.getElementById("wresults"))document.getElementById("wresults").innerHTML = data;
else parent.document.location='Tasks';
parent.messageCloseFun();
</script>