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 | 9 | <a href="#tab1" data-toggle="tab" aria-expanded="true">ติดตั้ง</a> |
| 10 | 10 | </li> |
| 11 | 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 | 13 | </li> |
| 14 | 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 | 16 | </li> |
| 17 | 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 | 19 | </li> |
| 20 | 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 | 22 | </li> |
| 23 | + <li class="sbold"> | |
| 24 | + <a href="#tab6" data-toggle="tab" aria-expanded="false">CUS</a> | |
| 25 | + </li> | |
| 23 | 26 | </ul> |
| 24 | 27 | <div class="tab-content"> |
| 25 | 28 | <div class="panel tab-pane active" id="tab1"> |
| ... | ... | @@ -128,7 +131,6 @@ |
| 128 | 131 | </div> |
| 129 | 132 | </div> |
| 130 | 133 | </div> |
| 131 | - | |
| 132 | 134 | <div class="panel tab-pane" id="tab2"> |
| 133 | 135 | <div class="caption"> |
| 134 | 136 | <h1 class="icon-bubble font-green-sharp"> |
| ... | ... | @@ -148,7 +150,7 @@ |
| 148 | 150 | </div> |
| 149 | 151 | <div class="panel-body"> |
| 150 | 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 | 154 | <a class="dashboard-stat dashboard-stat-v2 red " |
| 153 | 155 | href="{{item.link}}" |
| 154 | 156 | target="_blank" |
| ... | ... | @@ -202,7 +204,7 @@ |
| 202 | 204 | </div> |
| 203 | 205 | <div class="panel-body"> |
| 204 | 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 | 208 | <a class="dashboard-stat dashboard-stat-v2 red " |
| 207 | 209 | href="{{item.link}}" |
| 208 | 210 | target="_blank" |
| ... | ... | @@ -254,7 +256,7 @@ |
| 254 | 256 | </div> |
| 255 | 257 | <div class="panel-body"> |
| 256 | 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 | 260 | <a class="dashboard-stat dashboard-stat-v2 red " |
| 259 | 261 | href="{{item.link}}" |
| 260 | 262 | target="_blank" |
| ... | ... | @@ -308,7 +310,7 @@ |
| 308 | 310 | </div> |
| 309 | 311 | <div class="panel-body"> |
| 310 | 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 | 314 | <a class="dashboard-stat dashboard-stat-v2 red " |
| 313 | 315 | href="{{item.link}}" |
| 314 | 316 | target="_blank" |
| ... | ... | @@ -553,6 +555,112 @@ |
| 553 | 555 | </div> |
| 554 | 556 | </div> |
| 555 | 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 | 664 | </div> |
| 557 | 665 | </div> |
| 558 | 666 | </div> | ... | ... |
src/app/dashboard/dashboard.component.ts
| ... | ... | @@ -41,8 +41,24 @@ export class DashboardComponent implements OnInit { |
| 41 | 41 | resultData: any; |
| 42 | 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 | 60 | async ngOnInit() { |
| 61 | + //----------------------------1------------------------ | |
| 46 | 62 | // Active |
| 47 | 63 | try { |
| 48 | 64 | const data = { |
| ... | ... | @@ -99,9 +115,130 @@ export class DashboardComponent implements OnInit { |
| 99 | 115 | setInterval(async() => { |
| 100 | 116 | await this.getDataOnHold(); |
| 101 | 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 | 242 | // Active |
| 106 | 243 | async getData() { |
| 107 | 244 | try { |
| ... | ... | @@ -127,7 +264,6 @@ export class DashboardComponent implements OnInit { |
| 127 | 264 | console.log(error); |
| 128 | 265 | } |
| 129 | 266 | } |
| 130 | - | |
| 131 | 267 | //On Hold |
| 132 | 268 | async getDataOnHold() { |
| 133 | 269 | try { |
| ... | ... | @@ -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 | 400 | \ No newline at end of file | ... | ... |