Dağılım Analizi

Dağılım Analizi Script

if (!this.isDestroy$.isStopped && document.querySelector('#raporla-button')) {
  document.querySelector('#raporla-button').click();
  const awaitIf = async (fn, ms = 100) => {
    await new Promise(async (resolve, reject) => {
      if (fn()) {
        resolve(true);
      } else {
        await rxjs.timer(ms).toPromise();
        resolve(await awaitIf(fn));
      }
    });
  };

  this.recordService.formGroup.controls.GROUPBY.valueChanges.subscribe(
    (cur) => {
      document.querySelector('#raporla-button').click();
    }
  );
  
  let analysisTypeFc = this.recordService.formGroup.controls.ANALYSIS_TYPE;
  analysisTypeFc.valueChanges
    .pipe(rxjs.startWith(analysisTypeFc.value))
    .subscribe(async (type) => {
      if (type == 'DISTRIBUTION') {
        this.recordService.formGroup.controls.SELLFROM.setValue(moment('2000-01-01').format('YYYY-MM-DD'));
        this.recordService.formGroup.controls.SELLTO.setValue(moment('2049-12-31').format('YYYY-MM-DD'));
        this.recordService.formGroup.controls.TO.setValue(moment(angus.api.tenant.PROGDATE).endOf('month').format('YYYY-MM-DD'));
        this.recordService.formGroup.controls.FROM.setValue(moment(angus.api.tenant.PROGDATE).startOf('month').format('YYYY-MM-DD'));
      } else if (type == "SALE"){
        this.recordService.formGroup.controls.SELLFROM.setValue(moment(angus.api.tenant.PROGDATE).add(-1,'days').format('YYYY-MM-DD'));
        this.recordService.formGroup.controls.SELLTO.setValue(moment(angus.api.tenant.PROGDATE).add(-1,'days').format('YYYY-MM-DD'));
        this.recordService.formGroup.controls.TO.setValue(moment(angus.api.tenant.PROGDATE).add(2,'year').format('YYYY-MM-DD'));
        this.recordService.formGroup.controls.FROM.setValue(moment(angus.api.tenant.PROGDATE).add(-1,'days').format('YYYY-MM-DD'));
      }
      document.querySelector('#raporla-button').click();
    });

  const curFC = this.recordService.formGroup.get('CURRENCY');
  let curFirst = true;

  curFC.valueChanges
    .pipe(rxjs.startWith(curFC.value))
    .subscribe(async (cur) => {
      await awaitIf(
        () =>
          this.recordService.grids['forecast-distribution-grid']?.grid?.agGrid
      );

      const grid1 = this.recordService.grids['forecast-distribution-grid'].grid
        .agGrid;
      const grid2 = this.recordService.grids['forecast-distribution-grid2'].grid
        .agGrid;

      const grid1DegisecekAlanlar = [
        'ROOM_REVENUE_CURRENCY',
        'ADR_CURRENCY',
        'RPRICEPERADULT_CURRENCY',
        //aşağısı sonradan eklendi
        'OTHER_REVENUE_CURRENCY',
        'TAX_REVENUE_CURRENCY',
        'FOOD_REVENUE_CURRENCY',
        'BOARD_REVENUE_CURRENCY',
        'BEVERAGE_REVENUE_CURRENCY',
      ];

      const grid2DegisecekAlanlar = [
        'ROOM_REVENUE_CURRENCY',
        'ROOM_REVENUE_CURRENCY_LY',
        'ADR_CURRENCY',
        'ADR_CURRENCY_LY',
        'RPRICEPERADULT_CURRENCY',
        'RPRICEPERADULT_CURRENCY_LY',
        //aşağısı sonradan eklendi
        'OTHER_REVENUE_CURRENCY',
        'OTHER_REVENUE_CURRENCY_LY',
        'TAX_REVENUE_CURRENCY',
        'TAX_REVENUE_CURRENCY_LY',
        'FOOD_REVENUE_CURRENCY',
        'FOOD_REVENUE_CURRENCY_LY',
        'BOARD_REVENUE_CURRENCY',
        'BOARD_REVENUE_CURRENCY_LY',
        'BEVERAGE_REVENUE_CURRENCY',
        'BEVERAGE_REVENUE_CURRENCY_LY',
      ];

      const kolonAdiDegistir = (grid, arr) => {
        grid.columnApi
          .getAllDisplayedColumns()
          .filter((col) => arr.includes(col.colDef.field))
          .forEach(
            (col) =>
              (col.colDef.headerName = col.colDef.headerName.replace(
                / \(.*\)| Cur/,
                ` (${cur})`
              ))
          );

        grid.api.refreshHeader();
      };

      kolonAdiDegistir(grid1, grid1DegisecekAlanlar);
      kolonAdiDegistir(grid2, grid2DegisecekAlanlar);

      if (curFirst) {
        curFirst = false;
      } else {
        document.querySelector('#raporla-button').click();
      }
    });
  this.recordService.formGroup.controls.UPTOSALEDATE.valueChanges.subscribe(
    (cur) => {
      document.querySelector('#raporla-button').click();
    }
  );
  this.recordService.formGroup.controls.BLOCKINCLUDED.valueChanges.subscribe(
    (cur) => {
      document.querySelector('#raporla-button').click();
    }
  );

  let lastYear = this.recordService.formGroup.controls.WITHLASTYEAR;
  this.recordService.children.T1.component.activeTabIndex.subscribe((v) => {
    if (v == 1 && !lastYear.value) {
      lastYear.setValue(true);
      document.querySelector('#raporla-button').click();
    }
  });
}

Last updated