246 lines
9.0 KiB
C#
246 lines
9.0 KiB
C#
using _0_Framework.Application;
|
|
using _0_Framework.Excel.EmployeeBankInfo;
|
|
using CompanyManagment.App.Contracts.Bank;
|
|
using CompanyManagment.App.Contracts.Employee;
|
|
using CompanyManagment.App.Contracts.EmployeeBankInformation;
|
|
using CompanyManagment.App.Contracts.Workshop;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.AspNetCore.Mvc.RazorPages;
|
|
using System.Security.Claims;
|
|
|
|
namespace ServiceHost.Areas.Client.Pages.Company.EmployeesBankInfo
|
|
{
|
|
[Authorize]
|
|
public class IndexModel : PageModel
|
|
{
|
|
private readonly IPasswordHasher _passwordHasher;
|
|
private readonly IWorkshopApplication _workshopApplication;
|
|
private readonly IEmployeeApplication _employeeApplication;
|
|
private readonly IEmployeeBankInformationApplication _employeeBankInformationApplication;
|
|
private readonly IBankApplication _bankApplication;
|
|
private readonly IHttpContextAccessor _contextAccessor;
|
|
private readonly IAuthHelper _authHelper;
|
|
|
|
private readonly long _workshopId;
|
|
public string WorkshopFullName;
|
|
public int PageIndex = 0;
|
|
private readonly IWebHostEnvironment _hostEnvironment;
|
|
|
|
|
|
public IndexModel(IPasswordHasher passwordHasher, IWorkshopApplication workshopApplication, IHttpContextAccessor contextAccessor, IAuthHelper authHelper, IEmployeeBankInformationApplication employeeBankInformationApplication, IEmployeeApplication employeeApplication, IBankApplication bankApplication, IWebHostEnvironment hostEnvironment)
|
|
{
|
|
_passwordHasher = passwordHasher;
|
|
_workshopApplication = workshopApplication;
|
|
_contextAccessor = contextAccessor;
|
|
_authHelper = authHelper;
|
|
_employeeBankInformationApplication = employeeBankInformationApplication;
|
|
_employeeApplication = employeeApplication;
|
|
_bankApplication = bankApplication;
|
|
_hostEnvironment = hostEnvironment;
|
|
|
|
var workshopHash = _contextAccessor.HttpContext?.User.FindFirstValue("WorkshopSlug");
|
|
_workshopId = _passwordHasher.SlugDecrypt(workshopHash);
|
|
|
|
if (_workshopId < 1)
|
|
throw new InvalidDataException("اختلال در کارگاه");
|
|
}
|
|
|
|
public void OnGet()
|
|
{
|
|
var workshop = _workshopApplication.GetWorkshopInfo(_workshopId);
|
|
WorkshopFullName = workshop.WorkshopFullName;
|
|
}
|
|
|
|
public IActionResult OnGetEmployeeListAjax()
|
|
{
|
|
var resultData = _employeeApplication.GetWorkingEmployeesByWorkshopId(_workshopId);
|
|
return new JsonResult(new
|
|
{
|
|
success = true,
|
|
data = resultData,
|
|
});
|
|
}
|
|
|
|
public IActionResult OnGetEmployeeBankInfoListAjax(EmployeeBankInformationSearchModel searchModel)
|
|
{
|
|
var resultData = _employeeBankInformationApplication.Search(_workshopId, searchModel);
|
|
return new JsonResult(new
|
|
{
|
|
success = true,
|
|
data = resultData,
|
|
});
|
|
}
|
|
|
|
public IActionResult OnGetBankListAjax()
|
|
{
|
|
var resultData = _bankApplication.Search("");
|
|
return new JsonResult(new
|
|
{
|
|
success = true,
|
|
data = resultData,
|
|
});
|
|
}
|
|
|
|
public IActionResult OnPostSetDefault(long bankId)
|
|
{
|
|
var result = _employeeBankInformationApplication.SetDefault(_workshopId, bankId);
|
|
return new JsonResult(new
|
|
{
|
|
success = result.IsSuccedded,
|
|
message = result.Message,
|
|
id = result.SendId
|
|
});
|
|
}
|
|
|
|
public IActionResult OnGetDetails(long employeeId)
|
|
{
|
|
var command = _employeeBankInformationApplication.GetByEmployeeId(_workshopId, employeeId);
|
|
return Partial("DetailsBankInfoModal", command);
|
|
//return Partial("DetailsBankInfoModal");
|
|
}
|
|
|
|
public IActionResult OnGetDetailsAjax(long employeeId)
|
|
{
|
|
var resultData = _employeeBankInformationApplication.GetByEmployeeId(_workshopId, employeeId);
|
|
return new JsonResult(new
|
|
{
|
|
success = true,
|
|
data = resultData
|
|
});
|
|
}
|
|
|
|
public IActionResult OnGetCreate()
|
|
{
|
|
var command = new CreateEmployeeInformation()
|
|
{
|
|
WorkshopId = _workshopId,
|
|
};
|
|
return Partial("CreateBankInfoModal", command);
|
|
}
|
|
|
|
public IActionResult OnPostCreate(CreateEmployeeInformation command)
|
|
{
|
|
command.WorkshopId = _workshopId;
|
|
if(!string.IsNullOrWhiteSpace(command.CardNumber))
|
|
command.CardNumber = command.CardNumber.Replace("-", "");
|
|
|
|
if (!string.IsNullOrWhiteSpace(command.ShebaNumber))
|
|
command.ShebaNumber = command.ShebaNumber.Replace("-", "");
|
|
|
|
var result = _employeeBankInformationApplication.Create(command);
|
|
return new JsonResult(new
|
|
{
|
|
success = result.IsSuccedded,
|
|
message = result.Message,
|
|
id = result.SendId
|
|
});
|
|
}
|
|
|
|
public IActionResult OnPostGroupCreate(List<CreateEmployeeInformation> command)
|
|
{
|
|
var result = _employeeBankInformationApplication.GroupCreate(_workshopId, command);
|
|
return new JsonResult(new
|
|
{
|
|
success = result.IsSuccedded,
|
|
message = result.Message,
|
|
id = result.SendId
|
|
});
|
|
}
|
|
|
|
//public IActionResult OnGetEdit(long id)
|
|
//{
|
|
// var dataBankInfo = _employeeBankInformationApplication.GetDetails(id);
|
|
// var command = new EditEmployeeInformation()
|
|
// {
|
|
// Id = dataBankInfo.Id,
|
|
// WorkshopId = _workshopId,
|
|
// EmployeeId = dataBankInfo.EmployeeId,
|
|
// EmployeeName = dataBankInfo.EmployeeName,
|
|
// BankAccountNumber = dataBankInfo.BankAccountNumber,
|
|
// CardNumber = dataBankInfo.CardNumber,
|
|
// ShebaNumber = dataBankInfo.ShebaNumber
|
|
// };
|
|
// return Partial("EditBankInfoModal", command);
|
|
//}
|
|
|
|
public IActionResult OnPostEdit(EditEmployeeInformation command)
|
|
{
|
|
command.WorkshopId = _workshopId;
|
|
if (!string.IsNullOrWhiteSpace(command.CardNumber))
|
|
command.CardNumber = command.CardNumber.Replace("-", "");
|
|
|
|
if (!string.IsNullOrWhiteSpace(command.ShebaNumber))
|
|
command.ShebaNumber = command.ShebaNumber.Replace("-", "");
|
|
|
|
var result = _employeeBankInformationApplication.Edit(command);
|
|
return new JsonResult(new
|
|
{
|
|
success = result.IsSuccedded,
|
|
message = result.Message,
|
|
});
|
|
}
|
|
|
|
public IActionResult OnPostDeleteByEmployeeId(long employeeId)
|
|
{
|
|
var result = _employeeBankInformationApplication.RemoveByEmployeeId(_workshopId, employeeId);
|
|
return new JsonResult(new
|
|
{
|
|
success = result.IsSuccedded,
|
|
message = result.Message,
|
|
});
|
|
}
|
|
|
|
public IActionResult OnPostDelete(long id)
|
|
{
|
|
var result = _employeeBankInformationApplication.Remove(id);
|
|
return new JsonResult(new
|
|
{
|
|
success = result.IsSuccedded,
|
|
message = result.Message,
|
|
});
|
|
}
|
|
|
|
public IActionResult OnGetShowPicture(string filePath)
|
|
{
|
|
if (string.IsNullOrEmpty(filePath))
|
|
return NotFound();
|
|
|
|
var path = Path.Combine(_hostEnvironment.ContentRootPath, filePath);
|
|
|
|
if (!System.IO.File.Exists(path))
|
|
return NotFound();
|
|
|
|
|
|
var contentType = Tools.GetContentTypeImage(Path.GetExtension(path));
|
|
return PhysicalFile(path, contentType);
|
|
}
|
|
|
|
public IActionResult OnGetDownloadExcelAll(string idList)
|
|
{
|
|
var ids = idList.ExtractNumbers();
|
|
|
|
var employeeBankInformationViewModelForExcels = _employeeBankInformationApplication.SearchForExcel(_workshopId,
|
|
new EmployeeBankInformationSearchModel() { EmployeeBankInfoIds = ids });
|
|
|
|
var resultViewModel = employeeBankInformationViewModelForExcels.Select(x=>new EmployeeBankInfoExcelViewModel
|
|
{
|
|
Name = x.EmployeeName,
|
|
BankAccounts = x.BankInformationList.Select(b=>new BankInfoExcelViewModel()
|
|
{
|
|
IsDefault = b.IsDefault,
|
|
ShebaNumber = b.ShebaNumber,
|
|
AccountNumber = b.BankAccountNumber,
|
|
BankName = b.BankName,
|
|
CardNumber = b.CardNumber
|
|
}).ToList()
|
|
}).ToList();
|
|
|
|
var bytes = EmployeeBankInfoExcelGenerator.Generate(resultViewModel);
|
|
return File(bytes,
|
|
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
|
$"اطلاعات بانکی پرسنل.xlsx");
|
|
}
|
|
}
|
|
}
|