Merge branch 'master' into Feature/Checkout/RotatingShiftReport

This commit is contained in:
MahanCh
2025-05-18 17:26:04 +03:30
9 changed files with 133 additions and 20 deletions

View File

@@ -17,7 +17,7 @@ public interface IYearlySalaryRepository : IRepository<long, YearlySalary>
void TestDayliFeeCompute();
List<string> GetYears();
List<YearlySalaryViewModel> GetYearlySalary();
MontlywageBunosYearsViewModel GetMontlyBunosYears(TimeSpan weeklyTime, DateTime contractStart,DateTime contractEnd, double daylyWage, string weeklyWorkingTime, int officialholiday, int friday, string totalHoursH, string totalHorsM, string basic, int fridayStartToEnd, double dayliFeeComplete, bool hasRollCall, bool holidaysWorking);
MontlywageBunosYearsViewModel GetMontlyBunosYears(TimeSpan weeklyTime, DateTime contractStart,DateTime contractEnd, double daylyWage, string weeklyWorkingTime, int officialholiday, int friday, string totalHoursH, string totalHorsM, string basic, int fridayStartToEnd, double dayliFeeComplete, bool hasRollCall, bool holidaysWorking,string shiftWork);
double GetLeavePay(DateTime contractStart, DateTime contractEnd, double daylyWage, double consumableItem, double housingAllowance, double familyAllowance , string weeklyWorkingTime, int officialholiday, int friday, string totalHoursH, string totalHorsM);
double GetOverTimeWorking(double dayliWage, string overTimeWorkH, string overTimeWorkM);
double GetOverNightWorking(double dayliWage, string overNightWorkH, string overNightWorkM, string weeklyWorkingTime, int officialholiday, int friday, DateTime contractStart, DateTime contractEnd, string totalHoursH, string totalHorsM);

View File

@@ -136,4 +136,6 @@ public class CreateCheckout
public bool HolidayWorking { get; set; }
public string ShiftWork { get; set; }
}

View File

@@ -43,5 +43,6 @@ public class ComputingViewModel
public bool HasRotatingShift { get; set; }
//public List<string> holidays;
}

View File

@@ -124,7 +124,7 @@ public class CheckoutApplication : ICheckoutApplication
//حق تاهل
var marriedAllowance = command.MarriedAllowance.MoneyToDouble();
var MontlyYearsBunos =
_yearlySalaryRepository.GetMontlyBunosYears(command.WeeklyTime, command.ContractStartGr, command.ContractEndGr, dayliWage,command.WorkingWeeklyTime,command.officialholiday,command.friday, command.TotalHolidaysAndNotH, command.TotalHolidaysAndNotM, command.Basic, command.FridayStarttoEnd,command.DailFeeComplete,command.HasRollCall, command.HolidayWorking);
_yearlySalaryRepository.GetMontlyBunosYears(command.WeeklyTime, command.ContractStartGr, command.ContractEndGr, dayliWage,command.WorkingWeeklyTime,command.officialholiday,command.friday, command.TotalHolidaysAndNotH, command.TotalHolidaysAndNotM, command.Basic, command.FridayStarttoEnd,command.DailFeeComplete,command.HasRollCall, command.HolidayWorking, command.ShiftWork);
//دستمزد ماهانه
var monthlyWage = MontlyYearsBunos.MontlyWage;
//سنوات

View File

