Angus Wiki
  • Group 1
    • Angus Wiki
    • Control Types
      • Text
      • Textarea
      • Password
      • Spacer
      • Integer
      • Double
      • Double4
      • Double5
      • Date
      • Daterange
      • Time
      • Datetime
      • Select
      • Anglookup
      • Boolean
      • Button
      • Filter
      • Radio
      • Multiselect
      • Dbimage
      • Image
      • Html
      • Chart
      • Widget
      • Autocomplete
      • Chip
      • Phoneinput
    • General type
    • Toolbar
    • Menu
    • Grid
    • Grid Filter Panel
    • Page
    • Analysis
    • OptionRecord
    • Record
      • Recordlarda Fuzzy Search Kullanımı
      • Recordlara Panel Ekleme
      • Record Butonlarına da Rol Verilebilir
    • Record scripti
    • Butonda Script Kullanımı
    • Buton ve row actiondan gridfilter veri gönderme
    • Combine Latest
    • Sp ye istek atıp dönen id bir tane ise record fazla ise grid açan buton scripti
  • Group 3
    • Angus Lokal Kurulum Linux
    • İlk kurulum
    • Kubernetes Dashboard
  • Group 2
    • Angus Lokal Kurulum Windows
    • Gerekli Uygulamalar
      • Ubuntu Kurulumu
      • WSL Kurulumu
      • Docker Kurulumu
      • Kubernetes Kurulumu
      • Microsoft SQL Kurulumu
    • Kubernetes Ayarları
    • Sistemin Çalıştırılması
  • Group 4
    • Scriptler
      • Rezervasyon Kartı
      • Rezervasyon Kartı BeforeSave Script
      • Rezervasyon Kartı BeforeClone Script
      • Fatura
      • Fatura BeforeSave Script
      • Fatura Before Print Script Editor
      • Satış Projeleri
      • Satış Projeleri BeforeSave Script
      • Kapalı Oda İşlemleri
      • Kayıp Bulunan Listesi
      • İş Kaydı
      • İş Kaydı BeforeSave Script
      • Hesap Kartı
      • Stok Fiyat Anlaşması
      • Proforma Fatura Listesi
      • Fatura BeforeSave Script
      • Fiş
      • Fiş BeforeSave Script
      • Fiş AfterSave Script
      • Fiş Before Print Script
      • Fiş BeforeClone Script
      • Ödeme Emri
      • Ödeme Emri BeforeSave Script
      • Çek/Senet
      • Banka Ekstresi Oku BeforeSave Script
      • Hesap Mutabakatı
      • Babs Mutabakat
      • Kur Değerleme
      • Kur Değerleme(Toplu Döviz)
      • Yaşlandırma Analizi
      • Seyahat Acentası
      • Fiyat Kodu
      • Kontrat Detay
      • Entegrasyon Bağlantı Tanımları
      • Stok İrsaliye
      • Stok İrsaliye BeforeSave Script
      • Stok Fişi
      • Stok Fişi BeforeSave Script
      • Talep
      • Talep BeforeSave Script
      • Üretim Emri
      • Stok Sayım
      • Stok Sayım BeforeSave Script
      • Tüketim Fişleri
      • Adisyon Before Save Script
      • Stok Fiyat Anlaşması
      • Stok Fiyat Anlaşması BeforeSave Script
      • Misafir Kartı
      • Yeni Talep
      • Yeni Talep BeforeSave Script
      • Yeni Talep AfterSave Script
      • Çağrı Merkezi Kaydı
      • Çağrı Merkezi Kaydı AfterSave Script
      • Üyelik
      • Ödeme Linki
      • Doluluk Grafikleri
      • Dağılım Analizi
      • Park Giriş BeforeClone Script
      • Park Giriş
      • Park Rezervasyonu
      • Park Rezervasyonu BeforeSave Script
      • Park Rezervasyonu BeforeClone Script
      • Seyahat Acentası
      • Kullanıcı Bilgileri
      • Kullanıcı Bilgileri BeforeSave Script
      • Medikal Rezervasyon Kartı
      • Medikal BeforeSave Script
      • Medikal BeforeClone Script
      • Ödeme Linki
      • Ödeme Linki BeforeSave Script
  • Group 5
    • IP Santral Entegrasyonu
    • Ip Santral Sistemi
    • File Transfer Service
    • IP Santral Engtegrasyonu Angus Kullanımı
  • Response Header'larındaki Alanlar ve Anlamları
