diff --git a/CompanyManagement.Infrastructure.Excel/Temp/GetAllContractingPartyExcelGenerator.cs b/CompanyManagement.Infrastructure.Excel/Temp/GetAllContractingPartyExcelGenerator.cs index 636e3006..14474df6 100644 --- a/CompanyManagement.Infrastructure.Excel/Temp/GetAllContractingPartyExcelGenerator.cs +++ b/CompanyManagement.Infrastructure.Excel/Temp/GetAllContractingPartyExcelGenerator.cs @@ -5,21 +5,34 @@ using System.Drawing; namespace CompanyManagement.Infrastructure.Excel.Temp; - public class GetAllContractingPartyExcelGenerator { public static byte[] GenerateExcel(List 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 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 { new() }; + var employers = workshop.Employers.Any() + ? workshop.Employers + : new List { 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 Workshops { get; set; } - } public class EmployerExcelResultData { public long Id { get; set; } public string EmployerName { get; set; } - - } public class WorkshopExcelResultData