209 lines
7.8 KiB
C#
209 lines
7.8 KiB
C#
using _0_Framework.Application;
|
|
using CompanyManagment.App.Contracts.CustomizeCheckout;
|
|
using CompanyManagment.App.Contracts.Employee;
|
|
using CompanyManagment.App.Contracts.Workshop;
|
|
using CompanyManagment.App.Contracts.YearlySalary;
|
|
using CompanyManagment.Application;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.AspNetCore.Mvc.RazorPages;
|
|
using System.Security.Claims;
|
|
using System.Text.RegularExpressions;
|
|
using _0_Framework.Infrastructure;
|
|
using CompanyManagment.App.Contracts.Bank;
|
|
using Microsoft.Extensions.Configuration.UserSecrets;
|
|
|
|
namespace ServiceHost.Areas.Client.Pages.Company.CustomizeCheckout
|
|
{
|
|
[NeedsPermission(SubAccountPermissionHelper.CustomizeCheckoutTempListPermissionCode)]
|
|
public class CheckoutTemporaryModel : PageModel
|
|
{
|
|
private readonly IWorkshopApplication _workshopApplication;
|
|
private readonly IEmployeeApplication _employeeApplication;
|
|
private readonly IYearlySalaryApplication _yearlySalaryApplication;
|
|
private readonly ICustomizeCheckoutTempApplication _customizeCheckoutTempApplication;
|
|
private readonly IBankApplication _bankApplication;
|
|
private readonly IPasswordHasher _passwordHasher;
|
|
private readonly IHttpContextAccessor _httpContextAccessor;
|
|
private readonly IAuthHelper _authHelper;
|
|
|
|
private readonly long _workshopId;
|
|
public string WorkshopFullName;
|
|
public SearchCustomizeCheckout SearchModel;
|
|
public List<CustomizeCheckoutViewModel> CustomizeCheckouts;
|
|
public List<string> YearlyList;
|
|
|
|
|
|
public CheckoutTemporaryModel(IWorkshopApplication workshopApplication, IHttpContextAccessor httpContextAccessor, IYearlySalaryApplication yearlySalaryApplication, IPasswordHasher passwordHasher, ICustomizeCheckoutTempApplication customizeCheckoutTempApplication, IEmployeeApplication employeeApplication, IBankApplication bankApplication, IAuthHelper authHelper)
|
|
{
|
|
_workshopApplication = workshopApplication;
|
|
_httpContextAccessor = httpContextAccessor;
|
|
_yearlySalaryApplication = yearlySalaryApplication;
|
|
_passwordHasher = passwordHasher;
|
|
_customizeCheckoutTempApplication = customizeCheckoutTempApplication;
|
|
_employeeApplication = employeeApplication;
|
|
_bankApplication = bankApplication;
|
|
_authHelper = authHelper;
|
|
|
|
var workshopHash = _httpContextAccessor.HttpContext?.User.FindFirstValue("WorkshopSlug");
|
|
_workshopId = _passwordHasher.SlugDecrypt(workshopHash);
|
|
|
|
if (_workshopId < 1)
|
|
throw new InvalidDataException("اختلال در کارگاه");
|
|
}
|
|
|
|
public void OnGet(SearchCustomizeCheckout searchModel) {
|
|
WorkshopFullName = _workshopApplication.GetWorkshopInfo(_workshopId).WorkshopFullName;
|
|
|
|
searchModel.WorkshopId = _workshopId;
|
|
CustomizeCheckouts = _customizeCheckoutTempApplication.Search(searchModel).ToList();
|
|
|
|
SearchModel = new SearchCustomizeCheckout()
|
|
{
|
|
Year = searchModel.Year,
|
|
Month = searchModel.Month,
|
|
EmployeeId = searchModel.EmployeeId,
|
|
OrderBy = searchModel.OrderBy,
|
|
SearchStartFa = searchModel.SearchStartFa,
|
|
SearchEndFa = searchModel.SearchEndFa,
|
|
BankId = searchModel.BankId,
|
|
PageIndex = CustomizeCheckouts.Count()
|
|
};
|
|
|
|
YearlyList = _yearlySalaryApplication.GetYears();
|
|
}
|
|
|
|
public IActionResult OnGetPrintAll(CustomizeCheckoutBatchPrintViewModel sendIds)
|
|
{
|
|
|
|
var res = _customizeCheckoutTempApplication.PrintAll(_workshopId, sendIds.CustomizeCheckoutIdList);
|
|
var result = new CustomizeCheckoutBatchPrintViewModel()
|
|
{
|
|
CustomizeCheckoutViewModels = res,
|
|
};
|
|
return Partial("PrintAll", result);
|
|
}
|
|
|
|
public IActionResult OnGetCheckoutList(SearchCustomizeCheckout searchModel)
|
|
{
|
|
var permission = _authHelper.GetPermissions();
|
|
string printPermission = permission.Any(x => x == SubAccountPermissionHelper.PrintCustomizeCheckoutTempPermissionCode) ? "true" : "false";
|
|
string deletePermission = permission.Any(x => x == SubAccountPermissionHelper.DeleteCustomizeCheckoutTempPermissionCode) ? "true" : "false";
|
|
searchModel.WorkshopId = _workshopId;
|
|
var resultData = _customizeCheckoutTempApplication.Search(searchModel).ToList();
|
|
|
|
return new JsonResult(new
|
|
{
|
|
success = true,
|
|
data = resultData,
|
|
pageIndex = resultData.Count(),
|
|
printPermission = printPermission,
|
|
deletePermission = deletePermission,
|
|
});
|
|
}
|
|
|
|
public async Task<IActionResult> OnGetEmployeeList()
|
|
{
|
|
var result = await _employeeApplication.WorkedEmployeesInWorkshopSelectList(_workshopId);
|
|
return new JsonResult(new
|
|
{
|
|
success = true,
|
|
data = result
|
|
});
|
|
}
|
|
|
|
public IActionResult OnGetEmployeesByDay(int day)
|
|
{
|
|
var result = _customizeCheckoutTempApplication.GetWorkshopEmployeesEligibleForCheckoutInDates(_workshopId);
|
|
if (result.IsSuccedded)
|
|
{
|
|
return new JsonResult(new
|
|
{
|
|
success = result.IsSuccedded,
|
|
data = result.Data
|
|
});
|
|
}
|
|
else
|
|
{
|
|
return new JsonResult(new
|
|
{
|
|
success = result.IsSuccedded,
|
|
message = result.Message
|
|
});
|
|
}
|
|
}
|
|
|
|
public IActionResult OnGetCreate()
|
|
{
|
|
var command = new CreateCustomizeCheckoutTempGroup();
|
|
return Partial("ModalCheckoutTemporaryCreate", command);
|
|
}
|
|
|
|
public IActionResult OnPostCreate(CreateCustomizeCheckoutTempGroup command)
|
|
{
|
|
command.WorkshopId = _workshopId;
|
|
var result = _customizeCheckoutTempApplication.GroupCreate(command);
|
|
return new JsonResult(new
|
|
{
|
|
success = result.IsSuccedded,
|
|
message = result.Message
|
|
});
|
|
}
|
|
|
|
public IActionResult OnGetPrintOne(long checkoutId, int yearFa, int monthFa)
|
|
{
|
|
List<long> id = new() { checkoutId };
|
|
Console.WriteLine(id);
|
|
var result = _customizeCheckoutTempApplication.PrintAll(_workshopId, id).FirstOrDefault();
|
|
return Partial("PrintOneCheckoutTemporary", result);
|
|
}
|
|
|
|
public IActionResult OnGetLoadAllToPrint(List<long> checkoutId)
|
|
{
|
|
var result = _customizeCheckoutTempApplication.PrintAll(_workshopId, checkoutId);
|
|
|
|
return new JsonResult(new
|
|
{
|
|
data = result,
|
|
pageIndex = result.Count
|
|
});
|
|
}
|
|
|
|
public IActionResult OnPostDeleteOne(long checkoutId)
|
|
{
|
|
List<long> id = [checkoutId];
|
|
var result = _customizeCheckoutTempApplication.GroupRemove(_workshopId,id);
|
|
return new JsonResult(new
|
|
{
|
|
success = result.IsSuccedded,
|
|
message = result.Message
|
|
});
|
|
}
|
|
|
|
public IActionResult OnPostDeleteAll(List<long> checkoutIds)
|
|
{
|
|
// var ids = ExtractNumbers(checkoutIds);
|
|
var result = _customizeCheckoutTempApplication.GroupRemove(_workshopId,checkoutIds);
|
|
return new JsonResult(new
|
|
{
|
|
success = result.IsSuccedded,
|
|
message = result.Message
|
|
});
|
|
}
|
|
|
|
public IActionResult OnGetExcelModal()
|
|
{
|
|
return Partial("ModalExcelSetting");
|
|
}
|
|
|
|
public IActionResult OnGetBankListAjax()
|
|
{
|
|
var resultData = _bankApplication.Search("");
|
|
return new JsonResult(new
|
|
{
|
|
success = true,
|
|
data = resultData,
|
|
});
|
|
}
|
|
}
|
|
}
|