add new data for 99 archivecode and rollcall excels

This commit is contained in:
2025-10-02 12:09:12 +03:30
parent e0129b089b
commit 25120ff9c7

View File

@@ -5,21 +5,34 @@ using System.Drawing;
namespace CompanyManagement.Infrastructure.Excel.Temp;
public class GetAllContractingPartyExcelGenerator
{
public static byte[] GenerateExcel(List<DataExcelResult> dataList)
{
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
using var package = new ExcelPackage();
var ws = package.Workbook.Worksheets.Add("گزارش");
var archive99Sheet = package.Workbook.Worksheets.Add("کارگاه های 99");
var rollCallSheet = package.Workbook.Worksheets.Add("حضورغیابی");
var archive99Data = dataList.Where(x => x.Workshops.Any(a => a.ArchiveCode == "99")).ToList();
CreateSheet(archive99Data, archive99Sheet);
CreateSheet(dataList.Where(x=>x.Workshops.Any(w=>w.HasRollCall)).ToList(), rollCallSheet);
return package.GetAsByteArray();
}
private static void CreateSheet(List<DataExcelResult> dataList, ExcelWorksheet ws)
{
string[] headers = new[]
{
"ContractingPartyId", "نام طرف حساب", "EmployerId", "نام کارفرما", "WorkshopId","کد کارگاه", "نام کارگاه",
"خدمات قرارداد", "خدمات قرارداد حضوری", "خدمات بیمه", "خدمات بیمه حضوری",
"خدمات حضورغیاب", "فیش حقوقی غیر رسمی", "تعداد استند", "تعداد ماه های بدهی قبلی برای حضورغیاب"
};
"ContractingPartyId", "نام طرف حساب", "EmployerId", "نام کارفرما", "WorkshopId", "کد کارگاه", "نام کارگاه",
"خدمات قرارداد", "خدمات قرارداد حضوری", "خدمات بیمه", "خدمات بیمه حضوری",
"خدمات حضورغیاب", "فیش حقوقی غیر رسمی", "تعداد استند", "تعداد ماه های بدهی قبلی برای حضورغیاب"
};
for (int i = 0; i < headers.Length; i++)
{
@@ -43,7 +56,9 @@ public class GetAllContractingPartyExcelGenerator
{
int workshopStartRow = row;
var employers = workshop.Employers.Any() ? workshop.Employers : new List<EmployerExcelResultData> { new() };
var employers = workshop.Employers.Any()
? workshop.Employers
: new List<EmployerExcelResultData> { new() };
foreach (var employer in employers)
{
@@ -68,7 +83,7 @@ public class GetAllContractingPartyExcelGenerator
foreach (var col in boolCols)
{
var cell = ws.Cells[row, col];
if (Convert.ToInt32(cell.Value) >0 )
if (Convert.ToInt32(cell.Value) > 0)
{
cell.Style.Fill.PatternType = ExcelFillStyle.Solid;
cell.Style.Fill.BackgroundColor.SetColor(Color.FromArgb(198, 239, 206)); // سبز اکسل
@@ -125,10 +140,7 @@ public class GetAllContractingPartyExcelGenerator
ws.Cells.AutoFitColumns();
ws.View.RightToLeft = true;
return package.GetAsByteArray();
}
}
public class DataExcelResult
@@ -136,15 +148,12 @@ public class DataExcelResult
public long ContractingPartyId { get; set; }
public string ContractingPartyName { get; set; }
public List<WorkshopExcelResultData> Workshops { get; set; }
}
public class EmployerExcelResultData
{
public long Id { get; set; }
public string EmployerName { get; set; }
}
public class WorkshopExcelResultData