Checkout Print Api init
This commit is contained in:
@@ -445,6 +445,18 @@ public static class Tools
|
||||
|
||||
return myMoney.ToString("N0", CultureInfo.CreateSpecificCulture("fa-ir"));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// اگر مبلغ صفر باشد خط تیره برمیگرداند
|
||||
/// </summary>
|
||||
/// <param name="myMoney"></param>
|
||||
/// <returns></returns>
|
||||
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)
|
||||
{
|
||||
|
||||
|
||||
@@ -92,5 +92,14 @@ public interface ICheckoutRepository : IRepository<long, Checkout>
|
||||
/// <returns></returns>
|
||||
Task<PagedResult<CheckoutDto>> GetList(CheckoutSearchModelDto searchModel);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// پرینت فیش حقوقی
|
||||
/// Api
|
||||
/// </summary>
|
||||
/// <param name="ids"></param>
|
||||
/// <returns></returns>
|
||||
Task<List<CheckoutPrintDto>> CheckoutPrint(List<long> ids);
|
||||
|
||||
#endregion
|
||||
}
|
||||
231
CompanyManagment.App.Contracts/Checkout/Dto/CheckoutPrintDto.cs
Normal file
231
CompanyManagment.App.Contracts/Checkout/Dto/CheckoutPrintDto.cs
Normal file
@@ -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; }
|
||||
|
||||
/// <summary>
|
||||
/// نام پرسنل
|
||||
/// </summary>
|
||||
public string EmployeeFullName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// نام پدر
|
||||
/// </summary>
|
||||
public string FathersName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// کد ملی
|
||||
/// </summary>
|
||||
public string NationalCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// تاریخ تولد
|
||||
/// </summary>
|
||||
public string DateOfBirth { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// نام کارگاه
|
||||
/// </summary>
|
||||
public string WorkshopName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// شماره قراداد
|
||||
/// </summary>
|
||||
public string ContractNo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// ماه
|
||||
/// </summary>
|
||||
public string Month { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// سال
|
||||
/// </summary>
|
||||
public string Year { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// لیست کارفرما
|
||||
/// </summary>
|
||||
public List<CheckoutEmployersList> EmployersLists { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// آیا کارقرما حقوقی است
|
||||
/// </summary>
|
||||
public bool EmployerIslegal { get; set; }
|
||||
#endregion
|
||||
|
||||
//جدول مطالبات و کسورات
|
||||
#region PaymentAndDeductionTable
|
||||
/// <summary>
|
||||
/// مطالبات
|
||||
/// </summary>
|
||||
public List<PaymentAndDeductionList> PaymentList { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// کسورات
|
||||
/// </summary>
|
||||
public List<PaymentAndDeductionList> DeductionList { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// جمع مطالبات
|
||||
/// </summary>
|
||||
public string TotalPayment { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// جمع کسورات
|
||||
/// </summary>
|
||||
public string TotalDeductions { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// مبلغ قابل پرداخت
|
||||
/// </summary>
|
||||
public string TotalClaims { get; set; }
|
||||
#endregion
|
||||
|
||||
//لیست ورود و خروج پرسنل
|
||||
//اطلاعات ساعات کار و موظقی
|
||||
#region RollCallData
|
||||
/// <summary>
|
||||
/// لیست حضورغیاب
|
||||
/// </summary>
|
||||
public List<CheckoutDailyRollCallViewModel> MonthlyRollCall { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// دیتای جدول حضورغیاب
|
||||
/// </summary>
|
||||
public CheckoutRollCallViewModel CheckoutRollCall { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
//اقساط
|
||||
#region LoneAndInstallmentData
|
||||
|
||||
public List<LoanInstallmentViewModel> InstallmentViewModels { get; set; }
|
||||
public List<SalaryAidViewModel> SalaryAidViewModels { get; set; }
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// کسورات
|
||||
/// </summary>
|
||||
public class PaymentData
|
||||
{
|
||||
/// <summary>
|
||||
/// حقوق و مزد
|
||||
/// </summary>
|
||||
public string MonthlySalary { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// پایه سنوات
|
||||
/// </summary>
|
||||
public string BaseYearsPay { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// کمک هزینه اقلام مصرفی
|
||||
/// </summary>
|
||||
public string ConsumableItems { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// کمک هزینه مسکن
|
||||
/// </summary>
|
||||
public string HousingAllowance { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// فوق العاده اضافه کاری
|
||||
/// </summary>
|
||||
public string OvertimePay { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// فوق العاده شبکاری
|
||||
/// </summary>
|
||||
public string NightworkPay { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// فوق العاده جمعه کاری
|
||||
/// </summary>
|
||||
public string FridayPay { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// فوق العاده ماموریت
|
||||
/// </summary>
|
||||
public string MissionPay { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// فوق العاده نوبت کاری
|
||||
/// </summary>
|
||||
public string ShiftPay { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// کمک هزینه عائله مندی
|
||||
/// </summary>
|
||||
public string FamilyAllowance { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// حق تاهل
|
||||
/// </summary>
|
||||
public string MarriedAllowance { get; set; }
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// کسورات
|
||||
/// </summary>
|
||||
public class DeductionData
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public class PaymentAndDeductionList
|
||||
{
|
||||
public int RowNumber { get; set; }
|
||||
/// <summary>
|
||||
/// عنوان
|
||||
/// </summary>
|
||||
public string Title { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// مقدار/روز/ساعت
|
||||
/// </summary>
|
||||
public string Value { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// مبلغ
|
||||
/// </summary>
|
||||
public string Amount { get; set; }
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// لیست کارفرما
|
||||
/// </summary>
|
||||
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; }
|
||||
}
|
||||
@@ -81,5 +81,12 @@ public interface ICheckoutApplication
|
||||
/// <returns></returns>
|
||||
Task<RotatingShiftOfCheckoutDto> GetRotatingShiftApi(long id);
|
||||
|
||||
/// <summary>
|
||||
/// پرینت فیش حقوقی
|
||||
/// Api
|
||||
/// </summary>
|
||||
/// <param name="ids"></param>
|
||||
/// <returns></returns>
|
||||
Task<List<CheckoutPrintDto>> CheckoutPrint(List<long> ids);
|
||||
#endregion
|
||||
}
|
||||
@@ -772,5 +772,11 @@ public class CheckoutApplication : ICheckoutApplication
|
||||
RotatingShiftList = items
|
||||
};
|
||||
}
|
||||
|
||||
public Task<List<CheckoutPrintDto>> CheckoutPrint(List<long> ids)
|
||||
{
|
||||
return _checkoutRepository.CheckoutPrint(ids);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -3060,5 +3060,146 @@ public class CheckoutRepository : RepositoryBase<long, Checkout>, ICheckoutRepos
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
|
||||
public async Task<List<CheckoutPrintDto>> CheckoutPrint(List<long> ids)
|
||||
{
|
||||
if (ids.Count == 0)
|
||||
return new List<CheckoutPrintDto>();
|
||||
|
||||
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<PaymentAndDeductionList>
|
||||
{
|
||||
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<PaymentAndDeductionList>
|
||||
{
|
||||
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
|
||||
}
|
||||
@@ -22,9 +22,12 @@ public class CheckoutPrintAllModel : PageModel
|
||||
}
|
||||
|
||||
public void OnGet(string idlist)
|
||||
{
|
||||
var ids = ExtractNumbers(idlist);
|
||||
var resultList = new List<CheckoutGroupPrintViewModel>();
|
||||
{
|
||||
|
||||
|
||||
var ids = ExtractNumbers(idlist);
|
||||
var test = _checkoutApplication.CheckoutPrint(ids).GetAwaiter().GetResult();
|
||||
var resultList = new List<CheckoutGroupPrintViewModel>();
|
||||
|
||||
var res = _checkoutApplication.PrintAll(ids);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user