Commit 8d9696c29e57b39e1abbaa6237e7d419409849cd
1 parent
b2f214e7
Exists in
master
page2 + 3-1/2
Showing
2 changed files
with
360 additions
and
24 deletions
Show diff stats
src/app/dashboard/dashboard.component.html
@@ -9,17 +9,20 @@ | @@ -9,17 +9,20 @@ | ||
9 | <a href="#tab1" data-toggle="tab" aria-expanded="true">ติดตั้ง</a> | 9 | <a href="#tab1" data-toggle="tab" aria-expanded="true">ติดตั้ง</a> |
10 | </li> | 10 | </li> |
11 | <li class="sbold"> | 11 | <li class="sbold"> |
12 | - <a href="#tab2" data-toggle="tab" aria-expanded="false">page 2</a> | 12 | + <a href="#tab2" data-toggle="tab" aria-expanded="false">RND</a> |
13 | </li> | 13 | </li> |
14 | <li class="sbold"> | 14 | <li class="sbold"> |
15 | - <a href="#tab3" data-toggle="tab" aria-expanded="false">page 3</a> | 15 | + <a href="#tab3" data-toggle="tab" aria-expanded="false">SDE+SDN</a> |
16 | </li> | 16 | </li> |
17 | <li class="sbold"> | 17 | <li class="sbold"> |
18 | - <a href="#tab4" data-toggle="tab" aria-expanded="false">page 4</a> | 18 | + <a href="#tab4" data-toggle="tab" aria-expanded="false">AP Down+APD</a> |
19 | </li> | 19 | </li> |
20 | <li class="sbold"> | 20 | <li class="sbold"> |
21 | - <a href="#tab5" data-toggle="tab" aria-expanded="false">page 5</a> | 21 | + <a href="#tab5" data-toggle="tab" aria-expanded="false">BNW+NDS+NED+NES+NET</a> |
22 | </li> | 22 | </li> |
23 | + <li class="sbold"> | ||
24 | + <a href="#tab6" data-toggle="tab" aria-expanded="false">CUS</a> | ||
25 | + </li> | ||
23 | </ul> | 26 | </ul> |
24 | <div class="tab-content"> | 27 | <div class="tab-content"> |
25 | <div class="panel tab-pane active" id="tab1"> | 28 | <div class="panel tab-pane active" id="tab1"> |
@@ -128,7 +131,6 @@ | @@ -128,7 +131,6 @@ | ||
128 | </div> | 131 | </div> |
129 | </div> | 132 | </div> |
130 | </div> | 133 | </div> |
131 | - | ||
132 | <div class="panel tab-pane" id="tab2"> | 134 | <div class="panel tab-pane" id="tab2"> |
133 | <div class="caption"> | 135 | <div class="caption"> |
134 | <h1 class="icon-bubble font-green-sharp"> | 136 | <h1 class="icon-bubble font-green-sharp"> |
@@ -148,7 +150,7 @@ | @@ -148,7 +150,7 @@ | ||
148 | </div> | 150 | </div> |
149 | <div class="panel-body"> | 151 | <div class="panel-body"> |
150 | <div class="row"> | 152 | <div class="row"> |
151 | - <div class="col-lg-4 col-md-3 col-sm-6 col-xs-12" *ngFor="let item of resultData | filter:FilterSearch: '' "> | 153 | + <div class="col-lg-4 col-md-3 col-sm-6 col-xs-12" *ngFor="let item of resultData2 | filter:FilterSearch: '' "> |
152 | <a class="dashboard-stat dashboard-stat-v2 red " | 154 | <a class="dashboard-stat dashboard-stat-v2 red " |
153 | href="{{item.link}}" | 155 | href="{{item.link}}" |
154 | target="_blank" | 156 | target="_blank" |
@@ -202,7 +204,7 @@ | @@ -202,7 +204,7 @@ | ||
202 | </div> | 204 | </div> |
203 | <div class="panel-body"> | 205 | <div class="panel-body"> |
204 | <div class="row"> | 206 | <div class="row"> |
205 | - <div class="col-lg-4 col-md-3 col-sm-6 col-xs-12" *ngFor="let item of resultDataOnHold | filter:FilterSearchOnHold: '' "> | 207 | + <div class="col-lg-4 col-md-3 col-sm-6 col-xs-12" *ngFor="let item of resultDataOnHold2 | filter:FilterSearchOnHold: '' "> |
206 | <a class="dashboard-stat dashboard-stat-v2 red " | 208 | <a class="dashboard-stat dashboard-stat-v2 red " |
207 | href="{{item.link}}" | 209 | href="{{item.link}}" |
208 | target="_blank" | 210 | target="_blank" |
@@ -254,7 +256,7 @@ | @@ -254,7 +256,7 @@ | ||
254 | </div> | 256 | </div> |
255 | <div class="panel-body"> | 257 | <div class="panel-body"> |
256 | <div class="row"> | 258 | <div class="row"> |
257 | - <div class="col-lg-4 col-md-3 col-sm-6 col-xs-12" *ngFor="let item of resultData | filter:FilterSearch: '' "> | 259 | + <div class="col-lg-4 col-md-3 col-sm-6 col-xs-12" *ngFor="let item of resultData3 | filter:FilterSearch: '' "> |
258 | <a class="dashboard-stat dashboard-stat-v2 red " | 260 | <a class="dashboard-stat dashboard-stat-v2 red " |
259 | href="{{item.link}}" | 261 | href="{{item.link}}" |
260 | target="_blank" | 262 | target="_blank" |
@@ -308,7 +310,7 @@ | @@ -308,7 +310,7 @@ | ||
308 | </div> | 310 | </div> |
309 | <div class="panel-body"> | 311 | <div class="panel-body"> |
310 | <div class="row"> | 312 | <div class="row"> |
311 | - <div class="col-lg-4 col-md-3 col-sm-6 col-xs-12" *ngFor="let item of resultDataOnHold | filter:FilterSearchOnHold: '' "> | 313 | + <div class="col-lg-4 col-md-3 col-sm-6 col-xs-12" *ngFor="let item of resultDataOnHold3 | filter:FilterSearchOnHold: '' "> |
312 | <a class="dashboard-stat dashboard-stat-v2 red " | 314 | <a class="dashboard-stat dashboard-stat-v2 red " |
313 | href="{{item.link}}" | 315 | href="{{item.link}}" |
314 | target="_blank" | 316 | target="_blank" |
@@ -553,6 +555,112 @@ | @@ -553,6 +555,112 @@ | ||
553 | </div> | 555 | </div> |
554 | </div> | 556 | </div> |
555 | </div> | 557 | </div> |
558 | + <div class="panel tab-pane" id="tab6"> | ||
559 | + <div class="caption"> | ||
560 | + <h1 class="icon-bubble font-green-sharp"> | ||
561 | + <span class="caption-subject font-green-sharp sbold font"> Active</span> | ||
562 | + </h1> | ||
563 | + | ||
564 | + <div class="input-group" style="float: right; margin-top: 11px;"> | ||
565 | + <div class="input-icon right"> | ||
566 | + <i class="icon-magnifier"> | ||
567 | + </i> | ||
568 | + <input type="text" placeholder="Search.." class="form-control sbold font" [(ngModel)]="FilterSearch"> | ||
569 | + </div> | ||
570 | + </div> | ||
571 | + | ||
572 | + <hr> | ||
573 | + <br> | ||
574 | + </div> | ||
575 | + <div class="panel-body"> | ||
576 | + <div class="row"> | ||
577 | + <div class="col-lg-4 col-md-3 col-sm-6 col-xs-12" *ngFor="let item of resultData | filter:FilterSearch: '' "> | ||
578 | + <a class="dashboard-stat dashboard-stat-v2 red " | ||
579 | + href="{{item.link}}" | ||
580 | + target="_blank" | ||
581 | + [ngStyle] = "{'background-color': getColorDay(item.days.toFixed(0))}"> | ||
582 | + <!-- <div [ngStyle]="{'background-color':item.days === '366.0098' ? 'green' : 'red' }"></<div> --> | ||
583 | + <!-- <div class="avater">{{(item.days).toFixed(0)}} D</div> --> | ||
584 | + <div class="avater" [ngStyle]="{'background-color': getColorDay(item.days.toFixed(0))}" style="font-size: 26px; text-align: center; font-weight: bold;" >{{item.days.toFixed(0)}}D</div> | ||
585 | + <div class="visual"> | ||
586 | + <i class="fa fa-comments"></i> | ||
587 | + </div> | ||
588 | + <table> | ||
589 | + <tr> | ||
590 | + <div class="details" style="width: calc(100% - 50px);"> | ||
591 | + <div style="text-align: right; margin-top: -50px; color: black;">{{item.STATUS}}</div> | ||
592 | + <div class= "number" style=" color: black; display: block; text-align: right;"> | ||
593 | + <span data-counter="counterup" data-value="">{{item.custgroupName}}</span> | ||
594 | + </div> | ||
595 | + <div class="desc" style=" color: black;">{{item.team}}</div><br> | ||
596 | + <!-- <div class="desc" style="text-align: left; text-align: bottom; color: black;">{{(item.COMMENT > 20)? | (item.COMMENT | slice:0:20) + '....':(item.COMMENT)}}</div> --> | ||
597 | + </div> | ||
598 | + </tr> | ||
599 | + <tr> | ||
600 | + <div class="details" style="width: calc(100% - 50px);"> | ||
601 | + <div class="desc" style="text-align: left; color: black; margin-top: 100px;">{{item.COMMENT | short}}</div> | ||
602 | + </div> | ||
603 | + </tr> | ||
604 | + </table> | ||
605 | + </a> | ||
606 | + </div> | ||
607 | + </div> | ||
608 | + </div> | ||
609 | + <br> | ||
610 | + <br> | ||
611 | + <br> | ||
612 | + <br> | ||
613 | + <!-- On Hold --> | ||
614 | + | ||
615 | + <div class="caption"> | ||
616 | + <h1 class="icon-bubble font-grey-gallery"> | ||
617 | + <span class="caption-subject font-grey-gallery sbold font"> On Hold</span> | ||
618 | + </h1> | ||
619 | + <div class="input-group" style="float: right; margin-top: 11px;"> | ||
620 | + <div class="input-icon right"> | ||
621 | + <i class="icon-magnifier"> | ||
622 | + </i> | ||
623 | + <input type="text" placeholder="Search.." class="form-control sbold font" [(ngModel)]="FilterSearchOnHold"> | ||
624 | + </div> | ||
625 | + </div> | ||
626 | + <hr> | ||
627 | + <br> | ||
628 | + </div> | ||
629 | + <div class="panel-body"> | ||
630 | + <div class="row"> | ||
631 | + <div class="col-lg-4 col-md-3 col-sm-6 col-xs-12" *ngFor="let item of resultDataOnHold | filter:FilterSearchOnHold: '' "> | ||
632 | + <a class="dashboard-stat dashboard-stat-v2 red " | ||
633 | + href="{{item.link}}" | ||
634 | + target="_blank" | ||
635 | + [ngStyle] = "{'background-color': getColorDay(item.days.toFixed(0))}"> | ||
636 | + <!-- <div [ngStyle]="{'background-color':item.days === '366.0098' ? 'green' : 'red' }"></<div> --> | ||
637 | + <!-- <div class="avater">{{(item.days).toFixed(0)}} D</div> --> | ||
638 | + <div class="avater" [ngStyle]="{'background-color': getColorDay(item.days.toFixed(0))}" style="font-size: 26px; text-align: center; font-weight: bold;" >{{item.days.toFixed(0)}}D</div> | ||
639 | + <div class="visual"> | ||
640 | + <i class="fa fa-comments"></i> | ||
641 | + </div> | ||
642 | + <table> | ||
643 | + <tr> | ||
644 | + <div class="details" style="width: calc(100% - 50px);"> | ||
645 | + <div style="text-align: right; margin-top: -50px; color: black;">{{item.STATUS}}</div> | ||
646 | + <div class= "number" style=" color: black; display: block; text-align: right;"> | ||
647 | + <span data-counter="counterup" data-value="">{{item.custgroupName}}</span> | ||
648 | + </div> | ||
649 | + <div class="desc" style=" color: black;">{{item.team}}</div><br> | ||
650 | + <!-- <div class="desc" style="text-align: left; text-align: bottom; color: black;">{{(item.COMMENT > 20)? | (item.COMMENT | slice:0:20) + '....':(item.COMMENT)}}</div> --> | ||
651 | + </div> | ||
652 | + </tr> | ||
653 | + <tr> | ||
654 | + <div class="details" style="width: calc(100% - 50px);"> | ||
655 | + <div class="desc" style="text-align: left; color: black; margin-top: 100px;">{{item.COMMENT | short}}</div> | ||
656 | + </div> | ||
657 | + </tr> | ||
658 | + </table> | ||
659 | + </a> | ||
660 | + </div> | ||
661 | + </div> | ||
662 | + </div> | ||
663 | + </div> | ||
556 | </div> | 664 | </div> |
557 | </div> | 665 | </div> |
558 | </div> | 666 | </div> |
src/app/dashboard/dashboard.component.ts
@@ -41,8 +41,24 @@ export class DashboardComponent implements OnInit { | @@ -41,8 +41,24 @@ export class DashboardComponent implements OnInit { | ||
41 | resultData: any; | 41 | resultData: any; |
42 | resultDataOnHold: any; | 42 | resultDataOnHold: any; |
43 | 43 | ||
44 | + resultData2: any; | ||
45 | + resultDataOnHold2: any; | ||
46 | + | ||
47 | + resultData3: any; | ||
48 | + resultDataOnHold3: any; | ||
49 | + | ||
50 | + resultData4: any; | ||
51 | + resultDataOnHold4: any; | ||
52 | + | ||
53 | + resultDat5: any; | ||
54 | + resultDataOnHold5: any; | ||
55 | + | ||
56 | + resultData6: any; | ||
57 | + resultDataOnHold6: any; | ||
58 | + | ||
44 | 59 | ||
45 | async ngOnInit() { | 60 | async ngOnInit() { |
61 | + //----------------------------1------------------------ | ||
46 | // Active | 62 | // Active |
47 | try { | 63 | try { |
48 | const data = { | 64 | const data = { |
@@ -99,9 +115,130 @@ export class DashboardComponent implements OnInit { | @@ -99,9 +115,130 @@ export class DashboardComponent implements OnInit { | ||
99 | setInterval(async() => { | 115 | setInterval(async() => { |
100 | await this.getDataOnHold(); | 116 | await this.getDataOnHold(); |
101 | }, 600000); | 117 | }, 600000); |
118 | + | ||
119 | + //----------------------------2------------------------ | ||
120 | + // Active | ||
121 | + try { | ||
122 | + const data2 = { | ||
123 | + // tslint:disable-next-line:max-line-length | ||
124 | + "query": "SELECT vtiger_account.accountname AS custgroupName , vtiger_troubletickets.ticketid AS id , IF( vtiger_groups.groupname IS NOT NULL , vtiger_groups.groupname , vu.user_name) AS team , vtiger_troubletickets.title , vtiger_troubletickets. STATUS , vtiger_troubletickets.priority , CONCAT( 'http%3A%2F%2Fvtiger.sourcecode.co.th%2Findex.php%3Faction%3DDetailView%26module%3DHelpDesk%26parenttab%3DSupport%26record%3D' , vtiger_troubletickets.ticketid) AS link ,( SELECT xx.comments FROM vtiger_ticketcomments xx WHERE xx.ticketid = vtiger_troubletickets.ticketid ORDER BY xx.createdtime DESC LIMIT 1) AS COMMENT , CASE vtiger_troubletickets. STATUS WHEN 'Closed' THEN( unix_timestamp(vtiger_crmentity.modifiedtime) - unix_timestamp(vtiger_crmentity.createdtime)) / 86400 ELSE( unix_timestamp(now()) - unix_timestamp(vtiger_crmentity.createdtime)) / 86400 END AS days , concat( vtiger_ticketcf.cf_568 , ' (' , vtiger_cf_568.day_amount , ')') AS type , IFNULL(( SELECT 'Wait for response by' FROM vtiger_ticket_history WHERE vtiger_troubletickets.ticketid = vtiger_ticket_history.ticketid AND assigned_type = 'Wait for response' ORDER BY updatetime DESC LIMIT 0 , 1) , 'Created by') userType , IFNULL(( SELECT concat('' , assigned_by , '') FROM vtiger_ticket_history WHERE vtiger_troubletickets.ticketid = vtiger_ticket_history.ticketid AND assigned_type = 'Wait for response' ORDER BY updatetime DESC LIMIT 0 , 1) , vtiger_users.user_name) username , vtiger_crmentity.description , vtiger_crmentity.createdtime , vtiger_crmentity.modifiedtime , vtiger_cf_568.cf_568id FROM vtiger_crmentity JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smcreatorid JOIN vtiger_troubletickets ON vtiger_crmentity.crmid = vtiger_troubletickets.ticketid JOIN vtiger_account ON vtiger_account.accountid = vtiger_troubletickets.parent_id JOIN vtiger_ticketcf ON vtiger_ticketcf.ticketid = vtiger_troubletickets.ticketid JOIN vtiger_cf_568 ON vtiger_cf_568.cf_568 = vtiger_ticketcf.cf_568 LEFT OUTER JOIN vtiger_groups ON vtiger_crmentity.smownerid = vtiger_groups.groupid LEFT OUTER JOIN vtiger_users vu ON vtiger_crmentity.smownerid = vu.id WHERE 1 AND vtiger_crmentity.setype = 'HelpDesk' AND vtiger_crmentity.deleted = 0 AND vtiger_ticketcf.cf_568 != '' AND vtiger_cf_568.cf_568id NOT IN(8 , 9 , 10) AND( LCASE(vtiger_cf_568.cf_568) = 'RND (Renovate)' AND LCASE(vtiger_troubletickets. STATUS) not in('closed' , 'Wait For Customer')) GROUP BY vtiger_troubletickets.ticketid ORDER BY vtiger_crmentity.createdtime ASC LIMIT 0 , 100", | ||
125 | + "params": ["vtiger_crmentity"] | ||
126 | + }; | ||
127 | + let response = await this._apiService.post('dynamic', data2); | ||
128 | + if (response !== null) { | ||
129 | + this.resultData2 = response; | ||
130 | + this.resultData2.link = decodeURIComponent(decodeURIComponent(this.resultData2.link)); | ||
131 | + console.log('link: ', this.resultData2.link); | ||
132 | + // tslint:disable-next-line:forin | ||
133 | + for (const i in this.resultData2) { | ||
134 | + this.resultData2[i].link = this._common.decodeURI(this.resultData2[i].link); | ||
135 | + this.resultData2[i].birth_date = this._common.convertDate(this.resultData2[i].birth_date); | ||
136 | + } | ||
137 | + } else { | ||
138 | + this.resultData2 = []; | ||
139 | + } | ||
140 | + } catch (error) { | ||
141 | + console.log(error); | ||
142 | + } | ||
143 | + | ||
144 | + setInterval(async() => { | ||
145 | + await this.getData2(); | ||
146 | + }, 600000); | ||
147 | + | ||
148 | + | ||
149 | + //OnHold | ||
150 | + try { | ||
151 | + const dataOnHold2 = { | ||
152 | + // tslint:disable-next-line:max-line-length | ||
153 | + "query": "SELECT vtiger_account.accountname AS custgroupName , vtiger_troubletickets.ticketid AS id , IF( vtiger_groups.groupname IS NOT NULL , vtiger_groups.groupname , vu.user_name) AS team , vtiger_troubletickets.title , vtiger_troubletickets. STATUS , vtiger_troubletickets.priority , CONCAT( 'http%3A%2F%2Fvtiger.sourcecode.co.th%2Findex.php%3Faction%3DDetailView%26module%3DHelpDesk%26parenttab%3DSupport%26record%3D' , vtiger_troubletickets.ticketid) AS link ,( SELECT xx.comments FROM vtiger_ticketcomments xx WHERE xx.ticketid = vtiger_troubletickets.ticketid ORDER BY xx.createdtime DESC LIMIT 1) AS COMMENT , CASE vtiger_troubletickets. STATUS WHEN 'Closed' THEN( unix_timestamp(vtiger_crmentity.modifiedtime) - unix_timestamp(vtiger_crmentity.createdtime)) / 86400 ELSE( unix_timestamp(now()) - unix_timestamp(vtiger_crmentity.createdtime)) / 86400 END AS days , concat( vtiger_ticketcf.cf_568 , ' (' , vtiger_cf_568.day_amount , ')') AS type , IFNULL(( SELECT 'Wait for response by' FROM vtiger_ticket_history WHERE vtiger_troubletickets.ticketid = vtiger_ticket_history.ticketid AND assigned_type = 'Wait for response' ORDER BY updatetime DESC LIMIT 0 , 1) , 'Created by') userType , IFNULL(( SELECT concat('' , assigned_by , '') FROM vtiger_ticket_history WHERE vtiger_troubletickets.ticketid = vtiger_ticket_history.ticketid AND assigned_type = 'Wait for response' ORDER BY updatetime DESC LIMIT 0 , 1) , vtiger_users.user_name) username , vtiger_crmentity.description , vtiger_crmentity.createdtime , vtiger_crmentity.modifiedtime , vtiger_cf_568.cf_568id FROM vtiger_crmentity JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smcreatorid JOIN vtiger_troubletickets ON vtiger_crmentity.crmid = vtiger_troubletickets.ticketid JOIN vtiger_account ON vtiger_account.accountid = vtiger_troubletickets.parent_id JOIN vtiger_ticketcf ON vtiger_ticketcf.ticketid = vtiger_troubletickets.ticketid JOIN vtiger_cf_568 ON vtiger_cf_568.cf_568 = vtiger_ticketcf.cf_568 LEFT OUTER JOIN vtiger_groups ON vtiger_crmentity.smownerid = vtiger_groups.groupid LEFT OUTER JOIN vtiger_users vu ON vtiger_crmentity.smownerid = vu.id WHERE 1 AND vtiger_crmentity.setype = 'HelpDesk' AND vtiger_crmentity.deleted = 0 AND vtiger_ticketcf.cf_568 != '' AND vtiger_cf_568.cf_568id NOT IN(8 , 9 , 10) AND( LCASE(vtiger_cf_568.cf_568) = 'RND (Renovate)' AND LCASE(vtiger_troubletickets. STATUS) IN('Wait For Customer')) GROUP BY vtiger_troubletickets.ticketid ORDER BY vtiger_crmentity.createdtime ASC LIMIT 0 , 100", | ||
154 | + "params": ["vtiger_crmentity"] | ||
155 | + }; | ||
156 | + let response = await this._apiService.post('dynamic', dataOnHold2); | ||
157 | + if (response !== null) { | ||
158 | + this.resultDataOnHold2 = response; | ||
159 | + this.resultDataOnHold2.link = decodeURIComponent(decodeURIComponent(this.resultDataOnHold2.link)); | ||
160 | + console.log('link: ', this.resultDataOnHold2.link); | ||
161 | + // tslint:disable-next-line:forin | ||
162 | + for (const i in this.resultDataOnHold2) { | ||
163 | + this.resultDataOnHold2[i].link = this._common.decodeURI(this.resultDataOnHold2[i].link); | ||
164 | + this.resultDataOnHold2[i].birth_date = this._common.convertDate(this.resultDataOnHold2[i].birth_date); | ||
165 | + } | ||
166 | + } else { | ||
167 | + this.resultDataOnHold2 = []; | ||
168 | + } | ||
169 | + } catch (error) { | ||
170 | + console.log(error); | ||
171 | + } | ||
172 | + | ||
173 | + setInterval(async() => { | ||
174 | + await this.getDataOnHold2(); | ||
175 | + }, 600000); | ||
176 | + //----------------------------3------------------------ | ||
177 | + // Active | ||
178 | + try { | ||
179 | + const data3 = { | ||
180 | + // tslint:disable-next-line:max-line-length | ||
181 | + "query": "SELECT vtiger_account.accountname AS custgroupName , vtiger_troubletickets.ticketid AS id , IF( vtiger_groups.groupname IS NOT NULL , vtiger_groups.groupname , vu.user_name) AS team , vtiger_troubletickets.title , vtiger_troubletickets. STATUS , vtiger_troubletickets.priority , CONCAT( 'http%3A%2F%2Fvtiger.sourcecode.co.th%2Findex.php%3Faction%3DDetailView%26module%3DHelpDesk%26parenttab%3DSupport%26record%3D' , vtiger_troubletickets.ticketid) AS link ,( SELECT xx.comments FROM vtiger_ticketcomments xx WHERE xx.ticketid = vtiger_troubletickets.ticketid ORDER BY xx.createdtime DESC LIMIT 1) AS COMMENT , CASE vtiger_troubletickets. STATUS WHEN 'Closed' THEN( unix_timestamp(vtiger_crmentity.modifiedtime) - unix_timestamp(vtiger_crmentity.createdtime)) / 86400 ELSE( unix_timestamp(now()) - unix_timestamp(vtiger_crmentity.createdtime)) / 86400 END AS days , concat( vtiger_ticketcf.cf_568 , ' (' , vtiger_cf_568.day_amount , ')') AS type , IFNULL(( SELECT 'Wait for response by' FROM vtiger_ticket_history WHERE vtiger_troubletickets.ticketid = vtiger_ticket_history.ticketid AND assigned_type = 'Wait for response' ORDER BY updatetime DESC LIMIT 0 , 1) , 'Created by') userType , IFNULL(( SELECT concat('' , assigned_by , '') FROM vtiger_ticket_history WHERE vtiger_troubletickets.ticketid = vtiger_ticket_history.ticketid AND assigned_type = 'Wait for response' ORDER BY updatetime DESC LIMIT 0 , 1) , vtiger_users.user_name) username , vtiger_crmentity.description , vtiger_crmentity.createdtime , vtiger_crmentity.modifiedtime , vtiger_cf_568.cf_568id FROM vtiger_crmentity JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smcreatorid JOIN vtiger_troubletickets ON vtiger_crmentity.crmid = vtiger_troubletickets.ticketid JOIN vtiger_account ON vtiger_account.accountid = vtiger_troubletickets.parent_id JOIN vtiger_ticketcf ON vtiger_ticketcf.ticketid = vtiger_troubletickets.ticketid JOIN vtiger_cf_568 ON vtiger_cf_568.cf_568 = vtiger_ticketcf.cf_568 LEFT OUTER JOIN vtiger_groups ON vtiger_crmentity.smownerid = vtiger_groups.groupid LEFT OUTER JOIN vtiger_users vu ON vtiger_crmentity.smownerid = vu.id WHERE 1 AND vtiger_crmentity.setype = 'HelpDesk' AND vtiger_crmentity.deleted = 0 AND vtiger_ticketcf.cf_568 != '' AND vtiger_cf_568.cf_568id NOT IN(8 , 9 , 10) AND( LCASE(vtiger_cf_568.cf_568) IN ('SDE (Site Down บ่อย)','SDN (Site Down Reset แล้วใช้งานไม่ได้)') AND LCASE(vtiger_troubletickets. STATUS) not in('closed' , 'Wait For Customer')) GROUP BY vtiger_troubletickets.ticketid ORDER BY vtiger_crmentity.createdtime ASC LIMIT 0 , 100", | ||
182 | + "params": ["vtiger_crmentity"] | ||
183 | + }; | ||
184 | + let response = await this._apiService.post('dynamic', data3); | ||
185 | + if (response !== null) { | ||
186 | + this.resultData3 = response; | ||
187 | + this.resultData3.link = decodeURIComponent(decodeURIComponent(this.resultData3.link)); | ||
188 | + console.log('link: ', this.resultData3.link); | ||
189 | + // tslint:disable-next-line:forin | ||
190 | + for (const i in this.resultData3) { | ||
191 | + this.resultData3[i].link = this._common.decodeURI(this.resultData3[i].link); | ||
192 | + this.resultData3[i].birth_date = this._common.convertDate(this.resultData3[i].birth_date); | ||
193 | + } | ||
194 | + } else { | ||
195 | + this.resultData3 = []; | ||
196 | + } | ||
197 | + } catch (error) { | ||
198 | + console.log(error); | ||
199 | + } | ||
200 | + | ||
201 | + setInterval(async() => { | ||
202 | + await this.getData3(); | ||
203 | + }, 600000); | ||
204 | + | ||
205 | + | ||
206 | + //OnHold | ||
207 | + try { | ||
208 | + const dataOnHold3 = { | ||
209 | + // tslint:disable-next-line:max-line-length | ||
210 | + "query": "SELECT vtiger_account.accountname AS custgroupName , vtiger_troubletickets.ticketid AS id , IF( vtiger_groups.groupname IS NOT NULL , vtiger_groups.groupname , vu.user_name) AS team , vtiger_troubletickets.title , vtiger_troubletickets. STATUS , vtiger_troubletickets.priority , CONCAT( 'http%3A%2F%2Fvtiger.sourcecode.co.th%2Findex.php%3Faction%3DDetailView%26module%3DHelpDesk%26parenttab%3DSupport%26record%3D' , vtiger_troubletickets.ticketid) AS link ,( SELECT xx.comments FROM vtiger_ticketcomments xx WHERE xx.ticketid = vtiger_troubletickets.ticketid ORDER BY xx.createdtime DESC LIMIT 1) AS COMMENT , CASE vtiger_troubletickets. STATUS WHEN 'Closed' THEN( unix_timestamp(vtiger_crmentity.modifiedtime) - unix_timestamp(vtiger_crmentity.createdtime)) / 86400 ELSE( unix_timestamp(now()) - unix_timestamp(vtiger_crmentity.createdtime)) / 86400 END AS days , concat( vtiger_ticketcf.cf_568 , ' (' , vtiger_cf_568.day_amount , ')') AS type , IFNULL(( SELECT 'Wait for response by' FROM vtiger_ticket_history WHERE vtiger_troubletickets.ticketid = vtiger_ticket_history.ticketid AND assigned_type = 'Wait for response' ORDER BY updatetime DESC LIMIT 0 , 1) , 'Created by') userType , IFNULL(( SELECT concat('' , assigned_by , '') FROM vtiger_ticket_history WHERE vtiger_troubletickets.ticketid = vtiger_ticket_history.ticketid AND assigned_type = 'Wait for response' ORDER BY updatetime DESC LIMIT 0 , 1) , vtiger_users.user_name) username , vtiger_crmentity.description , vtiger_crmentity.createdtime , vtiger_crmentity.modifiedtime , vtiger_cf_568.cf_568id FROM vtiger_crmentity JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smcreatorid JOIN vtiger_troubletickets ON vtiger_crmentity.crmid = vtiger_troubletickets.ticketid JOIN vtiger_account ON vtiger_account.accountid = vtiger_troubletickets.parent_id JOIN vtiger_ticketcf ON vtiger_ticketcf.ticketid = vtiger_troubletickets.ticketid JOIN vtiger_cf_568 ON vtiger_cf_568.cf_568 = vtiger_ticketcf.cf_568 LEFT OUTER JOIN vtiger_groups ON vtiger_crmentity.smownerid = vtiger_groups.groupid LEFT OUTER JOIN vtiger_users vu ON vtiger_crmentity.smownerid = vu.id WHERE 1 AND vtiger_crmentity.setype = 'HelpDesk' AND vtiger_crmentity.deleted = 0 AND vtiger_ticketcf.cf_568 != '' AND vtiger_cf_568.cf_568id NOT IN(8 , 9 , 10) AND( LCASE(vtiger_cf_568.cf_568) IN ('SDE (Site Down บ่อย)','SDN (Site Down Reset แล้วใช้งานไม่ได้)') AND LCASE(vtiger_troubletickets. STATUS) IN('Wait For Customer')) GROUP BY vtiger_troubletickets.ticketid ORDER BY vtiger_crmentity.createdtime ASC LIMIT 0 , 100", | ||
211 | + "params": ["vtiger_crmentity"] | ||
212 | + }; | ||
213 | + let response = await this._apiService.post('dynamic', dataOnHold3); | ||
214 | + if (response !== null) { | ||
215 | + this.resultDataOnHold3 = response; | ||
216 | + this.resultDataOnHold3.link = decodeURIComponent(decodeURIComponent(this.resultDataOnHold3.link)); | ||
217 | + console.log('link: ', this.resultDataOnHold3.link); | ||
218 | + // tslint:disable-next-line:forin | ||
219 | + for (const i in this.resultDataOnHold3) { | ||
220 | + this.resultDataOnHold3[i].link = this._common.decodeURI(this.resultDataOnHold3[i].link); | ||
221 | + this.resultDataOnHold3[i].birth_date = this._common.convertDate(this.resultDataOnHold3[i].birth_date); | ||
222 | + } | ||
223 | + } else { | ||
224 | + this.resultDataOnHold3 = []; | ||
225 | + } | ||
226 | + } catch (error) { | ||
227 | + console.log(error); | ||
228 | + } | ||
229 | + | ||
230 | + setInterval(async() => { | ||
231 | + await this.getDataOnHold3(); | ||
232 | + }, 600000); | ||
233 | + //----------------------------4------------------------ | ||
234 | + //----------------------------5------------------------ | ||
235 | + //----------------------------6------------------------ | ||
102 | } | 236 | } |
103 | 237 | ||
238 | + /////////////Get data come to use////////////////////// | ||
239 | + | ||
104 | 240 | ||
241 | + //----------------------------1------------------------ | ||
105 | // Active | 242 | // Active |
106 | async getData() { | 243 | async getData() { |
107 | try { | 244 | try { |
@@ -127,7 +264,6 @@ export class DashboardComponent implements OnInit { | @@ -127,7 +264,6 @@ export class DashboardComponent implements OnInit { | ||
127 | console.log(error); | 264 | console.log(error); |
128 | } | 265 | } |
129 | } | 266 | } |
130 | - | ||
131 | //On Hold | 267 | //On Hold |
132 | async getDataOnHold() { | 268 | async getDataOnHold() { |
133 | try { | 269 | try { |
@@ -154,18 +290,110 @@ export class DashboardComponent implements OnInit { | @@ -154,18 +290,110 @@ export class DashboardComponent implements OnInit { | ||
154 | } | 290 | } |
155 | } | 291 | } |
156 | 292 | ||
293 | + //----------------------------2------------------------ | ||
294 | + // Active | ||
295 | + async getData2() { | ||
296 | + try { | ||
297 | + const data2 = { | ||
298 | + // tslint:disable-next-line:max-line-length | ||
299 | + "query": "SELECT vtiger_account.accountname AS custgroupName , vtiger_troubletickets.ticketid AS id , IF( vtiger_groups.groupname IS NOT NULL , vtiger_groups.groupname , vu.user_name) AS team , vtiger_troubletickets.title , vtiger_troubletickets. STATUS , vtiger_troubletickets.priority , CONCAT( 'http%3A%2F%2Fvtiger.sourcecode.co.th%2Findex.php%3Faction%3DDetailView%26module%3DHelpDesk%26parenttab%3DSupport%26record%3D' , vtiger_troubletickets.ticketid) AS link ,( SELECT xx.comments FROM vtiger_ticketcomments xx WHERE xx.ticketid = vtiger_troubletickets.ticketid ORDER BY xx.createdtime DESC LIMIT 1) AS COMMENT , CASE vtiger_troubletickets. STATUS WHEN 'Closed' THEN( unix_timestamp(vtiger_crmentity.modifiedtime) - unix_timestamp(vtiger_crmentity.createdtime)) / 86400 ELSE( unix_timestamp(now()) - unix_timestamp(vtiger_crmentity.createdtime)) / 86400 END AS days , concat( vtiger_ticketcf.cf_568 , ' (' , vtiger_cf_568.day_amount , ')') AS type , IFNULL(( SELECT 'Wait for response by' FROM vtiger_ticket_history WHERE vtiger_troubletickets.ticketid = vtiger_ticket_history.ticketid AND assigned_type = 'Wait for response' ORDER BY updatetime DESC LIMIT 0 , 1) , 'Created by') userType , IFNULL(( SELECT concat('' , assigned_by , '') FROM vtiger_ticket_history WHERE vtiger_troubletickets.ticketid = vtiger_ticket_history.ticketid AND assigned_type = 'Wait for response' ORDER BY updatetime DESC LIMIT 0 , 1) , vtiger_users.user_name) username , vtiger_crmentity.description , vtiger_crmentity.createdtime , vtiger_crmentity.modifiedtime , vtiger_cf_568.cf_568id FROM vtiger_crmentity JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smcreatorid JOIN vtiger_troubletickets ON vtiger_crmentity.crmid = vtiger_troubletickets.ticketid JOIN vtiger_account ON vtiger_account.accountid = vtiger_troubletickets.parent_id JOIN vtiger_ticketcf ON vtiger_ticketcf.ticketid = vtiger_troubletickets.ticketid JOIN vtiger_cf_568 ON vtiger_cf_568.cf_568 = vtiger_ticketcf.cf_568 LEFT OUTER JOIN vtiger_groups ON vtiger_crmentity.smownerid = vtiger_groups.groupid LEFT OUTER JOIN vtiger_users vu ON vtiger_crmentity.smownerid = vu.id WHERE 1 AND vtiger_crmentity.setype = 'HelpDesk' AND vtiger_crmentity.deleted = 0 AND vtiger_ticketcf.cf_568 != '' AND vtiger_cf_568.cf_568id NOT IN(8 , 9 , 10) AND( LCASE(vtiger_cf_568.cf_568) = 'RND (Renovate)' AND LCASE(vtiger_troubletickets. STATUS) not in('closed' , 'Wait For Customer')) GROUP BY vtiger_troubletickets.ticketid ORDER BY vtiger_crmentity.createdtime ASC LIMIT 0 , 100", | ||
300 | + "params": ["vtiger_crmentity"] | ||
301 | + }; | ||
302 | + let response = await this._apiService.post('dynamic', data2); | ||
303 | + if (response !== null) { | ||
304 | + this.resultData2 = response; | ||
305 | + this.resultData2.link = decodeURIComponent(decodeURIComponent(this.resultData2.link)); | ||
306 | + console.log('link: ', this.resultData2.link); | ||
307 | + // tslint:disable-next-line:forin | ||
308 | + for (const i in this.resultData2) { | ||
309 | + this.resultData2[i].link = this._common.decodeURI(this.resultData2[i].link); | ||
310 | + this.resultData2[i].birth_date = this._common.convertDate(this.resultData2[i].birth_date); | ||
311 | + } | ||
312 | + } else { | ||
313 | + this.resultData2 = []; | ||
314 | + } | ||
315 | + } catch (error) { | ||
316 | + console.log(error); | ||
317 | + } | ||
318 | + } | ||
319 | + //On Hold | ||
320 | + async getDataOnHold2() { | ||
321 | + try { | ||
322 | + const dataOnHold2 = { | ||
323 | + // tslint:disable-next-line:max-line-length | ||
324 | + "query": "SELECT vtiger_account.accountname AS custgroupName , vtiger_troubletickets.ticketid AS id , IF( vtiger_groups.groupname IS NOT NULL , vtiger_groups.groupname , vu.user_name) AS team , vtiger_troubletickets.title , vtiger_troubletickets. STATUS , vtiger_troubletickets.priority , CONCAT( 'http%3A%2F%2Fvtiger.sourcecode.co.th%2Findex.php%3Faction%3DDetailView%26module%3DHelpDesk%26parenttab%3DSupport%26record%3D' , vtiger_troubletickets.ticketid) AS link ,( SELECT xx.comments FROM vtiger_ticketcomments xx WHERE xx.ticketid = vtiger_troubletickets.ticketid ORDER BY xx.createdtime DESC LIMIT 1) AS COMMENT , CASE vtiger_troubletickets. STATUS WHEN 'Closed' THEN( unix_timestamp(vtiger_crmentity.modifiedtime) - unix_timestamp(vtiger_crmentity.createdtime)) / 86400 ELSE( unix_timestamp(now()) - unix_timestamp(vtiger_crmentity.createdtime)) / 86400 END AS days , concat( vtiger_ticketcf.cf_568 , ' (' , vtiger_cf_568.day_amount , ')') AS type , IFNULL(( SELECT 'Wait for response by' FROM vtiger_ticket_history WHERE vtiger_troubletickets.ticketid = vtiger_ticket_history.ticketid AND assigned_type = 'Wait for response' ORDER BY updatetime DESC LIMIT 0 , 1) , 'Created by') userType , IFNULL(( SELECT concat('' , assigned_by , '') FROM vtiger_ticket_history WHERE vtiger_troubletickets.ticketid = vtiger_ticket_history.ticketid AND assigned_type = 'Wait for response' ORDER BY updatetime DESC LIMIT 0 , 1) , vtiger_users.user_name) username , vtiger_crmentity.description , vtiger_crmentity.createdtime , vtiger_crmentity.modifiedtime , vtiger_cf_568.cf_568id FROM vtiger_crmentity JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smcreatorid JOIN vtiger_troubletickets ON vtiger_crmentity.crmid = vtiger_troubletickets.ticketid JOIN vtiger_account ON vtiger_account.accountid = vtiger_troubletickets.parent_id JOIN vtiger_ticketcf ON vtiger_ticketcf.ticketid = vtiger_troubletickets.ticketid JOIN vtiger_cf_568 ON vtiger_cf_568.cf_568 = vtiger_ticketcf.cf_568 LEFT OUTER JOIN vtiger_groups ON vtiger_crmentity.smownerid = vtiger_groups.groupid LEFT OUTER JOIN vtiger_users vu ON vtiger_crmentity.smownerid = vu.id WHERE 1 AND vtiger_crmentity.setype = 'HelpDesk' AND vtiger_crmentity.deleted = 0 AND vtiger_ticketcf.cf_568 != '' AND vtiger_cf_568.cf_568id NOT IN(8 , 9 , 10) AND( LCASE(vtiger_cf_568.cf_568) = 'RND (Renovate)' AND LCASE(vtiger_troubletickets. STATUS) IN('Wait For Customer')) GROUP BY vtiger_troubletickets.ticketid ORDER BY vtiger_crmentity.createdtime ASC LIMIT 0 , 100", | ||
325 | + "params": ["vtiger_crmentity"] | ||
326 | + }; | ||
327 | + let response = await this._apiService.post('dynamic', dataOnHold2); | ||
328 | + if (response !== null) { | ||
329 | + this.resultDataOnHold2 = response; | ||
330 | + this.resultDataOnHold2.link = decodeURIComponent(decodeURIComponent(this.resultDataOnHold2.link)); | ||
331 | + console.log('link: ', this.resultDataOnHold2.link); | ||
332 | + // tslint:disable-next-line:forin | ||
333 | + for (const i in this.resultDataOnHold) { | ||
334 | + this.resultDataOnHold2[i].link = this._common.decodeURI(this.resultDataOnHold2[i].link); | ||
335 | + this.resultDataOnHold2[i].birth_date = this._common.convertDate(this.resultDataOnHold2[i].birth_date); | ||
336 | + } | ||
337 | + } else { | ||
338 | + this.resultDataOnHold2 = []; | ||
339 | + } | ||
340 | + } catch (error) { | ||
341 | + console.log(error); | ||
342 | + } | ||
343 | + } | ||
344 | + //----------------------------3------------------------ | ||
345 | + // Active | ||
346 | + async getData3() { | ||
347 | + try { | ||
348 | + const data3 = { | ||
349 | + // tslint:disable-next-line:max-line-length | ||
350 | + "query": "SELECT vtiger_account.accountname AS custgroupName , vtiger_troubletickets.ticketid AS id , IF( vtiger_groups.groupname IS NOT NULL , vtiger_groups.groupname , vu.user_name) AS team , vtiger_troubletickets.title , vtiger_troubletickets. STATUS , vtiger_troubletickets.priority , CONCAT( 'http%3A%2F%2Fvtiger.sourcecode.co.th%2Findex.php%3Faction%3DDetailView%26module%3DHelpDesk%26parenttab%3DSupport%26record%3D' , vtiger_troubletickets.ticketid) AS link ,( SELECT xx.comments FROM vtiger_ticketcomments xx WHERE xx.ticketid = vtiger_troubletickets.ticketid ORDER BY xx.createdtime DESC LIMIT 1) AS COMMENT , CASE vtiger_troubletickets. STATUS WHEN 'Closed' THEN( unix_timestamp(vtiger_crmentity.modifiedtime) - unix_timestamp(vtiger_crmentity.createdtime)) / 86400 ELSE( unix_timestamp(now()) - unix_timestamp(vtiger_crmentity.createdtime)) / 86400 END AS days , concat( vtiger_ticketcf.cf_568 , ' (' , vtiger_cf_568.day_amount , ')') AS type , IFNULL(( SELECT 'Wait for response by' FROM vtiger_ticket_history WHERE vtiger_troubletickets.ticketid = vtiger_ticket_history.ticketid AND assigned_type = 'Wait for response' ORDER BY updatetime DESC LIMIT 0 , 1) , 'Created by') userType , IFNULL(( SELECT concat('' , assigned_by , '') FROM vtiger_ticket_history WHERE vtiger_troubletickets.ticketid = vtiger_ticket_history.ticketid AND assigned_type = 'Wait for response' ORDER BY updatetime DESC LIMIT 0 , 1) , vtiger_users.user_name) username , vtiger_crmentity.description , vtiger_crmentity.createdtime , vtiger_crmentity.modifiedtime , vtiger_cf_568.cf_568id FROM vtiger_crmentity JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smcreatorid JOIN vtiger_troubletickets ON vtiger_crmentity.crmid = vtiger_troubletickets.ticketid JOIN vtiger_account ON vtiger_account.accountid = vtiger_troubletickets.parent_id JOIN vtiger_ticketcf ON vtiger_ticketcf.ticketid = vtiger_troubletickets.ticketid JOIN vtiger_cf_568 ON vtiger_cf_568.cf_568 = vtiger_ticketcf.cf_568 LEFT OUTER JOIN vtiger_groups ON vtiger_crmentity.smownerid = vtiger_groups.groupid LEFT OUTER JOIN vtiger_users vu ON vtiger_crmentity.smownerid = vu.id WHERE 1 AND vtiger_crmentity.setype = 'HelpDesk' AND vtiger_crmentity.deleted = 0 AND vtiger_ticketcf.cf_568 != '' AND vtiger_cf_568.cf_568id NOT IN(8 , 9 , 10) AND( LCASE(vtiger_cf_568.cf_568) IN ('SDE (Site Down บ่อย)','SDN (Site Down Reset แล้วใช้งานไม่ได้)') AND LCASE(vtiger_troubletickets. STATUS) not in('closed' , 'Wait For Customer')) GROUP BY vtiger_troubletickets.ticketid ORDER BY vtiger_crmentity.createdtime ASC LIMIT 0 , 100", | ||
351 | + "params": ["vtiger_crmentity"] | ||
352 | + }; | ||
353 | + let response = await this._apiService.post('dynamic', data3); | ||
354 | + if (response !== null) { | ||
355 | + this.resultData3 = response; | ||
356 | + this.resultData3.link = decodeURIComponent(decodeURIComponent(this.resultData3.link)); | ||
357 | + console.log('link: ', this.resultData3.link); | ||
358 | + // tslint:disable-next-line:forin | ||
359 | + for (const i in this.resultData3) { | ||
360 | + this.resultData3[i].link = this._common.decodeURI(this.resultData3[i].link); | ||
361 | + this.resultData3[i].birth_date = this._common.convertDate(this.resultData3[i].birth_date); | ||
362 | + } | ||
363 | + } else { | ||
364 | + this.resultData3 = []; | ||
365 | + } | ||
366 | + } catch (error) { | ||
367 | + console.log(error); | ||
368 | + } | ||
369 | + } | ||
370 | + //On Hold | ||
371 | + async getDataOnHold3() { | ||
372 | + try { | ||
373 | + const dataOnHold3 = { | ||
374 | + // tslint:disable-next-line:max-line-length | ||
375 | + "query": "SELECT vtiger_account.accountname AS custgroupName , vtiger_troubletickets.ticketid AS id , IF( vtiger_groups.groupname IS NOT NULL , vtiger_groups.groupname , vu.user_name) AS team , vtiger_troubletickets.title , vtiger_troubletickets. STATUS , vtiger_troubletickets.priority , CONCAT( 'http%3A%2F%2Fvtiger.sourcecode.co.th%2Findex.php%3Faction%3DDetailView%26module%3DHelpDesk%26parenttab%3DSupport%26record%3D' , vtiger_troubletickets.ticketid) AS link ,( SELECT xx.comments FROM vtiger_ticketcomments xx WHERE xx.ticketid = vtiger_troubletickets.ticketid ORDER BY xx.createdtime DESC LIMIT 1) AS COMMENT , CASE vtiger_troubletickets. STATUS WHEN 'Closed' THEN( unix_timestamp(vtiger_crmentity.modifiedtime) - unix_timestamp(vtiger_crmentity.createdtime)) / 86400 ELSE( unix_timestamp(now()) - unix_timestamp(vtiger_crmentity.createdtime)) / 86400 END AS days , concat( vtiger_ticketcf.cf_568 , ' (' , vtiger_cf_568.day_amount , ')') AS type , IFNULL(( SELECT 'Wait for response by' FROM vtiger_ticket_history WHERE vtiger_troubletickets.ticketid = vtiger_ticket_history.ticketid AND assigned_type = 'Wait for response' ORDER BY updatetime DESC LIMIT 0 , 1) , 'Created by') userType , IFNULL(( SELECT concat('' , assigned_by , '') FROM vtiger_ticket_history WHERE vtiger_troubletickets.ticketid = vtiger_ticket_history.ticketid AND assigned_type = 'Wait for response' ORDER BY updatetime DESC LIMIT 0 , 1) , vtiger_users.user_name) username , vtiger_crmentity.description , vtiger_crmentity.createdtime , vtiger_crmentity.modifiedtime , vtiger_cf_568.cf_568id FROM vtiger_crmentity JOIN vtiger_users ON vtiger_users.id = vtiger_crmentity.smcreatorid JOIN vtiger_troubletickets ON vtiger_crmentity.crmid = vtiger_troubletickets.ticketid JOIN vtiger_account ON vtiger_account.accountid = vtiger_troubletickets.parent_id JOIN vtiger_ticketcf ON vtiger_ticketcf.ticketid = vtiger_troubletickets.ticketid JOIN vtiger_cf_568 ON vtiger_cf_568.cf_568 = vtiger_ticketcf.cf_568 LEFT OUTER JOIN vtiger_groups ON vtiger_crmentity.smownerid = vtiger_groups.groupid LEFT OUTER JOIN vtiger_users vu ON vtiger_crmentity.smownerid = vu.id WHERE 1 AND vtiger_crmentity.setype = 'HelpDesk' AND vtiger_crmentity.deleted = 0 AND vtiger_ticketcf.cf_568 != '' AND vtiger_cf_568.cf_568id NOT IN(8 , 9 , 10) AND( LCASE(vtiger_cf_568.cf_568) IN ('SDE (Site Down บ่อย)','SDN (Site Down Reset แล้วใช้งานไม่ได้)') AND LCASE(vtiger_troubletickets. STATUS) IN('Wait For Customer')) GROUP BY vtiger_troubletickets.ticketid ORDER BY vtiger_crmentity.createdtime ASC LIMIT 0 , 100", | ||
376 | + "params": ["vtiger_crmentity"] | ||
377 | + }; | ||
378 | + let response = await this._apiService.post('dynamic', dataOnHold3); | ||
379 | + if (response !== null) { | ||
380 | + this.resultDataOnHold3 = response; | ||
381 | + this.resultDataOnHold3.link = decodeURIComponent(decodeURIComponent(this.resultDataOnHold3.link)); | ||
382 | + console.log('link: ', this.resultDataOnHold3.link); | ||
383 | + // tslint:disable-next-line:forin | ||
384 | + for (const i in this.resultDataOnHold) { | ||
385 | + this.resultDataOnHold3[i].link = this._common.decodeURI(this.resultDataOnHold3[i].link); | ||
386 | + this.resultDataOnHold3[i].birth_date = this._common.convertDate(this.resultDataOnHold3[i].birth_date); | ||
387 | + } | ||
388 | + } else { | ||
389 | + this.resultDataOnHold3 = []; | ||
390 | + } | ||
391 | + } catch (error) { | ||
392 | + console.log(error); | ||
393 | + } | ||
394 | + } | ||
395 | + //----------------------------4------------------------ | ||
396 | + //----------------------------5------------------------ | ||
397 | + //----------------------------6------------------------ | ||
157 | 398 | ||
158 | -} | ||
159 | - | ||
160 | - // getColor(color) { | ||
161 | - // console.log(color) | ||
162 | - // switch (color) { | ||
163 | - // case 'red' : | ||
164 | - // return 'red'; | ||
165 | - // case 'yellow' : | ||
166 | - // return 'yellow'; | ||
167 | - // case 'green' : | ||
168 | - // return 'green'; | ||
169 | - // } | ||
170 | - // } | ||
171 | - | 399 | +} |
172 | \ No newline at end of file | 400 | \ No newline at end of file |