Profile generated letter

This commit is contained in:
mashfiq 2025-01-16 18:23:03 +06:00
parent 2d28fb9ac5
commit 558c53d4d3
3 changed files with 63 additions and 69 deletions

View File

@ -13,7 +13,7 @@ export class ApiService {
public isSSO = false; public isSSO = false;
public versionDeployement = false; public versionDeployement = false;
public versionNumber = `V-${GlobalfunctionExtension.generateVersionNumber(new Date(2025, 0, 9))}-`+"01"; public versionNumber = `V-${GlobalfunctionExtension.generateVersionNumber(new Date(2025, 0, 16))}-`+"01";
public static BASE_URL = ''; public static BASE_URL = '';
public base_url = ''; public base_url = '';
// public currentLink = ''; // public currentLink = '';

View File

@ -97,24 +97,32 @@ export class EmployeeProfileReportsComponent implements OnInit {
preview(reportType: string) { preview(reportType: string) {
debugger; debugger;
if (this.selectedEmployee == undefined || this.selectedEmployee == null) {
this.notificationService.showWarning('Please Select and employee!!');
return;
}
if (this.selectedreportType == undefined || this.selectedreportType['value'] == null) {
this.notificationService.showWarning('Please select a report!!');
return;
}
const data = { const data = {
reportID: this.selectedreportType['value'], reportID: this.selectedreportType['value'],
personID: this.authorizedPerson.id, personID: this.authorizedPerson != null ? this.authorizedPerson.id : 0,
employeeID: this.selectedEmployee.employeeID, employeeID: this.selectedEmployee.employeeID,
reportType: reportType == 'Download' ? 'PDF' : reportType reportType: reportType == 'Download' ? 'PDF' : reportType
}; };
switch(this.selectedreportType['value']){ switch (this.selectedreportType['value']) {
case EnumProfileReportType.Print_CV: case EnumProfileReportType.Print_CV:
this.PDFTitle = EnumExtension.getName(EnumProfileReportType, EnumProfileReportType.Print_CV); this.PDFTitle = this.selectedEmployee.employeeNo + '-' + EnumExtension.getName(EnumProfileReportType, EnumProfileReportType.Print_CV);
break; break;
case EnumProfileReportType.Appointment_Letter_Officer: case EnumProfileReportType.Appointment_Letter_Officer:
this.PDFTitle = EnumExtension.getName(EnumProfileReportType, EnumProfileReportType.Appointment_Letter_Officer); this.PDFTitle = this.selectedEmployee.employeeNo + '-' + EnumExtension.getName(EnumProfileReportType, EnumProfileReportType.Appointment_Letter_Officer);
break; break;
case EnumProfileReportType.Appointment_Letter_Staff: case EnumProfileReportType.Appointment_Letter_Staff:
this.PDFTitle = EnumExtension.getName(EnumProfileReportType, EnumProfileReportType.Appointment_Letter_Staff); this.PDFTitle = this.selectedEmployee.employeeNo + '-' + EnumExtension.getName(EnumProfileReportType, EnumProfileReportType.Appointment_Letter_Staff);
break; break;
case EnumProfileReportType.Appointment_Letter_Worker: case EnumProfileReportType.Appointment_Letter_Worker:
this.PDFTitle = EnumExtension.getName(EnumProfileReportType, EnumProfileReportType.Appointment_Letter_Worker); this.PDFTitle = this.selectedEmployee.employeeNo + '-' + EnumExtension.getName(EnumProfileReportType, EnumProfileReportType.Appointment_Letter_Worker);
break; break;
} }
@ -134,9 +142,9 @@ export class EmployeeProfileReportsComponent implements OnInit {
} }
this.loadingPanel.ShowLoadingPanel = false; this.loadingPanel.ShowLoadingPanel = false;
}, },
(err) => { (err: any) => {
this.closeForm(); this.closeForm();
console.log(err); // console.log(err);
this.notificationService.showError(err.error); this.notificationService.showError(err.error);
this.loadingPanel.ShowLoadingPanel = false; this.loadingPanel.ShowLoadingPanel = false;
} }
@ -144,25 +152,29 @@ export class EmployeeProfileReportsComponent implements OnInit {
} }
else { else {
this.reportService.getGeneratedProfileReportData(data).subscribe(fileData => { this.reportService.getGeneratedProfileReportData(data).subscribe(fileData => {
this.loadingPanel.ShowLoadingPanel = false;
if (reportType == 'PDF') { if (reportType == 'PDF') {
var element = <HTMLIFrameElement>(document.getElementById("pdf-viewer-report")); var element = <HTMLIFrameElement>(document.getElementById("pdf-viewer-report"));
element.src = URL.createObjectURL(new Blob([fileData], { type: 'application/pdf' })); element.src = URL.createObjectURL(new Blob([fileData], { type: 'application/pdf' }));
} }
this.loadingPanel.ShowLoadingPanel = false; if (reportType == 'Download')
this.downloadBlob(new Blob([fileData], { type: 'application/pdf' }), 'application/pdf', this.PDFTitle);
// if (reportType == 'download')
// this.downloadBlob(new Blob([fileData], { type: 'application/pdf' }), 'application/pdf', dataItem.employeeNo + "-" + dataItem.name + "_" + dataItem.year.toString() + "_" + 'Promotion Letter');
// this.loadingPanelService.ShowLoadingPanel = false;
}, },
(error) => { (error) => {
this.closeForm(); this.closeForm();
console.log(error);
this.notificationService.showError(error.error); this.notificationService.showError(error.error);
this.loadingPanel.ShowLoadingPanel = false;
}); });
} }
} }
downloadFile(blobContent) { downloadFile(blobContent) {
//EXCEL
// let blob = new Blob([this.b64toBlob(blobContent, 'application/data:application/vnd.ms-excel', 1024)], {}); // let blob = new Blob([this.b64toBlob(blobContent, 'application/data:application/vnd.ms-excel', 1024)], {});
// saveAs(blob, this.PDFTitle + '.xls'); // saveAs(blob, this.PDFTitle + '.xls');
//PDF
let blob = new Blob([this.b64toBlob(blobContent, 'application/pdf', 1024)], {}); let blob = new Blob([this.b64toBlob(blobContent, 'application/pdf', 1024)], {});
saveAs(blob, this.PDFTitle + '.pdf'); saveAs(blob, this.PDFTitle + '.pdf');
} }
@ -186,6 +198,21 @@ export class EmployeeProfileReportsComponent implements OnInit {
return blob; return blob;
} }
private downloadBlob(data: any, type: string, fileName: string): void {
const blob: Blob = new Blob([data], { type: type });
// const fileName: string = this.workOrderBillReceive.UploadAttachment[0].OriginalFileName;
// const fileName: string = fileName;
const objectUrl: string = URL.createObjectURL(blob);
const a: HTMLAnchorElement = document.createElement('a') as HTMLAnchorElement;
a.href = objectUrl;
a.download = fileName;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
URL.revokeObjectURL(objectUrl);
}
public loadAuthorizedPerson() { public loadAuthorizedPerson() {
this.employeeService.getAuthorizedPerson().subscribe( this.employeeService.getAuthorizedPerson().subscribe(
(resp) => { (resp) => {

View File

@ -1733,40 +1733,8 @@ namespace HRM.UI.Controllers.Report
bytes = new rptEmployee().GetAsstOfficeAndAbove(employeeID, payrollTypeId, reportType); bytes = new rptEmployee().GetAsstOfficeAndAbove(employeeID, payrollTypeId, reportType);
break; break;
case EnumProfileReportType.Appointment_Letter_Worker: case EnumProfileReportType.Appointment_Letter_Worker:
ltemplate.SetObjectID(FixedLetterTemplte.Worker_Appointment_Letter);
ltemplate.ID = 3;
ltemplate.Description = "Letter Template Worker";
ltemplate.Subject = "Letter Template Worker";
ltemplate.Type = EnumDocType.Desktop_Letter;
ltemplate.TypeID = (int)EnumDocType.Desktop_Letter;
string downloadPath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + @"\Downloads";
string lFileName = "Worker.doc";
string sFilePath = new rptEmployee().Generate(ltemplate, employeeID, payrollTypeId, downloadPath, lFileName);
byte[] buffer = new byte[16 * 1024];
buffer = System.IO.File.ReadAllBytes(sFilePath);
string contentType = GetFileType(sFilePath);
var name = System.IO.Path.ChangeExtension(lFileName, ".pdf");
if (System.IO.File.Exists(sFilePath))
{
System.IO.File.Delete(sFilePath);
}
return File(buffer, contentType, name);
break; break;
case EnumProfileReportType.Appointment_Letter_Staff: case EnumProfileReportType.Appointment_Letter_Staff:
ltemplate.SetObjectID(FixedLetterTemplte.Staff_Appointment_Letter);
ltemplate.ID = 2;
ltemplate.Description = "Letter Template Staff";
ltemplate.Subject = "Letter Template Staff";
ltemplate.Type = EnumDocType.Desktop_Letter;
ltemplate.TypeID = (int)EnumDocType.Desktop_Letter;
new rptEmployee().Generate(ltemplate, employeeID, payrollTypeId, "C:\\Users\\mashfiq.EASE\\Downloads", "Staff.doc");
break; break;
default: default:
break; break;
@ -1804,17 +1772,12 @@ namespace HRM.UI.Controllers.Report
try try
{ {
//string downloadPath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + @"\Downloads";
string downloadPath = System.Environment.CurrentDirectory + "\\Documents\\LetterTempFolder\\";
string sFilePath = string.Empty, lFileName = string.Empty;
switch (reportid) switch (reportid)
{ {
//case EnumProfileReportType.Print_CV:
// bytes = new rptEmployee().GetEmployeeCV(employeeID, payrollTypeId, reportType);
// break;
//case EnumProfileReportType.Employee_Service_Book:
// break;
//case EnumProfileReportType.Appointment_Letter_Officer:
// bytes = new rptEmployee().GetAsstOfficeAndAbove(employeeID, payrollTypeId, reportType);
// break;
case EnumProfileReportType.Appointment_Letter_Worker: case EnumProfileReportType.Appointment_Letter_Worker:
ltemplate.SetObjectID(FixedLetterTemplte.Worker_Appointment_Letter); ltemplate.SetObjectID(FixedLetterTemplte.Worker_Appointment_Letter);
@ -1824,21 +1787,9 @@ namespace HRM.UI.Controllers.Report
ltemplate.Type = EnumDocType.Desktop_Letter; ltemplate.Type = EnumDocType.Desktop_Letter;
ltemplate.TypeID = (int)EnumDocType.Desktop_Letter; ltemplate.TypeID = (int)EnumDocType.Desktop_Letter;
string downloadPath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + @"\Downloads"; lFileName = "Worker.doc";
string lFileName = "Worker.doc";
string sFilePath = new rptEmployee().Generate(ltemplate, employeeID, payrollTypeId, downloadPath, lFileName); sFilePath = new rptEmployee().Generate(ltemplate, employeeID, payrollTypeId, downloadPath, lFileName);
byte[] buffer = new byte[16 * 1024];
buffer = System.IO.File.ReadAllBytes(sFilePath);
string contentType = GetFileType(sFilePath);
var name = System.IO.Path.ChangeExtension(lFileName, ".pdf");
if (System.IO.File.Exists(sFilePath))
{
System.IO.File.Delete(sFilePath);
}
return File(buffer, contentType, name);
break; break;
case EnumProfileReportType.Appointment_Letter_Staff: case EnumProfileReportType.Appointment_Letter_Staff:
ltemplate.SetObjectID(FixedLetterTemplte.Staff_Appointment_Letter); ltemplate.SetObjectID(FixedLetterTemplte.Staff_Appointment_Letter);
@ -1849,12 +1800,28 @@ namespace HRM.UI.Controllers.Report
ltemplate.Type = EnumDocType.Desktop_Letter; ltemplate.Type = EnumDocType.Desktop_Letter;
ltemplate.TypeID = (int)EnumDocType.Desktop_Letter; ltemplate.TypeID = (int)EnumDocType.Desktop_Letter;
new rptEmployee().Generate(ltemplate, employeeID, payrollTypeId, "C:\\Users\\mashfiq.EASE\\Downloads", "Staff.doc"); lFileName = "Staff.doc";
sFilePath = new rptEmployee().Generate(ltemplate, employeeID, payrollTypeId, downloadPath, lFileName);
break; break;
default: default:
break; break;
} }
byte[] buffer = new byte[16 * 1024];
buffer = System.IO.File.ReadAllBytes(sFilePath);
string contentType = GetFileType(sFilePath);
var name = System.IO.Path.ChangeExtension(lFileName, ".pdf");
if (System.IO.File.Exists(sFilePath))
{
System.IO.File.Delete(sFilePath);
}
if (System.IO.File.Exists(System.IO.Path.ChangeExtension(sFilePath, ".doc")))
{
System.IO.File.Delete(System.IO.Path.ChangeExtension(sFilePath, ".doc"));
}
return File(buffer, contentType, name);
} }
catch (Exception e) catch (Exception e)
{ {