Rezervasyon Kartı
Rezervasyon Kartı Script
this.recordService._saveIfChange = async () => {
if (
JSON.stringify(this.recordService.formGroup.getRawValue()) !=
JSON.stringify(this.recordService.lastData)
) {
await this.recordService.component.onSave(false, true);
}
};
if (
this.recordService.component.mode.value == 'update' &&
angus.permissionService.isAuthorized(['Reservation Low', 'Front Desk Low'])
) {
this.recordService.formGroup.controls.AGENCYID_AGENCYCODE.disable();
this.recordService.formGroup.controls.PAIDBY.disable();
this.recordService.formGroup.controls.RATETYPEID_CODE.disable();
this.recordService.formGroup.controls.MANUELRATE.disable();
this.recordService.formGroup.controls.RATECODEID_RATECODE.disable();
} else if (
this.recordService.component.mode.value == 'insert' &&
angus.permissionService.isAuthorized(['Reservation Low', 'Front Desk Low'])
) {
this.recordService.formGroup.controls.PAIDBY.disable();
this.recordService.formGroup.controls.RATETYPEID_CODE.disable();
this.recordService.formGroup.controls.MANUELRATE.disable();
this.recordService.formGroup.controls.RATECODEID_RATECODE.disable();
}
/*
this.querySelector(
'h2'
).innerHTML += `<span _ngcontent-muq-c322="" style="position: absolute;
top: -19px;
left: 0;
font-size: 12px;
line-height: 12px;
font-weight: normal;
color: rgba(0,0,0,.76);
width: 600px;
">${
resState
} </span>`;
*/
if (angus.api.adminLevel < 99) {
if (angus.api.tenant.PACKAGENAME === 'Mini') {
document.querySelector(
'div.group.ang-group-groupFolioRouting'
).style.display = 'none';
//document.querySelector('div.group.ang-group-groupFolioPackages').style.display = 'none';
document.querySelector('div.group.ang-group-groupTask').style.display =
'none';
this.recordService.children.defaultPanel1.component.tabGroupService.children[2].componentRef.instance.hide = true;
this.recordService.children.defaultPanel1.component.updateTabs();
}
}
(() => {
this.allFormControls.RESSTATEID.valueChanges
.pipe(
rxjs.startWith(this.allFormControls.RESSTATEID.value),
rxjs.debounceTime(250)
)
.subscribe((state) => {
try {
const header = this.querySelector('.record-header');
let indicator = header.querySelector('mat-icon');
if (!indicator) {
indicator = document.createElement('mat-icon');
indicator.className = 'mat-icon material-icons mat-icon-no-color';
header.prepend(indicator);
}
if (state === 1) {
indicator.innerText = 'timelapse';
indicator.style.color = '#FFAB40'; // sarı
} else if (state === 2) {
indicator.innerText = 'flight_land';
indicator.style.color = '#F06292'; // pembe
} else if (state === 3) {
indicator.innerText = 'house';
indicator.style.color = '#43A047'; // yeşil
} else if (state === 4) {
indicator.innerText = 'flight_takeoff';
indicator.style.color = '#F4511E'; // turuncu
} else if (state === 5) {
indicator.innerText = 'visibility_off';
indicator.style.color = '#1E88E5'; // mavi
} else if (state === 6) {
indicator.innerText = 'cancel';
indicator.style.color = '#FF1744'; // kırmızı
} else if (state === 7) {
indicator.innerText = 'delete';
indicator.style.color = '#757575'; // gri
} else {
indicator.innerText = 'people';
indicator.style.color = '#8E24AA'; // mor
}
} catch (e) {
console.error(e);
}
try {
let resState = '';
if (state == 1) {
resState = angus.languageService.dynamicTranslator.translate(
'Waiting'
);
} else if (state == 2) {
resState = angus.languageService.dynamicTranslator.translate(
'Reservation'
);
} else if (state == 3) {
resState = angus.languageService.dynamicTranslator.translate(
'InHouse'
);
} else if (state == 4) {
resState = angus.languageService.dynamicTranslator.translate(
'Checkout'
);
} else if (state == 5) {
resState = angus.languageService.dynamicTranslator.translate(
'NoShow'
);
} else if (state == 6) {
resState = angus.languageService.dynamicTranslator.translate(
'Cancel'
);
} else if (state == 7) {
resState = angus.languageService.dynamicTranslator.translate(
'Deleted'
);
}
const header = this.querySelector('.record-header');
let resStateIndicator = header.querySelector('.res-state-indicator');
if (!resStateIndicator) {
resStateIndicator = document.createElement('span');
resStateIndicator.className = 'res-state-indicator';
resStateIndicator.style.position = 'absolute';
resStateIndicator.style.top = '-19px';
resStateIndicator.style.left = '0';
resStateIndicator.style.fontSize = '12px';
resStateIndicator.style.lineHeight = '12px';
resStateIndicator.style.fontWeight = 'normal';
resStateIndicator.style.color = 'rgba(0,0,0,.76)';
resStateIndicator.style.width = '600px';
header.append(resStateIndicator);
}
resStateIndicator.innerText = resState;
} catch (e) {}
});
})();
(() => {
const {
startWith,
tap,
combineLatest,
debounceTime,
map,
filter,
takeUntil,
} = rxjs;
const formControls = this.allFormControls;
const changes = {
LOS: false,
CHECKOUT: false,
CHECKIN: false,
};
const losChanges = formControls.LOS.valueChanges.pipe(
startWith(formControls.LOS.value),
tap(() => (changes.LOS = true))
);
const coutChanges = formControls.CHECKOUT.valueChanges.pipe(
startWith(formControls.CHECKOUT.value),
tap(() => (changes.CHECKOUT = true))
);
const cinChanges = formControls.CHECKIN.valueChanges.pipe(
startWith(formControls.CHECKIN.value),
tap(() => (changes.CHECKIN = true))
);
combineLatest([losChanges, coutChanges, cinChanges])
.pipe(
debounceTime(0),
map(([LOS, CHECKOUT, CHECKIN]) => {
const ret = {
changes: Object.keys(changes).filter((key) => changes[key]),
values: {
LOS: LOS != null && LOS !== '' ? +LOS : null,
CHECKOUT: moment(CHECKOUT),
CHECKIN: moment(CHECKIN),
},
};
Object.keys(changes).forEach((key) => (changes[key] = false));
return ret;
}),
filter((changeObj) => {
return (
changeObj.changes.length === 1 &&
changeObj.values.CHECKOUT.isValid() &&
changeObj.values.CHECKIN.isValid() &&
typeof changeObj.values.LOS === 'number'
);
}),
tap((changeObj) => {
const cinDay = changeObj.values.CHECKIN.clone().startOf('day');
const coutDay = changeObj.values.CHECKOUT.clone().startOf('day');
const dynamicLOS = coutDay.diff(cinDay, 'days', false);
if (
changeObj.changes[0] === 'LOS' ||
changeObj.changes[0] === 'CHECKIN'
) {
changeObj.values.CHECKOUT.add(
changeObj.values.LOS - dynamicLOS,
'days'
);
} else if (changeObj.changes[0] === 'CHECKOUT') {
changeObj.values.LOS = dynamicLOS;
}
formControls.CHECKOUT.setValue(
changeObj.values.CHECKOUT.format('YYYY-MM-DD HH:mm:ss.SSS')
);
formControls.CHECKIN.setValue(
changeObj.values.CHECKIN.format('YYYY-MM-DD HH:mm:ss.SSS')
);
formControls.LOS.setValue(changeObj.values.LOS);
}),
takeUntil(this.isDestroy$)
)
.subscribe();
})();
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));
}
});
};
this.recordService.formGroup.controls.ROOMCOUNTTYPE.valueChanges
.pipe(rxjs.debounceTime(300), rxjs.distinctUntilChanged())
.subscribe(async (v) => {
await rxjs.timer(0).toPromise();
if (!this.recordService.formGroup.controls.ROOMCOUNTTYPE.touched) {
if (v === 4) {
this.recordService.formGroup.controls.ROOMID_ROOMNO.disable();
this.recordService.elements.selectRoom.api.innerComponent.disabled = true;
} else {
this.recordService.formGroup.controls.ROOMID_ROOMNO.enable();
this.recordService.elements.selectRoom.api.innerComponent.disabled = false;
}
return;
}
if (v === 4 && this.recordService.formGroup.controls.ROOMID.value != null) {
let roomCountTypeMSG = angus.languageService.dynamicTranslator.translate(
'Delete the room number?'
);
const msg = await this.angusDialog.confirm(roomCountTypeMSG).toPromise();
if (msg) {
this.recordService.formGroup.controls.ROOMID_ROOMNO.disable();
this.recordService.elements.selectRoom.api.innerComponent.disabled = true;
this.recordService.formGroup.controls.ROOMID_ROOMNO.setValue(null);
this.recordService.formGroup.controls.ROOMID_ROOMNO.markAsDirty();
this.recordService.formGroup.controls.ROOMID.setValue(null);
this.recordService.formGroup.controls.ROOMID.markAsDirty();
}
} else {
this.recordService.formGroup.controls.ROOMID_ROOMNO.enable();
this.recordService.elements.selectRoom.api.innerComponent.disabled = false;
}
if (this.recordService.formGroup.controls.ROOMCOUNTTYPE.value === 6) {
let roomPriceMSG = angus.languageService.dynamicTranslator.translate(
'Do you want to RESET the Room Rate ?'
);
const msg = await this.angusDialog.confirm(roomPriceMSG).toPromise();
if (msg) {
this.recordService.formGroup.controls.MANUELRATEENABLED.setValue(true);
this.recordService.formGroup.controls.DISCOUNTSACTIVE.setValue(false);
this.recordService.formGroup.controls.MANUELRATE.setValue(0);
this.recordService.formGroup.controls.ROOMID_ROOMNO.setValue(null);
this.recordService.formGroup.controls.ROOMID_ROOMNO.markAsDirty();
this.recordService.formGroup.controls.ROOMID.setValue(null);
this.recordService.formGroup.controls.ROOMID.markAsDirty();
this.recordService.elements.resday.api.innerComponent.onClick();
}
}
});
(async () => {
while (true) {
if (this.recordService.component.isDestroy$.isStopped) {
break;
}
const fifthTab = document.querySelector(
'.ang-record-res-all-card .ang-tab-groupdefaultPanel1 .mat-tab-label:nth-child(5)'
);
if (fifthTab) {
if (angus.api.adminLevel < 99) {
fifthTab.style.display = 'none';
}
break;
} else {
await rxjs.timer(0).toPromise();
}
}
})();
const c1 = this.allFormControls['MANUELRATE'];
this.allFormControls.MANUELRATEENABLED.valueChanges
.pipe(rxjs.startWith(this.allFormControls.MANUELRATEENABLED.value))
.subscribe((v) => {
if (
angus.permissionService.isAuthorized([
'HotelOwner',
'Front Desk Full',
'Front Desk',
'Contract Management Full',
'Administrator',
'Reservation Full',
]) &&
v
) {
c1.enable();
} else {
c1.disable();
}
});
let voucherBulCallBack = (voucherNo) => {
let id = this.allFormControls['ID'].value;
if (!voucherNo || id > 0) {
return;
}
this.recordService.component.api
.select({
Object: 'HOTEL_RES',
Select: ['ID', 'VOUCHERNO'],
Where: [
{
Column: 'VOUCHERNO',
Operator: '=',
Value: voucherNo,
},
{
Column: 'RESSTATEID',
Operator: '<',
Value: 4,
},
{
Column: 'ID',
Operator: '<>',
Value: id,
},
],
Paging: {
ItemsPerPage: 1,
Current: 1,
},
})
.then((response) => {
if (response.ResultSets[0].length > 0) {
let resID = response.ResultSets[0][0].ID;
if (+this.allFormControls['ID'].value === +resID) {
return;
}
let msg = angus.languageService.dynamicTranslator.translate(
'Voucher No {{' +
voucherNo +
'}} Used before in Res ID : {{' +
resID +
'}}'
);
this.angusDialog.alert(msg);
}
});
};
this.allFormControls['VOUCHERNO'].valueChanges
.pipe(rxjs.debounceTime(500), rxjs.distinctUntilChanged())
.subscribe(voucherBulCallBack.bind(this));
const getFc = (x) => this.recordService.formGroup.controls[x];
rxjs
.combineLatest(
getFc('AGEINTERVAL3').valueChanges.pipe(
rxjs.startWith(getFc('AGEINTERVAL3').value)
),
getFc('AGEINTERVAL2').valueChanges.pipe(
rxjs.startWith(getFc('AGEINTERVAL2').value)
),
getFc('AGEINTERVAL1').valueChanges.pipe(
rxjs.startWith(getFc('AGEINTERVAL1').value)
)
)
.pipe(rxjs.debounceTime(200))
.subscribe(([chd1, chd2, baby]) => {
const chd1Label = document
.querySelector('.ang-field-CHD1')
.querySelector('mat-label');
const chd2Label = document
.querySelector('.ang-field-CHD2')
.querySelector('mat-label');
const babyLabel = document
.querySelector('.ang-field-BABY')
.querySelector('mat-label');
let chd1Text = angus.languageService.staticTranslator.translate('Child1');
let chd2Text = angus.languageService.staticTranslator.translate('Child2');
let babyText = angus.languageService.staticTranslator.translate('Baby');
chd1Label.innerHTML = chd2 + '-' + chd1 || chd1Text;
chd2Label.innerHTML = baby + '-' + chd2 || chd2Text;
babyLabel.innerHTML = 0 + '-' + baby || babyText;
});
rxjs
.combineLatest(
getFc('AGENCYID_AGENCYCODE').valueChanges.pipe(
rxjs.startWith(getFc('AGENCYID_AGENCYCODE').value)
),
getFc('ISAGENCY').valueChanges.pipe(
rxjs.startWith(getFc('ISAGENCY').value)
),
getFc('ISCOMPANY').valueChanges.pipe(
rxjs.startWith(getFc('ISCOMPANY').value)
)
)
.subscribe(([v, agen, comp]) => {
const el = document
.querySelector('.ang-field-AGENCYID_AGENCYCODE')
.querySelector('mat-label');
let text = '';
const wrapper = (x) => `<span style="color:red;">${x}</span>`;
let agency = angus.languageService.staticTranslator.translate('Agency');
let company = angus.languageService.staticTranslator.translate('Company');
let indi = angus.languageService.staticTranslator.translate('Individual');
text += agen ? wrapper(agency) : agency;
text += ' / ';
text += comp ? wrapper(company) : company;
text += ' / ';
text += v && !agen && !comp ? wrapper(indi) : indi;
el.innerHTML = text;
});
/*
307985 nolu talep (Ödeyen Guest ise folyo mutlaka hepsi seçeneği ile, Acenta ise sadece extra penceresi ile açılmalı.)
04.12.2019
Haydar
*/
try {
this.recordService.children.defaultPanel1.component.tabGroup.selectedIndexChange.subscribe(
(index) => {
if (index == 2) {
this.allGrids['reservations-screen-folio'].grid.activateTab(
this.allFormControls['PAIDBY'].value == 0 ? 1 : 0
);
}
}
);
} catch (e) {
console.error(e);
}
/*
START
31.08.2019 Tolga
Gizli olan Check-In Butonunu duruma göre açma
*/
(() => {
const __resRecordHideCheckInBtn = () => {
try {
document.querySelector('div.group.ang-group-G0').style.display = 'none';
} catch (e) {}
};
const __resRecordShowCheckInBtn = () => {
try {
document.querySelector('div.group.ang-group-G0').style.display = 'block';
} catch (e) {}
};
const __resRecordCheckInButtonCheckState = () => {
const id = this.recordService.formGroup.controls['ID'].value;
if (!id) {
__resRecordHideCheckInBtn();
return;
}
const resstateid = this.recordService.formGroup.controls['RESSTATEID']
.value;
if (resstateid !== 2) {
__resRecordHideCheckInBtn();
return;
}
const checkinDate = moment(
this.recordService.formGroup.controls['CHECKIN'].value
).startOf('day');
const progdate = moment(
this.recordService.component.api.tenant.PROGDATE
).startOf('day');
if (!checkinDate.isSame(progdate)) {
__resRecordHideCheckInBtn();
return;
}
const roomCountType = this.recordService.formGroup.controls['ROOMCOUNTTYPE']
.value;
if (roomCountType === 4) {
__resRecordHideCheckInBtn();
return;
}
console.warn(
'Activating Check-In Button (id, resstateid, checkinDate, progdate)',
id,
resstateid,
checkinDate,
progdate
);
__resRecordShowCheckInBtn();
};
this.recordService.formGroup.controls['ID'].valueChanges.subscribe((cid) => {
__resRecordCheckInButtonCheckState();
});
this.recordService.formGroup.controls['RESSTATEID'].valueChanges.subscribe(
(state) => {
__resRecordCheckInButtonCheckState();
}
);
this.recordService.formGroup.controls['CHECKIN'].valueChanges.subscribe(
(state) => {
__resRecordCheckInButtonCheckState();
}
);
__resRecordCheckInButtonCheckState();
})();
/*
31.08.2019 Tolga
END
*/
/*
START
13.09.2019 Mahmut
Gizli olan Check-Out Butonunu duruma göre açma
*/
(() => {
const __resRecordHideCheckOutBtn = () => {
try {
document.querySelector('div.group.ang-group-G00').style.display = 'none';
} catch (e) {}
};
const __resRecordShowCheckOutBtn = () => {
try {
document.querySelector('div.group.ang-group-G00').style.display = 'block';
} catch (e) {}
};
const __resRecordCheckOutButtonCheckState = () => {
const id = this.recordService.formGroup.controls['ID'].value;
if (!id) {
__resRecordHideCheckOutBtn();
return;
}
const resstateid = this.recordService.formGroup.controls['RESSTATEID']
.value;
if (resstateid !== 3) {
__resRecordHideCheckOutBtn();
return;
}
const checkoutDate = moment(
this.recordService.formGroup.controls['CHECKOUT'].value
).startOf('day');
const progdate = moment(
this.recordService.component.api.tenant.PROGDATE
).startOf('day');
if (!checkoutDate.isSame(progdate)) {
__resRecordHideCheckOutBtn();
return;
}
console.warn(
'Activating Check-Out Button (id, resstateid, checkoutDate, progdate)',
id,
resstateid,
checkoutDate,
progdate
);
__resRecordShowCheckOutBtn();
};
this.recordService.formGroup.controls['ID'].valueChanges.subscribe((cid) => {
__resRecordCheckOutButtonCheckState();
});
this.recordService.formGroup.controls['RESSTATEID'].valueChanges.subscribe(
(state) => {
__resRecordCheckOutButtonCheckState();
}
);
this.recordService.formGroup.controls['CHECKOUT'].valueChanges.subscribe(
(state) => {
__resRecordCheckOutButtonCheckState();
}
);
__resRecordCheckOutButtonCheckState();
})();
/*
13.09.2019 Mahmut
END
*/
let that = this;
if (!this.isDestroy$.isStopped) {
window.record = that;
this.isDestroy$
.pipe(rxjs.take(1))
.subscribe(() => (window.record = undefined));
}
console.log(that);
that.allFormControls.ROOMTYPEID_ROOMTYPECODE.valueChanges.subscribe({
next(x) {
console.log(x);
that.allFormControls.GIVENROOMTYPEID_ROOMTYPECODE.setValue(
that.allFormControls.ROOMTYPEID_ROOMTYPECODE.value
);
},
error(err) {
console.log('TA error :', err);
},
});
that.allFormControls.ROOMTYPEID.valueChanges.subscribe({
next(x) {
that.allFormControls.GIVENROOMTYPEID.setValue(
that.allFormControls.ROOMTYPEID.value
);
},
error(err) {
console.log('TA error :', err);
},
});
setTimeout(() => {
try {
if (SalesProjectsRecord && !that.allFormControls.ID.value) {
if (SalesProjectsRecord.allFormControls.STARTDATE.value)
that.allFormControls.CHECKIN.setValue(
SalesProjectsRecord.allFormControls.STARTDATE.value
);
if (SalesProjectsRecord.allFormControls.ENDDATE.value) {
that.allFormControls.CHECKOUT.setValue(
SalesProjectsRecord.allFormControls.ENDDATE.value
);
}
if (SalesProjectsRecord.allFormControls.AGENCYID.value) {
let req = {
Object: 'AGENCY',
Select: [
'AGENCYCODE',
'ID',
'CHANNELCOMMISSIONPERCENT',
'BOARDID',
'BOARDID_BOARDTYPE',
'MARKETID',
'MARKETID_MARKET',
'SOURCEID',
'SOURCEID_SOURCE',
'RATECODEID',
'RATECODEID_RATECODE',
'RATETYPEID',
'RATETYPEID_CODE',
'DEFAULTROOMTYPEID',
'DEFAULTROOMTYPEID_ROOMTYPECODE',
'DEFAULTCURRENCYID',
'DEFAULTCURRENCYID_CODE3',
'DEFAULTCOUNTRYID',
'DEFAULTCOUNTRYID_NAME',
],
Where: [
{
Column: 'ID',
Operator: '=',
Value: SalesProjectsRecord.allFormControls.AGENCYID.value,
},
{ Column: 'ISDELETED', Operator: '=', Value: 0, IsNull: 0 },
{ Column: 'ISDISABLED', Operator: '=', Value: 0, IsNull: 0 },
],
Joins: [
{
Object: 'COUNTRY',
Key: 'ID',
Fields: ['NAME'],
Field: 'DEFAULTCOUNTRYID',
},
{
Object: 'STDCURCODE',
Key: 'ID',
Fields: ['CODE3'],
Field: 'DEFAULTCURRENCYID',
},
{
Object: 'HOTEL_ROOMTYPE',
Key: 'ID',
Fields: ['ROOMTYPECODE'],
Field: 'DEFAULTROOMTYPEID',
},
{
Object: 'HOTEL_BOARDTYPE',
Key: 'ID',
Fields: ['BOARDTYPE'],
Field: 'BOARDID',
},
{
Object: 'HOTEL_MARKET',
Key: 'ID',
Fields: ['MARKET'],
Field: 'MARKETID',
},
{
Object: 'HOTEL_SOURCE',
Key: 'ID',
Fields: ['SOURCE'],
Field: 'SOURCEID',
},
{
Object: 'HOTEL_RATECODE',
Key: 'ID',
Fields: ['RATECODE'],
Field: 'RATECODEID',
},
{
Object: 'HOTEL_RATETYPE',
Key: 'ID',
Fields: ['CODE'],
Field: 'RATETYPEID',
},
],
};
that.api.select(req).then((resp) => {
let d = resp.ResultSets[0][0];
that.allFormControls.AGENCYID_AGENCYCODE.setValue(d.AGENCYCODE);
that.allFormControls.BOARDTYPEID.setValue(d.BOARDID);
that.allFormControls.BOARDTYPEID_BOARDTYPE.setValue(
d.BOARDID_BOARDTYPE
);
that.allFormControls.MARKETID.setValue(d.MARKETID);
that.allFormControls.MARKETID_MARKET.setValue(d.MARKETID_MARKET);
that.allFormControls.SOURCEID.setValue(d.SOURCEID);
that.allFormControls.SOURCEID_SOURCE.setValue(d.SOURCEID_SOURCE);
that.allFormControls.RATECODEID.setValue(d.RATECODEID);
that.allFormControls.RATECODEID_RATECODE.setValue(
d.RATECODEID_RATECODE
);
that.allFormControls.RATETYPEID.setValue(d.RATETYPEID);
that.allFormControls.RATETYPEID_CODE.setValue(d.RATETYPEID_CODE);
that.allFormControls.ROOMTYPEID.setValue(d.DEFAULTROOMTYPEID);
that.allFormControls.ROOMTYPEID_ROOMTYPECODE.setValue(
d.DEFAULTROOMTYPEID_ROOMTYPECODE
);
that.allFormControls.CURRENCYID.setValue(d.DEFAULTCURRENCYID);
that.allFormControls.CURRENCYID_CURCODE.setValue(
d.DEFAULTCURRENCYID_CODE3
);
that.allFormControls.NATIONALITY.setValue(d.DEFAULTCOUNTRYID);
that.allFormControls.NATIONALITY_NAME.setValue(
d.DEFAULTCOUNTRYID_NAME
);
that.allFormControls.AGENCY_COMMISSION_PERCENT.setValue(
d.CHANNELCOMMISSIONPERCENT
);
});
}
}
} catch (e) {
console.log('Script Error!!');
}
}, 1000);
let validateTC = function (v) {
if (v == '11111111111') return true;
let tc = v
.toString()
.split('')
.map((n) => {
return parseInt(n);
});
let d10 =
((tc[0] + tc[2] + tc[4] + tc[6] + tc[8]) * 7 -
(tc[1] + tc[3] + tc[5] + tc[7])) %
10;
return (
tc[9] == d10 &&
tc[10] ==
(tc[1] +
tc[3] +
tc[5] +
tc[7] +
tc[0] +
tc[2] +
tc[4] +
tc[6] +
tc[8] +
d10) %
10
);
};
setTimeout(async () => {
await awaitIf(() => that.allGrids?.HOTEL_RES_DetailView?.grid?.agGrid);
let guestGrid = that.allGrids.HOTEL_RES_DetailView.grid.agGrid;
guestGrid.cellEditingStopped.subscribe((d) => {
console.log('edit stopped', d);
if (d.column.colId == 'NATIONALIDNO') {
if (d.value !== '' && !validateTC(d.value)) {
angus.api.angusDialog.alert(
'(' +
d.value +
') ' +
that.languageService.dynamicTranslator.translate(
'is not valid! Please enter a valid ID number!'
)
);
Object.values(guestGrid.api.rowModel.selectionController.selectedNodes)
.filter((r) => {
return r !== undefined;
})[0]
.setDataValue('NATIONALIDNO', '');
}
}
});
}, 0);
let createFixNotes = async () => {
await rxjs.timer(1000).toPromise();
if (this.mode.value === 'insert') {
let fixNotes = await this.api.func({ Object: 'FN_RESFIXNOTE' }).toPromise();
this.allGrids['res-fixnotes'].api.setRowData(fixNotes[0]);
this.allGrids['res-fixnotes'].grid.gridShareds.onRowLoad.next(true);
this.allGrids['res-fixnotes'].grid.isGridDataLoaded = true;
}
};
createFixNotes();
this._scan = (insertGrid, add = true) => {
angus.popupFormService.scanner().subscribe((response) => {
if (!response) {
return;
}
let val = response.src;
const loading = angus.loadingService.showLoadingOverlay();
angus.api.kimlikokur(val).subscribe((data) => {
if (Object.keys(data).length == 0) {
loading.destroy();
let msg3 = `No valid data.`;
msg3 = angus.languageService.dynamicTranslator.translate(msg3);
return;
}
let node;
if (!add) {
node = insertGrid.agGrid.api.getSelectedNodes()[0];
} else {
node = insertGrid.addNewRow();
}
console.clear();
console.log(data);
insertGrid.changeCellValue(node, 'NAME', data.firstName);
insertGrid.changeCellValue(node, 'LNAME', data.lastName);
if (data.birthDate) {
insertGrid.changeCellValue(
node,
'BIRTHDATE',
moment(moment(data.birthDate, 'YYMMDD').toDate()).format('YYYY-MM-DD')
);
}
if (data.expirationDate) {
insertGrid.changeCellValue(
node,
'IDEXPIREDATE',
moment(moment(data.expirationDate, 'YYMMDD').toDate()).format(
'YYYY-MM-DD'
)
);
}
if (data.sex == 'female') {
insertGrid.changeCellValue(node, 'GENDER', '1');
} else {
insertGrid.changeCellValue(node, 'GENDER', '0');
}
if (data.documentCode == 'ID' || data.documentCode == 'I') {
insertGrid.changeCellValue(node, 'NATIONALIDNO', data.optional1.trim());
} else if (data.documentCode == 'P') {
insertGrid.changeCellValue(
node,
'PASSPORTNO',
data.personalNumber.trim()
);
}
if (data.nationality) {
(async () => {
const id = angus.api
.select({
Object: 'COUNTRY',
Select: ['ID', 'NAME', 'CODE3'],
Where: [
{
Column: 'CODE3',
Operator: '=',
Value: data.nationality,
},
],
Paging: {
ItemsPerPage: 1,
Current: 1,
},
})
.then((response) => {
insertGrid.changeCellValue(
node,
'NATIONALITYID',
response.ResultSets[0][0].ID
);
if (!this.recordService.formGroup.controls.NATIONALITY.value) {
this.recordService.formGroup.controls.NATIONALITY.setValue(
response.ResultSets[0][0].ID
);
}
insertGrid.changeCellValue(
node,
'NATIONALITYID_NAME',
response.ResultSets[0][0].NAME
);
if (
!this.recordService.formGroup.controls.NATIONALITY_NAME.value
) {
this.recordService.formGroup.controls.NATIONALITY_NAME.setValue(
response.ResultSets[0][0].NAME
);
}
});
})();
}
node.setData(node.data);
loading.destroy();
});
});
};
Last updated