You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
146 lines
3.6 KiB
TypeScript
146 lines
3.6 KiB
TypeScript
import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';
|
|
import { MatSort, Sort } from '@angular/material/sort';
|
|
import { MatTableDataSource } from '@angular/material/table';
|
|
import { ActivatedRoute, Router } from '@angular/router';
|
|
import { apiUrl } from 'src/app/_providers/_resources/api-url.properties';
|
|
import { MasterService } from 'src/app/_providers/_services/master.service';
|
|
import { UiService } from 'src/app/_providers/_services/ui.service';
|
|
|
|
@Component({
|
|
selector: 'app-payment-details',
|
|
templateUrl: './payment-details.component.html',
|
|
styleUrls: ['./payment-details.component.scss']
|
|
})
|
|
export class PaymentDetailsComponent implements OnInit {
|
|
|
|
|
|
title = 'Payment Details';
|
|
|
|
today: Date = new Date();
|
|
|
|
@ViewChild('table', { static: false }) table: ElementRef;
|
|
|
|
@ViewChild(MatSort, { static: false }) sort: MatSort;
|
|
|
|
displaycolumns: string[] = ['slNo', 'name', 'mobileNumber', 'email', 'transId', 'Paymentstatus'];
|
|
|
|
dataSource: MatTableDataSource<unknown>;
|
|
|
|
tenderId: number;
|
|
|
|
headerData: any;
|
|
|
|
tableData: any;
|
|
|
|
tenderInputId: any;
|
|
|
|
|
|
paymentStatus: any;
|
|
userId: string;
|
|
|
|
constructor(
|
|
private _router: Router,
|
|
private _masterService: MasterService,
|
|
private route: ActivatedRoute,
|
|
private _ui:UiService,
|
|
) {
|
|
this.tenderId = +this.route.snapshot.paramMap.get('id');
|
|
}
|
|
|
|
ngOnInit(): void {
|
|
this.getHeaderData(this.tenderId);
|
|
this.getTableData(this.tenderId);
|
|
}
|
|
|
|
getHeaderData(id) {
|
|
this._masterService.getMasterDatabyId(apiUrl.getTender, id).then(res => {
|
|
this.headerData = res;
|
|
|
|
this.tenderInputId = res.tenderId
|
|
})
|
|
}
|
|
|
|
getTableData(id) {
|
|
this._masterService.getMasterDatabyId(apiUrl.bidReport, id).then(res => {
|
|
console.log("res",res);
|
|
|
|
this.tableData = res.report
|
|
this.tableData.forEach(element => {
|
|
if (element.status === 'P') {
|
|
element.paymentStatus = 'P';
|
|
}
|
|
if(element.status === 'S'){
|
|
element.paymentStatus = 'S';
|
|
}
|
|
if(element.status === 'D'){
|
|
element.paymentStatus = 'D';
|
|
}
|
|
});
|
|
|
|
this.tableData.sort((a, b) => {
|
|
if (a.status === 'P' && b.status !== 'P') {
|
|
return -1;
|
|
} else if (a.status !== 'P' && b.status === 'P') {
|
|
return 1;
|
|
} else {
|
|
return 0;
|
|
}
|
|
});
|
|
|
|
this.dataSource = new MatTableDataSource(this.tableData);
|
|
this.dataSource.sort = this.sort;
|
|
})
|
|
}
|
|
|
|
navigateTo(destination) {
|
|
this._router.navigate([destination])
|
|
}
|
|
|
|
backButton() {
|
|
this.navigateTo('/dashboard')
|
|
// this.backClick.emit()
|
|
}
|
|
|
|
sortData(sort: Sort) {}
|
|
|
|
onPaymentStatusChange(userId, paymentStatus){
|
|
console.log("this.paymentStatus",paymentStatus);
|
|
let message = '';
|
|
if (paymentStatus === 'S') {
|
|
message = 'Payment confirmed message';
|
|
} else if (paymentStatus === 'D') {
|
|
message = 'Payment declined message';
|
|
}
|
|
|
|
let body = {
|
|
status : paymentStatus,
|
|
notificationViewed:'N',
|
|
message:message
|
|
}
|
|
this._masterService.postMasterData(apiUrl.paymentupdatePaymentStatus,body,`${userId}/${this.tenderId}`).then((res) =>{
|
|
console.log(res);
|
|
this._ui.toastMessage(res.data)
|
|
|
|
},err=>{
|
|
this._ui.toastMessage(err.error.message);
|
|
|
|
|
|
})
|
|
}
|
|
|
|
ConfirmMail(userName,email){
|
|
// console.log("this is for userName",userName);
|
|
// console.log("this is for email",email);
|
|
let body ={
|
|
custName:userName,
|
|
email: email
|
|
}
|
|
this._masterService.saveMasterData(apiUrl.confirmPayment,body).then((res) =>{
|
|
console.log(res);
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|