Project

General

Profile

Feature #268 » 5-TsFile.ts

Junaid M, 03/07/2024 06:09 PM

 
???File Path
==========
***...\ClientApp\srcpp\src\corporate\corporate-booking-rule\corporate-booking-rule.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 { MdlCorporateBookingRule, MdlReqCorporateBookingRule, MdlResCorporateBookingRule, MdlResCorporateBookingRuleInit, MdlResCorporateBookingRuleList } from '../../../models/corporate/corporate.model';
import { MdlResponse, MdlBaseIntId, MdlReqBaseIntId } from "../../../models/common.model";
import { HttpService } from '../../../services/http.service';


// ??? Check and Use If you need...
//---------------------------------
export class CorporateBookingRuleComponent implements OnInit, AfterViewInit, OnDestroy {
// ** initialize data
public mdlCorporateBookingRule: MdlCorporateBookingRule = new MdlCorporateBookingRule();
public intActiveCorporateBookingRuleIndex: number = -1;
// ** Select and Auto-completion
// ??? Remove not use items !!!
lstMdlCustomerBaseIntId: MdlBaseIntId[] = [];

// ** GUI Control
public blnBtnDisabled: boolean = false;
public blnMoreDivExpanded: boolean = false;
// ** CorporateBookingRule List
@ViewChild('#idDgCorporateBookingRuleList') idDgCorporateBookingRuleList!: DxDataGridComponent;
public lstAllCorporateBookingRule: MdlCorporateBookingRule[] = [];
public blnDgCorporateBookingRuleShowFilterRow: boolean = false;
public blnDgCorporateBookingRuleHeaderFilter: boolean = false;
public intActiveCorporateBookingRuleListItemIndex = -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 = 'corporateBookingRule';
// ??? Check menu service !!!
insGlobalConstants.strSysModuleName = "CORPORATEBOOKINGRULE_MASTER";
insGlobalFunctions.fnSetGuiBasedBrowserTitle("CorporateBookingRule");
}

ngOnInit(): void {
this.blnBtnDisabled = true;
document.body.style.cursor = "wait";

this.fnDefaultView();

// initialize Data Request
this.insHttpService.get('Base/Organization/GetCorporateBookingRuleInitializeData')
.then((mdlResCorporateBookingRuleInit: MdlResCorporateBookingRuleInit) => {
if (mdlResCorporateBookingRuleInit.sinStatus == 1) {
this.lstMdlCorporateBookingRule = mdlResCorporateBookingRuleInit.lstMdlCorporateBookingRule;

// ??? Remove not use items !!!
this.lstMdlCustomerBaseIntId = mdlResCorporateBookingRuleInit.lstMdlCustomerBaseIntId;

} else {
console.log(mdlResCorporateBookingRuleInit.strMessage + " => " + mdlResCorporateBookingRuleInit.strErrorCode + ' -> ' + mdlResCorporateBookingRuleInit.strSysError);
}
})
.catch((err: any) => {
console.log("Error->CORPORATEBOOKINGRULE.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 @@@@@@@@@@@@@@@@@@@@@@@@

fnOnCorporateBookingRuleListEditButtonClick(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;
}

fnOnCorporateBookingRuleListRowDblClick(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.mdlCorporateBookingRule);

// Input Data set
//....

// Set Save Request Inputs
let mdlReqCorporateBookingRule: MdlReqCorporateBookingRule = new MdlReqCorporateBookingRule();
mdlReqCorporateBookingRule.mdlCorporateBookingRule = JSON.parse(JSON.stringify(this.mdlCorporateBookingRule));

// Request Data Reset
//....

// Save Request
await this.insHttpService.post('Base/Organization/SaveCorporateBookingRule', mdlReqCorporateBookingRule)
.then((mdlResCorporateBookingRule: MdlResCorporateBookingRule) => {
if (mdlResCorporateBookingRule.sinStatus == 1) {
this.mdlCorporateBookingRule = mdlResCorporateBookingRule.mdlCorporateBookingRule;
if (this.intActiveCorporateBookingRuleIndex == -1) {
// New Item
this.intActiveCorporateBookingRuleIndex = this.lstMdlCorporateBookingRule.length;
this.lstMdlCorporateBookingRule.push(JSON.parse(JSON.stringify(this.mdlCorporateBookingRule)));
}
else {
// Update
this.lstMdlCorporateBookingRule[this.intActiveCorporateBookingRuleIndex] = JSON.parse(JSON.stringify(this.mdlCorporateBookingRule));
//this.lstMdlCorporateBookingRule.splice(this.intActiveCorporateBookingRuleIndex, 1, this.mdlCorporateBookingRule);
}

this.insGlobalConstants.fnSetSuccessMessage(mdlResCorporateBookingRule.strMessage);
} else {
this.insGlobalConstants.fnSetErrorMessage(mdlResCorporateBookingRule.strMessage, mdlResCorporateBookingRule.strSysError);
console.log(mdlResCorporateBookingRule);
}
})
.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->CORPORATEBOOKINGRULE.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.mdlCorporateBookingRule.binCorporateBookingRuleId == null || this.mdlCorporateBookingRule.binCorporateBookingRuleId < 1) {
throw new Error('Select CorporateBookingRule for DELETE.');
}

// Set Delete Request Inputs
let mdlReqCorporateBookingRuleBaseIntId: MdlReqBaseIntId = new MdlReqBaseIntId();
mdlReqCorporateBookingRuleBaseIntId.mdlBaseIntId.binPkId = this.mdlCorporateBookingRule.binCorporateBookingRuleId;
mdlReqCorporateBookingRuleBaseIntId.mdlBaseIntId.binCustomValue = this.mdlCorporateBookingRule.intSysActionId;
// Delete Request
await this.insHttpService.post('Base/Organization/DeleteCorporateBookingRule', mdlReqCorporateBookingRuleBaseIntId)
.then((mdlResponse: MdlResponse) => {
if (mdlResponse.sinStatus == 1) {
this.lstMdlCorporateBookingRule.splice(this.intActiveCorporateBookingRuleIndex, 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->CORPORATEBOOKINGRULE.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.mdlCorporateBookingRule = new MdlCorporateBookingRule();
this.intActiveCorporateBookingRuleIndex = -1;
}

this.blnMoreDivExpanded = blnMoreDivExpanded;

if (blnClearMessages) {
this.insGlobalConstants.strErrorMessages = "";
this.insGlobalConstants.strSuccessMessages = "";
}
if (!blnGotoBottom)
this.insGlobalFunctions.fnWindowScrollTop();
else {
this.insGlobalFunctions.fnWindowScrollbottom();
}
}

fnSetDataAndGuiEditMode(mdlCorporateBookingRule: MdlCorporateBookingRule, intRowIndex: number) {
this.mdlCorporateBookingRule = JSON.parse(JSON.stringify(mdlCorporateBookingRule));
this.intActiveCorporateBookingRuleIndex = intRowIndex;
this.fnDefaultView(false, true, true, false);
}

fnInputValidation(mdlCorporateBookingRule: MdlCorporateBookingRule) {
// ??? CHECK
if (mdlCorporateBookingRule.strRuleName == "") {
throw new Error('Enter/Select Rule Name.');
}

// ??? CHECK CODE and NAME [Other UNIQUE Fields] Already exists
}

(5-5/10)