@@ -84,7 +84,7 @@ public class YearlySalaryRepository : RepositoryBase<long, YearlySalary>, IYearl
//محاسبه حقوق ماهیانه عیدی و پاداش ، سنوات
#region GetMontlyBunosYears
public MontlywageBunosYearsViewModel GetMontlyBunosYears(TimeSpan weeklyTime, DateTime contractStart, DateTime contractEnd, double daylyWage,
string weeklyWorkingTime, int officialholiday, int friday, string totalHoursH, string totalHorsM, string basic, int fridayStartToEnd, double dayliFeeComplete, bool hasRollCall, bool holidaysWorking)
string weeklyWorkingTime, int officialholiday, int friday, string totalHoursH, string totalHorsM, string basic, int fridayStartToEnd, double dayliFeeComplete, bool hasRollCall, bool holidaysWorking, string shiftWork)
{
double basicDouble = basic.MoneyToDouble();
double sub = 0;
@@ -125,8 +125,8 @@ public class YearlySalaryRepository : RepositoryBase<long, YearlySalary>, IYearl
//if (hasRollCall)
var MandatoryDays = TotalDays - fridayStartToEnd - officialholiday;
if (!hasRollCall && weeklyWorkingTime !="4")
MandatoryDays = TotalDays - fridayStartToEnd;
if (!hasRollCall && shiftWork != "4")
MandatoryDays = TotalDays - fridayStartToEnd;
//بدست آوردن ساعت موظفی این ماه
var TotalMandatoryHours = MandatoryDays * 7.33;//ساعت موظفی این ماه

View File

@@ -675,7 +675,7 @@ public class IndexModel : PageModel
_yearlySalaryRepository.GetMontlyBunosYears(foundMandatoryCompute.weeklyTime, found.ContractStart, found.ContractEnd,
foundMandatoryCompute.SalaryCompute.MoneyToDouble(), foundMandatoryCompute.SumTime44, foundMandatoryCompute.OfficialHoliday,
int.Parse(foundMandatoryCompute.NumberOfFriday), foundMandatoryCompute.TotalHolidayAndNotH, foundMandatoryCompute.TotalHolidayAndNotM,
foundMandatoryCompute.Basic, foundMandatoryCompute.FridayStartToEnd, foundMandatoryCompute.DayliFeeComplete, hasRollCall, workshop.WorkshopHolidayWorking);
foundMandatoryCompute.Basic, foundMandatoryCompute.FridayStartToEnd, foundMandatoryCompute.DayliFeeComplete, hasRollCall, workshop.WorkshopHolidayWorking, workingHours.ShiftWork);
double foundMontlySalary = MontlyYearsBunos.MontlyWage + MontlyYearsBunos.BasicYears;
int foundTotaldays = Convert.ToInt32(MontlyYearsBunos.SumOfWorkingDay);
double foundDayliWage = foundMontlySalary / foundTotaldays;
@@ -785,7 +785,8 @@ public class IndexModel : PageModel
TotalDayOfYearsCompute = yearsPay.YearsPay > 0 ? $"{yearsPay.TotalDayCompute}" : "0",
TotalDayOfBunosesCompute = bunosesPay.Bunoses > 0 ? $"{bunosesPay.TotalDayCompute}" : "0",
HolidayWorking = workshop.WorkshopHolidayWorking,
};
ShiftWork = workingHours.ShiftWork,
};
_checkoutApplication.Create(command);
//var workshopId = $"{contract.WorkshopIds}";

View File

@@ -449,7 +449,7 @@
}
var i = 1;
var zeropscode = "zero-ps-code tooltip-container";
string adminVersion = _0_Framework.Application.Version.AdminVersion;
<link href="~/AdminTheme/assets/datatables/jquery.dataTables.min.css" rel="stylesheet" type="text/css"/>
}
@@ -848,9 +848,12 @@
var alertModalAjax = '@Url.Page("./AutoExtension", "AlertModal")';
var clockAjax = '@Url.Page("./AutoExtension", "Clock")';
var createContractAjax = '@Url.Page("./AutoExtension", "CreateContract")';
var EmployeesStartedWorkInSelectedPeriodAjaxUrl = '@Url.Page("./AutoExtension", "EmployeesStartedWorkInSelectedPeriod")';
</script>
<script src="~/AssetsAdmin/page/Workshop/js/AutoExtension.js"></script>
<script src="~/AssetsAdmin/page/Workshop/js/AutoExtension.js?ver=@adminVersion"></script>
}

View File

