sitelicenseusagereport.component.ts 6.71 KB
import { Component, OnInit, ViewChild } from '@angular/core';
import { Router } from '@angular/router';
import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
//import { Http, Response } from '@angular/http';
import { Observable } from 'rxjs/Observable';
import 'rxjs/Rx';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/filter';
import { SiteLicenseUsageReports } from '../Reports/reportdatamodel';
import { ReportService } from '../Reports/report.service';
import { GlobalService } from '../../Shared/global';
import { BsModalService } from 'ngx-bootstrap/modal';
import { BsModalRef } from 'ngx-bootstrap/modal/bs-modal-ref.service';
import { DatePipe } from '@angular/common';
import { BsDatepickerModule, BsDatepickerConfig } from 'ngx-bootstrap';
import { Http, Response } from '@angular/http';
import { LoadingService } from '../../shared/loading.service';
import { PagerComponent } from '../../shared/Pager/pager.component';
import { ConfirmService } from '../../Shared/Confirm/confirm.service';
declare var $: any;

@Component({
    templateUrl: './sitelicenseusagereport.component.html'
})
export class SiteLicenseUsageReport implements OnInit {
    public lstSiteLicenseUsageReport: any;
    public lstEdition: any;
    SiteLicenseUsageReportForm: FormGroup;
    SiteLicenseUsageReports: SiteLicenseUsageReports[];
    SiteLicenseUsageReport = new SiteLicenseUsageReports();
    numberOfSiteLicenseUsageReport: number;
    limit: number;
    page: number = 1;
    error;
    modalAlerts: string;
    divClass: string = '';
    topPos: string = '2000px';
    selectedRow: number = 0;
    datePipe: DatePipe = new DatePipe('en-US');
    bsValue1: Date = new Date();
    bsValue2: Date = new Date();
    selectedId: number = 0;
    modalRef: BsModalRef;
    date = new Date();
    previousdate = new Date();
    NoRecord: string;
    bsConfig: Partial<BsDatepickerConfig>;
    ExportingStart: boolean;
    buttonStatus: boolean;
    @ViewChild(PagerComponent) pagerComponent: PagerComponent;
    recordCount: number;
    pageNo: number;
    pageLength: number;

    constructor(private router: Router, private reportservice: ReportService, private fb: FormBuilder,
      private modalService: BsModalService, private global: GlobalService, 
      private _loadingService: LoadingService, private _confirmService: ConfirmService) { }

    ngOnInit(): void {      
      this.ExportingStart = false;
      this.buttonStatus = false;
      this.bsConfig = Object.assign({}, { containerClass: 'theme-dark-blue' });
        this.NoRecord = this.global.NoRecords;
        let SiteLicenseUsageReport = new SiteLicenseUsageReports();
        this.previousdate.setDate(this.previousdate.getDate());
        this.SiteLicenseUsageReportForm = this.fb.group({
            sFromDate: [this.previousdate],
            sToDate: [this.date],
            sAccountNumber:[],
            iEdition:[0]
        });

        this.GetEdition();

        $('#fixed_hdr2').fxdHdrCol({
          fixedCols: 0,
          width: "100%",
          height: 330,
          colModal: [
            { width: 180, align: 'center' },
            { width: 230, align: 'center' },
            { width: 150, align: 'Center' },
            { width: 150, align: 'Center' },
            { width: 350, align: 'Center' },
            { width: 500, align: 'Center' },
            { width: 130, align: 'Center' },
            { width: 120, align: 'center' },
            { width: 280, align: 'Center' },
            { width: 180, align: 'center' },
            { width: 200, align: 'center' },
            { width: 170, align: 'center' },
            { width: 80, align: 'center' },
            { width: 150, align: 'center' },
            { width: 150, align: 'center' },
            { width: 180, align: 'Center' },
          ],
          sort: true
        });
        this.pageNo = 1;
        this.pageLength = 10;
        this.NoRecord = this.global.NoRecords;
        this.recordCount = 0;
        this.pagerComponent = new PagerComponent();
            
        if(document.getElementById("fixed_table_rc") != null){
            document.getElementById("fixed_table_rc").remove();
            var testScript = document.createElement("script");
            testScript.setAttribute("id", "fixed_table_rc");
            testScript.setAttribute("src", "../assets/scripts/fixed_table_rc.js");
            testScript.setAttribute("type", "text/javascript");
            document.body.appendChild(testScript);
        }
    }

    GetEdition() {
        this.reportservice.GetEdition().subscribe(st => { this.lstEdition = st; }, error => this.error = <any>error);
    }

    GetSiteLicenseUsageReport(evt: any) {
      this._loadingService.ShowLoading("global-loading");
      var tempArr = evt.split(',');
      this.pageNo = parseInt(tempArr[0]);
      this.pageLength = parseInt(tempArr[1]);
      this._loadingService.ShowLoading("global-loading");
      this.SiteLicenseUsageReport = this.SiteLicenseUsageReportForm.value;
      var obj = this.SiteLicenseUsageReport;
      if (this.ExportingStart) {
        this.reportservice.GetSiteLicenseUsageReport(obj, this.pageNo, this.pageLength).subscribe((SiteLicenseUsageReports: SiteLicenseUsageReports[]) => { this.ExportService(SiteLicenseUsageReports); }, error => this.error = <any>error);
      }
      else {
        this.reportservice.GetSiteLicenseUsageReport(obj, this.pageNo, this.pageLength).subscribe((SiteLicenseUsageReports: SiteLicenseUsageReports[]) => { this.BindFormFields(SiteLicenseUsageReports); }, error => this.error = <any>error);
      }
    }

    BindFormFields(data) {
      this.recordCount = data.RecordCount;
      this.lstSiteLicenseUsageReport = data.SiteLicenseUsageList;
      this.numberOfSiteLicenseUsageReport = this.lstSiteLicenseUsageReport.length; this.limit = this.lstSiteLicenseUsageReport.length;
      if (this.lstSiteLicenseUsageReport.length > 0) {
        this.NoRecord = '';
        this.buttonStatus = true;
        this._loadingService.HideLoading("global-loading");
      }
      if (this.lstSiteLicenseUsageReport.length == 0) {
        this.NoRecord = this.global.NoRecords;
        this._loadingService.HideLoading("global-loading");
        this.buttonStatus = false;
      }
    }
    
    SearchRecords() {
      this.GetSiteLicenseUsageReport('1, ' + this.pageLength);
    }

    ExportEvent() {
      if (this.buttonStatus) {
        this.ExportingStart = true;
        this.GetSiteLicenseUsageReport('1, ' + this.pageLength);
      }
    }
    ExportService(data: any) {
      this._loadingService.HideLoading("global-loading");
      this.global.ExportToCSV(data, "SiteLicenseUsageReport-" + this.date.getDay() + "-" + this.date.getMonth() + "-" + this.date.getSeconds())
     
    }
}