Powered by GitBook
On this page
  1. Group 4
  2. Scriptler

Rezervasyon Kartı BeforeSave Script

Rezervasyon Kartı

const awaitIf = async (fn, ms = 100) => {
  await new Promise(async (resolve, reject) => {
    let result = false;
    try {
      result = fn();
    } catch (e) {
      console.error(e);
    }

    if (result) {
      resolve(true);
    } else {
      await rxjs.timer(ms).toPromise();
      resolve(await awaitIf(fn));
    }
  });
};
return (async () => {
  
  await awaitIf(() => this.allGrids["HOTEL_RES_DetailView"].grid);
  if (
    angus.api.tenant.RES_NAMES_REQUIRED && this.recordService.formGroup.controls.ROOMCOUNTTYPE.value != 6 && 
    this.allGrids['HOTEL_RES_DetailView'].grid.rowCount === 0
  ) {
    throw new Error(
      angus.languageService.dynamicTranslator.translate(
        'Guest field cannot be empty'
      )
    );
  }
  
  const formControls = this.recordService.component.allFormControls;
  let ADULT = +(formControls.ADULT.value || 0) || 0;
  let CHD1 = +(formControls.CHD1.value || 0) || 0;
  let CHD2 = +(formControls.CHD2.value || 0) || 0;
  let BABY = +(formControls.BABY.value || 0) || 0;
  let pax = ADULT + CHD1 + CHD2 + BABY;
  let gridCount = 0;
  await awaitIf(
    () => this.recordService.grids?.HOTEL_RES_DetailView?.api?.forEachNode
  );
  this.recordService.grids.HOTEL_RES_DetailView.api.forEachNode((node) => {
    if (!node['toBeDeleted'] && node.data.DEPARTED !== true) {
      gridCount++;
    }
  });
  
  if (pax < 0 || [ADULT, CHD1, CHD2, BABY].some((x) => x < 0)) {
    let msg = `Cannot enter negative guest count.`;
    msg = angus.languageService.staticTranslator.translate(msg);
    throw msg;
  }
  
  if (pax > 0 && gridCount > pax) {
    let msg = `Can Have Maximum {{${pax}}} Guests.`;
    msg = angus.languageService.staticTranslator.translate(msg);
    throw msg;
  }

  
  if (angus.api.tenant.CHECK_SAME_RES == 1) {
    
    if (
      !this.recordService.component.allFormControls['ID'].value &&
      this.recordService.grids.HOTEL_RES_DetailView.grid.rowCount > 0
    ) {
      let GName = '';
      let GLName = '';

      let ResId = '';
      this.recordService.grids.HOTEL_RES_DetailView.api.forEachNode((node) => {
        GName = node.data.NAME;
        GLName = node.data.LNAME;
      });

      this.recordService.component.api
        .execSP({
          Object: 'SP_EASYPMS_CHECKSAMERES',
          Parameters: {
            GUESTNAME: GName,
            GUESTLNAME: GLName,
            AGENCYID: this.recordService.component.allFormControls.AGENCYID
              .value,
            CHECKIN: this.recordService.component.allFormControls.CHECKIN.value,
            CHECKOUT: this.recordService.component.allFormControls.CHECKOUT
              .value,
            VOUCHER: this.recordService.component.allFormControls.VOUCHERNO
              .value,
            RESID: this.recordService.component.allFormControls.ID.value,
          },
        })
        .subscribe((resp) => {
          if (resp[0][0].SUCCESS == '0')
            this.recordService.component.angusDialog.warn(resp[0][0].MESSAGE);
        });
    }
  }

  if (
    this.recordService.component.mode.value === 'update' &&
    this.recordService.lastData.RESSTATEID === 3 &&
    this.recordService.component.allFormControls.ROOMCOUNTTYPE.value != 2 &&
    this.recordService.lastData.ROOMCOUNTTYPE != 6 &&
    this.recordService.component.allFormControls.ROOMID.value &&
    this.recordService.lastData.ROOMID !=
      this.recordService.component.allFormControls.ROOMID.value
  ) {
    const roomChangeReason = await this.runRowAction('roomChangeReason');
  }
})();
PreviousRezervasyon KartıNextRezervasyon Kartı BeforeClone Script

Last updated 3 years ago