@@ -167,6 +167,50 @@ public class AutoExtensionModel : PageModel
//Correction();
}
public IActionResult OnPostEmployeesStartedWorkInSelectedPeriod(long workshopId, string startDate, string endDate, bool manualDate)
{
var start = startDate.ToGeorgianDateTime();
var end = ($"{startDate.FindeEndOfMonth()}").ToGeorgianDateTime();
if (manualDate)
end = endDate.ToGeorgianDateTime();
if (start >= end)
{
return new JsonResult(new
{
founded = false,
error = true
});
}
var leftWorkSerchModel = new LeftWorkSearchModel
{
WorkshopId = workshopId
};
var leftWorkList = _leftWorkApplication.search(leftWorkSerchModel);
if (leftWorkList.Count > 0)
{
var res = leftWorkList.Where(x => x.StartWorkDateGr <= end && x.StartWorkDateGr > start).ToList();
if (res.Count > 0)
{
return new JsonResult(new
{
founded = true,
leftWorkList = res,
error = false
});
}
}
return new JsonResult(new
{
founded = false,
error = false
});
}
public IActionResult OnGetContractStatus(long employeeId, long workshopId, string employeeName, string workshopname)
{
var command = new ContractStatusViewModel();

View File

@@ -180,7 +180,7 @@ $('#firstCheckBtn').on('click',
$('#datatable tbody tr').each(function (i) {
let chekbox = $(this).find("input[name=selectItem]");
if (chekbox.is(":checked") == true) {
employeeId = $(this).attr("data-employeeId");;
employeeId = $(this).attr("data-employeeId");
start = $(this).find("input[name=contarctStart]").val();
startObj = $(this).find("input[name=contarctStart]");
end = $(this).find("input[name=contractEnd]").val();
@@ -701,7 +701,12 @@ $("#start").keyup(function () {
$(this).addClass("errored");
} else {
$(this).removeClass("errored");
$(".sdate").val(value);
var endDate = $("#end").val();
if (endDate.length == 10) {
SetStartAndEndDate(value, endDate, true);
}
}
}
});
@@ -713,7 +718,11 @@ $("#end").keyup(function () {
$(this).addClass("errored");
} else {
$(this).removeClass("errored");
$(".edate").val(value);
var startDate = $("#start").val();
if (startDate.length == 10) {
SetStartAndEndDate(startDate, value,true);
}
}
}
});
@@ -745,18 +754,21 @@ $(".edate").keyup(function () {
$('#monthSelected').on('change',
function () {
const year = $("select[name=yearSelected]").val();
const month = $(this).val();
if (year === "0") {
$("select[name=yearSelected]").addClass("errored");
}
if (year != "0" && month != "0") {
const selectedDate = year + "/" + month + "/01";
const endDate = DateComputing(selectedDate);
$(".sdate").val(selectedDate);
$(".edate").val(endDate);
$('.sdate').removeClass("errored");
$('.edate').removeClass("errored");
SetStartAndEndDate(selectedDate, endDate,false);
}
});
@@ -768,15 +780,65 @@ $("select[name=yearSelected]").on('change',
if (year != "0" && month != "0") {
const selectedDate = year + "/" + month + "/01";
const endDate = DateComputing(selectedDate);
$(".sdate").val(selectedDate);
$(".edate").val(endDate);
$('.sdate').removeClass("errored");
$('.edate').removeClass("errored");
SetStartAndEndDate(selectedDate, endDate,false);
$("select[name=yearSelected]").removeClass("errored");
}
});
function SetStartAndEndDate(selectedDate, endDate, manualDate) {
const workshopId = Number($('#workshopId').val());
$.ajax({
dataType: 'json',
type: 'POST',
url: EmployeesStartedWorkInSelectedPeriodAjaxUrl,
data: { "workshopId": workshopId, "startDate": selectedDate, "endDate": endDate, "manualDate": manualDate },
headers: { "RequestVerificationToken": $('input[name="__RequestVerificationToken"]').val() },
success: function (response) {
if (response.founded && !response.error) {
$('#datatable tbody tr').each(function (i) {
let selectedTr = $(this);
let employeeIdInList = selectedTr.attr("data-employeeId");
console.log('employeeIdInList' + employeeIdInList);
selectedTr.find(".sdate").val(selectedDate);
selectedTr.find(".edate").val(endDate);
response.leftWorkList.forEach(function (el) {
if (el.employeeId == employeeIdInList) {
$('.sdate').removeClass("errored");
selectedTr.find(".sdate").val(el.startWorkDate);
selectedTr.find(".edate").val(endDate);
$('.edate').removeClass("errored");
}
});
});
} else if (!response.founded && !response.error) {
$(".sdate").val(selectedDate);
$('.sdate').removeClass("errored");
$(".edate").val(endDate);
$('.edate').removeClass("errored");
} else if (!response.founded && response.error) {
$('#end').addClass("errored");
}
},
failure: function (response) {
console.log(5, response);
}
}); //endOf Ajax
}
function DateComputing(selectedDate) {
var persianNumbers = [/۰/g, /۱/g, /۲/g, /۳/g, /۴/g, /۵/g, /۶/g, /۷/g, /۸/g, /۹/g],
arabicNumbers = [/٠/g, /١/g, /٢/g, /٣/g, /٤/g, /٥/g, /٦/g, /٧/g, /٨/g, /٩/g],