diff --git a/0_Framework/Application/Tools.cs b/0_Framework/Application/Tools.cs
index 23afe3cb..db65625e 100644
--- a/0_Framework/Application/Tools.cs
+++ b/0_Framework/Application/Tools.cs
@@ -445,6 +445,18 @@ public static class Tools
return myMoney.ToString("N0", CultureInfo.CreateSpecificCulture("fa-ir"));
}
+
+ ///
+ /// اگر مبلغ صفر باشد خط تیره برمیگرداند
+ ///
+ ///
+ ///
+ public static string ToMoneyCheckZero(this double myMoney)
+ {
+ if (myMoney == 0)
+ return "-";
+ return myMoney.ToString("N0", CultureInfo.CreateSpecificCulture("fa-ir"));
+ }
public static string ToMoneyNullable(this double? myMoney)
{
diff --git a/Company.Domain/CheckoutAgg/ICheckoutRepository.cs b/Company.Domain/CheckoutAgg/ICheckoutRepository.cs
index daa2c35d..c1bba732 100644
--- a/Company.Domain/CheckoutAgg/ICheckoutRepository.cs
+++ b/Company.Domain/CheckoutAgg/ICheckoutRepository.cs
@@ -92,5 +92,14 @@ public interface ICheckoutRepository : IRepository
///
Task> GetList(CheckoutSearchModelDto searchModel);
+
+ ///
+ /// پرینت فیش حقوقی
+ /// Api
+ ///
+ ///
+ ///
+ Task> CheckoutPrint(List ids);
+
#endregion
}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/Checkout/Dto/CheckoutPrintDto.cs b/CompanyManagment.App.Contracts/Checkout/Dto/CheckoutPrintDto.cs
new file mode 100644
index 00000000..a007e448
--- /dev/null
+++ b/CompanyManagment.App.Contracts/Checkout/Dto/CheckoutPrintDto.cs
@@ -0,0 +1,231 @@
+using System;
+using CompanyManagment.App.Contracts.Loan;
+using CompanyManagment.App.Contracts.RollCall;
+using CompanyManagment.App.Contracts.SalaryAid;
+using System.Collections.Generic;
+
+namespace CompanyManagment.App.Contracts.Checkout.Dto;
+
+public class CheckoutPrintDto
+{
+ // هدر فیش
+ // اطلاعات هویتی
+ // اطلاعات کارگاه
+ #region Header
+ public long Id { get; set; }
+
+ ///
+ /// نام پرسنل
+ ///
+ public string EmployeeFullName { get; set; }
+
+ ///
+ /// نام پدر
+ ///
+ public string FathersName { get; set; }
+
+ ///
+ /// کد ملی
+ ///
+ public string NationalCode { get; set; }
+
+ ///
+ /// تاریخ تولد
+ ///
+ public string DateOfBirth { get; set; }
+
+ ///
+ /// نام کارگاه
+ ///
+ public string WorkshopName { get; set; }
+
+ ///
+ /// شماره قراداد
+ ///
+ public string ContractNo { get; set; }
+
+ ///
+ /// ماه
+ ///
+ public string Month { get; set; }
+
+ ///
+ /// سال
+ ///
+ public string Year { get; set; }
+
+ ///
+ /// لیست کارفرما
+ ///
+ public List EmployersLists { get; set; }
+
+ ///
+ /// آیا کارقرما حقوقی است
+ ///
+ public bool EmployerIslegal { get; set; }
+ #endregion
+
+ //جدول مطالبات و کسورات
+ #region PaymentAndDeductionTable
+ ///
+ /// مطالبات
+ ///
+ public List PaymentList { get; set; }
+
+ ///
+ /// کسورات
+ ///
+ public List DeductionList { get; set; }
+
+ ///
+ /// جمع مطالبات
+ ///
+ public string TotalPayment { get; set; }
+
+ ///
+ /// جمع کسورات
+ ///
+ public string TotalDeductions { get; set; }
+
+
+ ///
+ /// مبلغ قابل پرداخت
+ ///
+ public string TotalClaims { get; set; }
+ #endregion
+
+ //لیست ورود و خروج پرسنل
+ //اطلاعات ساعات کار و موظقی
+ #region RollCallData
+ ///
+ /// لیست حضورغیاب
+ ///
+ public List MonthlyRollCall { get; set; }
+
+ ///
+ /// دیتای جدول حضورغیاب
+ ///
+ public CheckoutRollCallViewModel CheckoutRollCall { get; set; }
+
+ #endregion
+
+ //اقساط
+ #region LoneAndInstallmentData
+
+ public List InstallmentViewModels { get; set; }
+ public List SalaryAidViewModels { get; set; }
+
+ #endregion
+}
+
+///
+/// کسورات
+///
+public class PaymentData
+{
+ ///
+ /// حقوق و مزد
+ ///
+ public string MonthlySalary { get; set; }
+
+ ///
+ /// پایه سنوات
+ ///
+ public string BaseYearsPay { get; set; }
+
+ ///
+ /// کمک هزینه اقلام مصرفی
+ ///
+ public string ConsumableItems { get; set; }
+
+ ///
+ /// کمک هزینه مسکن
+ ///
+ public string HousingAllowance { get; set; }
+
+ ///
+ /// فوق العاده اضافه کاری
+ ///
+ public string OvertimePay { get; set; }
+
+ ///
+ /// فوق العاده شبکاری
+ ///
+ public string NightworkPay { get; set; }
+
+ ///
+ /// فوق العاده جمعه کاری
+ ///
+ public string FridayPay { get; set; }
+
+ ///
+ /// فوق العاده ماموریت
+ ///
+ public string MissionPay { get; set; }
+
+ ///
+ /// فوق العاده نوبت کاری
+ ///
+ public string ShiftPay { get; set; }
+
+ ///
+ /// کمک هزینه عائله مندی
+ ///
+ public string FamilyAllowance { get; set; }
+
+ ///
+ /// حق تاهل
+ ///
+ public string MarriedAllowance { get; set; }
+
+}
+
+///
+/// کسورات
+///
+public class DeductionData
+{
+
+}
+
+public class PaymentAndDeductionList
+{
+ public int RowNumber { get; set; }
+ ///
+ /// عنوان
+ ///
+ public string Title { get; set; }
+
+ ///
+ /// مقدار/روز/ساعت
+ ///
+ public string Value { get; set; }
+
+ ///
+ /// مبلغ
+ ///
+ public string Amount { get; set; }
+}
+
+
+///
+/// لیست کارفرما
+///
+public class CheckoutEmployersList
+{
+ public bool IsLegal { get; set; }
+ public string EmployerFullName { get; set; }
+}
+
+
+
+
+public class CheckoutGetData : CheckoutPrintDto
+{
+ public DateTime ContractStart { get; set; }
+
+ public int PersonnelCode { get; set; }
+
+ public long WorkshopId { get; set; }
+ public long EmployeeId { get; set; }
+}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/Checkout/ICheckoutApplication.cs b/CompanyManagment.App.Contracts/Checkout/ICheckoutApplication.cs
index cdc831af..a3e75d18 100644
--- a/CompanyManagment.App.Contracts/Checkout/ICheckoutApplication.cs
+++ b/CompanyManagment.App.Contracts/Checkout/ICheckoutApplication.cs
@@ -81,5 +81,12 @@ public interface ICheckoutApplication
///
Task GetRotatingShiftApi(long id);
+ ///
+ /// پرینت فیش حقوقی
+ /// Api
+ ///
+ ///
+ ///
+ Task> CheckoutPrint(List ids);
#endregion
}
\ No newline at end of file
diff --git a/CompanyManagment.Application/CheckoutApplication.cs b/CompanyManagment.Application/CheckoutApplication.cs
index 1681fe34..30263813 100644
--- a/CompanyManagment.Application/CheckoutApplication.cs
+++ b/CompanyManagment.Application/CheckoutApplication.cs
@@ -772,5 +772,11 @@ public class CheckoutApplication : ICheckoutApplication
RotatingShiftList = items
};
}
+
+ public Task> CheckoutPrint(List ids)
+ {
+ return _checkoutRepository.CheckoutPrint(ids);
+ }
+
#endregion
}
\ No newline at end of file
diff --git a/CompanyManagment.EFCore/Repository/CheckoutRepository.cs b/CompanyManagment.EFCore/Repository/CheckoutRepository.cs
index 1e56389a..637dcf1e 100644
--- a/CompanyManagment.EFCore/Repository/CheckoutRepository.cs
+++ b/CompanyManagment.EFCore/Repository/CheckoutRepository.cs
@@ -3060,5 +3060,146 @@ public class CheckoutRepository : RepositoryBase, ICheckoutRepos
};
}
+
+
+ public async Task> CheckoutPrint(List ids)
+ {
+ if (ids.Count == 0)
+ return new List();
+
+ var watch = new Stopwatch();
+ watch.Start();
+
+ var getCheckouts = await _context.CheckoutSet.Where(x => ids.Contains(x.id))
+ .AsNoTracking()
+ .ToListAsync();
+
+ var employers = await _context.WorkshopEmployers
+ .Where(x => x.WorkshopId == getCheckouts.First().WorkshopId).AsNoTracking()
+ .Select(x => new CheckoutEmployersList
+ {
+ IsLegal = x.Employer.IsLegal == "true",
+ EmployerFullName = x.Employer.FullName
+ }).ToListAsync();
+
+ var employees = (from x in _context.Employees.Where(x => getCheckouts.Select(ch => ch.EmployeeId).Contains(x.id))
+ select new
+ {
+ EmployeeId = x.id,
+ MaritalStatus = x.MaritalStatus
+ }
+ ).AsNoTracking();
+ var workshop = await _context.Workshops.AsNoTracking().FirstAsync(x => x.id == getCheckouts.First().WorkshopId);
+
+ bool isLegal = employers.Any(x => x.IsLegal);
+
+ var result = getCheckouts.Select(x =>
+ {
+
+ var overTimeWorkValue = x.OvertimePay > 0 ? x.OverTimeWorkValue : "-";
+ var overNightWorkValue = x.OvertimePay > 0 ? x.OverNightWorkValue : "-";
+ var fridayWorkValue = x.FridayPay > 0 ? x.FridayWorkValue : "-";
+ var maritalStatus = employees.First(e => e.EmployeeId == x.EmployeeId).MaritalStatus;
+ var rewardPay = x.RewardPay == null ? "-" : x.RewardPay.ToMoneyNullable();
+ var rotatingShiftValue = x.ShiftPay > 0 ? x.RotatingShiftValue : "-";
+ var totalDeduction = "-";
+ var totalPayment = "-";
+ var totalClaims = "-";
+ if (!workshop.TotalPaymentHide)
+ {
+ totalDeduction = x.TotalDeductions;
+ totalPayment = x.TotalPayment.ToMoneyCheckZero();
+ totalClaims = x.TotalClaims;
+ }
+
+ return new CheckoutPrintDto()
+ {
+ Id = x.id,
+
+ // هدر فیش
+ // اطلاعات هویتی
+ // اطلاعات کارگاه
+ #region Header
+
+ EmployeeFullName = x.EmployeeFullName,
+ FathersName = x.FathersName,
+ NationalCode = x.NationalCode,
+ DateOfBirth = x.DateOfBirth,
+ WorkshopName = x.WorkshopName,
+ ContractNo = x.ContractNo,
+ Month = x.Month,
+ Year = x.Year,
+ EmployersLists = employers,
+ EmployerIslegal = isLegal,
+ #endregion
+
+ //جدول مطالبات و کسورات
+
+ #region PaymentAndDeductionTable
+
+ //مطالبات
+ PaymentList = new List
+ {
+ new PaymentAndDeductionList()
+ {RowNumber = 1, Title = "حقوق و مزد", Value = $"{x.SumOfWorkingDays}", Amount = x.MonthlySalary.ToMoneyCheckZero(),},
+ new PaymentAndDeductionList()
+ {RowNumber = 2, Title = "پایه سنوات", Value = "-", Amount = x.BaseYearsPay.ToMoneyCheckZero(),},
+ new PaymentAndDeductionList()
+ {RowNumber = 3, Title = "کمک هزینه اقلام مصرفی خانوار", Value = "-", Amount = x.ConsumableItems.ToMoneyCheckZero(),},
+ new PaymentAndDeductionList()
+ {RowNumber = 4, Title = "کمک هزینه مسکن", Value = "-", Amount = x.HousingAllowance.ToMoneyCheckZero(),},
+ new PaymentAndDeductionList()
+ {RowNumber = 5, Title = "فوق العاده اضافه کاری", Value = overTimeWorkValue, Amount = x.OvertimePay.ToMoneyCheckZero(),},
+ new PaymentAndDeductionList()
+ {RowNumber = 6, Title = "فوق العاده شب کاری", Value = overNightWorkValue, Amount = x.NightworkPay.ToMoneyCheckZero(),},
+ new PaymentAndDeductionList()
+ {RowNumber = 7, Title = "فوق العاده جمعه کاری", Value = fridayWorkValue, Amount = x.FridayPay.ToMoneyCheckZero(),},
+ new PaymentAndDeductionList()
+ {RowNumber = 8, Title = "فوق العاده ماموریت", Value = "-", Amount = "-",},
+ new PaymentAndDeductionList()
+ {RowNumber = 9, Title = "فوق العاده نوبت کاری", Value = rotatingShiftValue, Amount = x.ShiftPay.ToMoneyCheckZero(),},
+ new PaymentAndDeductionList()
+ {RowNumber = 10, Title = "کمک هزینه عائله مندی", Value = "-", Amount = x.FamilyAllowance.ToMoneyCheckZero(),},
+ new PaymentAndDeductionList()
+ {RowNumber = 11, Title = "حق تاهل", Value = maritalStatus, Amount = x.MarriedAllowance.ToMoneyCheckZero(),},
+ new PaymentAndDeductionList()
+ {RowNumber = 12, Title = "پاداش", Value = "-", Amount = rewardPay,},
+ new PaymentAndDeductionList()
+ {RowNumber = 13, Title = "عیدی و پاداش", Value = "-", Amount = x.BonusesPay.ToMoneyCheckZero(),},
+ new PaymentAndDeductionList()
+ {RowNumber = 14, Title = "سنوات", Value = "-", Amount = x.YearsPay.ToMoneyCheckZero(),},
+ new PaymentAndDeductionList()
+ {RowNumber = 15, Title = "مزد مرخصی", Value = "-", Amount = x.LeavePay.ToMoneyCheckZero(),},
+ },
+
+ //کسورات
+ DeductionList = new List
+ {
+ new PaymentAndDeductionList()
+ {RowNumber = 1, Title = "حق بیمه سهم کارگر", Value = "-", Amount = x.InsuranceDeduction.ToMoneyCheckZero(),},
+ new PaymentAndDeductionList()
+ {RowNumber = 2, Title = "مالیات بر حقوق", Value = "-", Amount = x.TaxDeducation.ToMoneyCheckZero(),},
+ new PaymentAndDeductionList()
+ {RowNumber = 3, Title = "قسط تسهیلات", Value = "-", Amount = x.InstallmentDeduction.ToMoneyCheckZero(),},
+ new PaymentAndDeductionList()
+ {RowNumber = 4, Title = "مساعده", Value = "-", Amount = x.SalaryAidDeduction.ToMoneyCheckZero(),},
+ new PaymentAndDeductionList()
+ {RowNumber = 5, Title = "غیبت", Value = "-", Amount = "-",},
+ },
+
+
+ TotalPayment = totalPayment,
+ TotalDeductions = totalDeduction,
+ TotalClaims = totalClaims,
+ #endregion
+ };
+
+
+
+ }).ToList();
+
+ Console.WriteLine("print : " + watch.Elapsed);
+ return result;
+ }
#endregion
}
\ No newline at end of file
diff --git a/ServiceHost/Areas/Admin/Pages/Company/Checkouts/CheckoutPrintAll.cshtml.cs b/ServiceHost/Areas/Admin/Pages/Company/Checkouts/CheckoutPrintAll.cshtml.cs
index a98a852a..09858586 100644
--- a/ServiceHost/Areas/Admin/Pages/Company/Checkouts/CheckoutPrintAll.cshtml.cs
+++ b/ServiceHost/Areas/Admin/Pages/Company/Checkouts/CheckoutPrintAll.cshtml.cs
@@ -22,9 +22,12 @@ public class CheckoutPrintAllModel : PageModel
}
public void OnGet(string idlist)
- {
- var ids = ExtractNumbers(idlist);
- var resultList = new List();
+ {
+
+
+ var ids = ExtractNumbers(idlist);
+ var test = _checkoutApplication.CheckoutPrint(ids).GetAwaiter().GetResult();
+ var resultList = new List();
var res = _checkoutApplication.PrintAll(ids);