|
???File Path
|
|
==========
|
|
***...\ClientApp\srcpp\src\travel\set-target\set-target.component.ts
|
|
|
|
|
|
???Check the points
|
|
==================
|
|
1) Check ...\ClientApp\srcpp\srcaseranchranch.component.ts and ...\ClientApp\srcpp\srcase\company\company.component.ts
|
|
2) Main Grouping Must
|
|
-> // @@@@@@@ AREA=> FROM HTML INPUT AREA Called Functions(Not Button bar and List) @@@@@@@@@@@@@@
|
|
-> // @@@@@@@ FROM HTML MAIN LIST Called Functions @@@@@@@@@@@@@@
|
|
-> // @@@@@@@ AREA=> FROM HTML BUTTON BAR Called Functions @@@@@@@@@@@@@@
|
|
-> // @@@@@@@ AREA=> COMMON Functions @@@@@@@@@@@@@@
|
|
3) Set GUI Heading in constructor(Eg:- insGlobalConstants.strGuiHeading = "***";)
|
|
4) Set GUI/Menu System Name in constructor(Eg:- insGlobalConstants.strSysModuleName = "***";) based on menu service
|
|
5) Set GUI Tittle(Browser Tab) in constructor(Eg:- insGlobalFunctions.fnSetGuiBasedBrowserTitle = "***";)
|
|
|
|
|
|
|
|
// ??? Check and Use If you need...
|
|
//---------------------------------
|
|
import { Component, OnInit, AfterViewInit, OnDestroy, ViewChild } from '@angular/core';
|
|
import { DxDataGridComponent } from "devextreme-angular";
|
|
|
|
import * as globalConstantsService from '../../../services/global-constants.service';
|
|
import * as globalFunctionsService from '../../../services/global-functions.service';
|
|
import * as globalDataService from '../../../services/global-data.service';
|
|
import * as baseDataService from '../../../services/base/base-data.service';
|
|
import * as jspdfService from '../../../services/jspdf.service';
|
|
import * as menuService from '../../../services/menu.service';
|
|
import { MdlSetTarget, MdlReqSetTarget, MdlResSetTarget, MdlResSetTargetInit, MdlResSetTargetList } from '../../../models/travel/target.model';
|
|
import { MdlResponse, MdlBaseIntId, MdlReqBaseIntId } from "../../../models/common.model";
|
|
import { HttpService } from '../../../services/http.service';
|
|
|
|
|
|
|
|
// ??? Check and Use If you need...
|
|
//---------------------------------
|
|
export class SetTargetComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
// ** initialize data
|
|
public mdlSetTarget: MdlSetTarget = new MdlSetTarget();
|
|
public intActiveSetTargetIndex: number = -1;
|
|
// ** Select and Auto-completion
|
|
// ??? Remove not use items !!!
|
|
lstMdlAccountBaseIntId: MdlBaseIntId[] = [];
|
|
lstMdlCounterStaffBaseIntId: MdlBaseIntId[] = [];
|
|
lstMdlBranchBaseIntId: MdlBaseIntId[] = [];
|
|
lstMdlAirlineMasterBaseIntId: MdlBaseIntId[] = [];
|
|
lstMdlHotelMasterBaseIntId: MdlBaseIntId[] = [];
|
|
lstMdlFinancialYearBaseIntId: MdlBaseIntId[] = [];
|
|
|
|
// ** GUI Control
|
|
public blnBtnDisabled: boolean = false;
|
|
public blnMoreDivExpanded: boolean = false;
|
|
// ** SetTarget List
|
|
@ViewChild('#idDgSetTargetList') idDgSetTargetList!: DxDataGridComponent;
|
|
public lstAllSetTarget: MdlSetTarget[] = [];
|
|
public blnDgSetTargetShowFilterRow: boolean = false;
|
|
public blnDgSetTargetHeaderFilter: boolean = false;
|
|
public intActiveSetTargetListItemIndex = -1;
|
|
|
|
|
|
|
|
// ??? If you need, import and create instance other common classes !!!
|
|
constructor(public insGlobalConstants: globalConstantsService.GlobalConstantsService,
|
|
public insGlobalFunctions: globalFunctionsService.GlobalFunctionsService,
|
|
public insGlobalData: globalDataService.GlobalDataService,
|
|
public insBaseData: baseDataService.BaseDataService,
|
|
private insHttpService: HttpService,
|
|
public insJspdf: jspdfService.JspdfService) {
|
|
|
|
insGlobalConstants.strGuiHeading = 'setTarget';
|
|
// ??? Check menu service !!!
|
|
insGlobalConstants.strSysModuleName = "SETTARGET_MASTER";
|
|
insGlobalFunctions.fnSetGuiBasedBrowserTitle("SetTarget");
|
|
}
|
|
|
|
ngOnInit(): void {
|
|
this.blnBtnDisabled = true;
|
|
document.body.style.cursor = "wait";
|
|
|
|
this.fnDefaultView();
|
|
|
|
// initialize Data Request
|
|
this.insHttpService.get('Base/Organization/GetSetTargetInitializeData')
|
|
.then((mdlResSetTargetInit: MdlResSetTargetInit) => {
|
|
if (mdlResSetTargetInit.sinStatus == 1) {
|
|
this.lstMdlSetTarget = mdlResSetTargetInit.lstMdlSetTarget;
|
|
|
|
// ??? Remove not use items !!!
|
|
this.lstMdlAccountBaseIntId = mdlResSetTargetInit.lstMdlAccountBaseIntId;
|
|
this.lstMdlCounterStaffBaseIntId = mdlResSetTargetInit.lstMdlCounterStaffBaseIntId;
|
|
this.lstMdlBranchBaseIntId = mdlResSetTargetInit.lstMdlBranchBaseIntId;
|
|
this.lstMdlAirlineMasterBaseIntId = mdlResSetTargetInit.lstMdlAirlineMasterBaseIntId;
|
|
this.lstMdlHotelMasterBaseIntId = mdlResSetTargetInit.lstMdlHotelMasterBaseIntId;
|
|
this.lstMdlFinancialYearBaseIntId = mdlResSetTargetInit.lstMdlFinancialYearBaseIntId;
|
|
|
|
} else {
|
|
console.log(mdlResSetTargetInit.strMessage + " => " + mdlResSetTargetInit.strErrorCode + ' -> ' + mdlResSetTargetInit.strSysError);
|
|
}
|
|
})
|
|
.catch((err: any) => {
|
|
console.log("Error->SETTARGET.COMPONENT.TS#001: " + JSON.stringify(err));
|
|
});
|
|
|
|
document.body.style.cursor = "default";
|
|
this.blnBtnDisabled = false;
|
|
}
|
|
|
|
ngAfterViewInit(): void {
|
|
}
|
|
|
|
ngOnDestroy() {
|
|
}
|
|
|
|
|
|
|
|
// @@@@@@@ AREA=> FROM HTML INPUT AREA Called Functions(Not Button bar and List) @@@@@@@@@@@@@
|
|
|
|
|
|
// ??? AUTO/ENTRY COMPLETE - Set Id[, Code, Name] -> OnFocusOut Event
|
|
|
|
// ??? Any caculation/Display Based on user inputs
|
|
|
|
|
|
|
|
|
|
// @@@@@@@@@@@@@@@@@@@@@@@ AREA=> FROM HTML MAIN LIST Called Functions @@@@@@@@@@@@@@@@@@@@@@@@
|
|
|
|
fnOnSetTargetListEditButtonClick(objSelRow: any) {
|
|
this.blnBtnDisabled = true;
|
|
document.body.style.cursor = "wait";
|
|
|
|
this.fnSetDataAndGuiEditMode(objSelRow.row.data, objSelRow.row.rowIndex);
|
|
|
|
document.body.style.cursor = "default";
|
|
this.blnBtnDisabled = false;
|
|
}
|
|
|
|
fnOnSetTargetListRowDblClick(objDblClickRowData: any) {
|
|
this.blnBtnDisabled = true;
|
|
document.body.style.cursor = "wait";
|
|
|
|
this.fnSetDataAndGuiEditMode(objDblClickRowData.data, objDblClickRowData.rowIndex);
|
|
|
|
document.body.style.cursor = "default";
|
|
this.blnBtnDisabled = false;
|
|
}
|
|
|
|
fnOnDgFilterRowEnableDisableClick() {
|
|
this.blnDgShowFilterRow = !this.blnDgShowFilterRow;
|
|
}
|
|
|
|
fnOnDgHeadeFilterEnableDisableClick() {
|
|
this.blnDgHeaderFilter = !this.blnDgHeaderFilter;
|
|
}
|
|
|
|
|
|
|
|
// @@@@@@@@@@@@@@@@@@@@@@ AREA=> FROM HTML BUTTON BAR Called Functions @@@@@@@@@@@@@@@@@@@@@@@@
|
|
|
|
async fnOnSaveButtonClick() {
|
|
this.blnBtnDisabled = true;
|
|
document.body.style.cursor = "wait";
|
|
this.fnDefaultView(false, true, true, false);
|
|
|
|
// Add or Update
|
|
try {
|
|
// Input Validation
|
|
this.fnInputValidation(this.mdlSetTarget);
|
|
|
|
// Input Data set
|
|
//....
|
|
|
|
// Set Save Request Inputs
|
|
let mdlReqSetTarget: MdlReqSetTarget = new MdlReqSetTarget();
|
|
mdlReqSetTarget.mdlSetTarget = JSON.parse(JSON.stringify(this.mdlSetTarget));
|
|
|
|
// Request Data Reset
|
|
//....
|
|
|
|
// Save Request
|
|
await this.insHttpService.post('Base/Organization/SaveSetTarget', mdlReqSetTarget)
|
|
.then((mdlResSetTarget: MdlResSetTarget) => {
|
|
if (mdlResSetTarget.sinStatus == 1) {
|
|
this.mdlSetTarget = mdlResSetTarget.mdlSetTarget;
|
|
if (this.intActiveSetTargetIndex == -1) {
|
|
// New Item
|
|
this.intActiveSetTargetIndex = this.lstMdlSetTarget.length;
|
|
this.lstMdlSetTarget.push(JSON.parse(JSON.stringify(this.mdlSetTarget)));
|
|
}
|
|
else {
|
|
// Update
|
|
this.lstMdlSetTarget[this.intActiveSetTargetIndex] = JSON.parse(JSON.stringify(this.mdlSetTarget));
|
|
//this.lstMdlSetTarget.splice(this.intActiveSetTargetIndex, 1, this.mdlSetTarget);
|
|
}
|
|
|
|
this.insGlobalConstants.fnSetSuccessMessage(mdlResSetTarget.strMessage);
|
|
} else {
|
|
this.insGlobalConstants.fnSetErrorMessage(mdlResSetTarget.strMessage, mdlResSetTarget.strSysError);
|
|
console.log(mdlResSetTarget);
|
|
}
|
|
})
|
|
.catch((err: any) => {
|
|
this.insGlobalConstants.fnSetErrorMessage(JSON.stringify(err));
|
|
});
|
|
|
|
} catch (ex: unknown) {
|
|
if (ex instanceof Error) {
|
|
//this.insGlobalConstants.strErrorMessages = ex.message;
|
|
this.insGlobalConstants.fnSetErrorMessage(ex.message);
|
|
}
|
|
console.log("Error->SETTARGET.COMPONENT.TS#002: " + ex);
|
|
}
|
|
|
|
this.fnDefaultView(false, false, true, false);
|
|
document.body.style.cursor = "default";
|
|
this.blnBtnDisabled = false;
|
|
}
|
|
|
|
fnOnNewButtonClick() {
|
|
this.blnBtnDisabled = true;
|
|
document.body.style.cursor = "wait";
|
|
|
|
this.fnDefaultView(true, true, true, false);
|
|
|
|
document.body.style.cursor = "default";
|
|
this.blnBtnDisabled = false;
|
|
}
|
|
|
|
async fnOnDeleteButtonClick() {
|
|
this.blnBtnDisabled = true;
|
|
document.body.style.cursor = "wait";
|
|
this.fnDefaultView(false, true, false, false);
|
|
|
|
// Delete
|
|
try {
|
|
|
|
// Input Validation
|
|
if (this.mdlSetTarget.binSetTargetId == null || this.mdlSetTarget.binSetTargetId < 1) {
|
|
throw new Error('Select SetTarget for DELETE.');
|
|
}
|
|
|
|
// Set Delete Request Inputs
|
|
let mdlReqSetTargetBaseIntId: MdlReqBaseIntId = new MdlReqBaseIntId();
|
|
mdlReqSetTargetBaseIntId.mdlBaseIntId.binPkId = this.mdlSetTarget.binSetTargetId;
|
|
mdlReqSetTargetBaseIntId.mdlBaseIntId.binCustomValue = this.mdlSetTarget.intSysActionId;
|
|
|
|
// Delete Request
|
|
await this.insHttpService.post('Base/Organization/DeleteSetTarget', mdlReqSetTargetBaseIntId)
|
|
.then((mdlResponse: MdlResponse) => {
|
|
if (mdlResponse.sinStatus == 1) {
|
|
this.lstMdlSetTarget.splice(this.intActiveSetTargetIndex, 1);
|
|
this.fnDefaultView(true, false, false, false);
|
|
this.insGlobalConstants.fnSetSuccessMessage(mdlResponse.strMessage);
|
|
} else {
|
|
this.insGlobalConstants.fnSetErrorMessage(mdlResponse.strMessage, mdlResponse.strSysError);
|
|
console.log(mdlResponse);
|
|
}
|
|
})
|
|
.catch((err: any) => {
|
|
this.insGlobalConstants.fnSetErrorMessage(JSON.stringify(err));
|
|
});
|
|
|
|
} catch (ex: unknown) {
|
|
if (ex instanceof Error) {
|
|
this.insGlobalConstants.fnSetErrorMessage(ex.message);
|
|
}
|
|
console.log("Error->SETTARGET.COMPONENT.TS#003: " + ex);
|
|
}
|
|
|
|
document.body.style.cursor = "default";
|
|
this.blnBtnDisabled = false;
|
|
}
|
|
|
|
|
|
|
|
|
|
// @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ AREA=> COMMON Functions @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
|
|
|
|
fnDefaultView(blnClearData: boolean = true, blnClearMessages: boolean = true, blnMoreDivExpanded: boolean = false, blnGotoBottom: boolean = false) {
|
|
if (blnClearData) {
|
|
this.mdlSetTarget = new MdlSetTarget();
|
|
this.intActiveSetTargetIndex = -1;
|
|
}
|
|
|
|
this.blnMoreDivExpanded = blnMoreDivExpanded;
|
|
|
|
if (blnClearMessages) {
|
|
this.insGlobalConstants.strErrorMessages = "";
|
|
this.insGlobalConstants.strSuccessMessages = "";
|
|
}
|
|
|
|
if (!blnGotoBottom)
|
|
this.insGlobalFunctions.fnWindowScrollTop();
|
|
else {
|
|
this.insGlobalFunctions.fnWindowScrollbottom();
|
|
}
|
|
}
|
|
|
|
fnSetDataAndGuiEditMode(mdlSetTarget: MdlSetTarget, intRowIndex: number) {
|
|
this.mdlSetTarget = JSON.parse(JSON.stringify(mdlSetTarget));
|
|
this.intActiveSetTargetIndex = intRowIndex;
|
|
this.fnDefaultView(false, true, true, false);
|
|
}
|
|
|
|
fnInputValidation(mdlSetTarget: MdlSetTarget) {
|
|
// ??? CHECK
|
|
|
|
if (mdlSetTarget.binFinancialYearId == 0) {
|
|
throw new Error('Enter/Select Financial Year.');
|
|
}
|
|
|
|
|
|
// ??? CHECK CODE and NAME [Other UNIQUE Fields] Already exists
|
|
}
|
|
|
|
|