Merge pull request 'правки_и_отчёты_поручитель' (#13) from правки_и_отчёты_поручитель into main

Reviewed-on: #13
This commit is contained in:
TabeevAlexander 2024-05-01 15:05:16 +04:00
commit 8263aea8db
10 changed files with 216 additions and 11 deletions

View File

@ -72,7 +72,7 @@ namespace ServiceStationBusinessLogic.BusinessLogics
}
return allList;
}
public List<ReportCarsViewModel> GetCars(ReportBindingModel model)
public List<ReportCarsViewModel> GetCars(ReportExecutorBindingModel model)
{
List<ReportCarsViewModel> allList = new List<ReportCarsViewModel>();
@ -116,17 +116,17 @@ namespace ServiceStationBusinessLogic.BusinessLogics
return allList;
}
public void SaveComponentsToWordFile(ReportBindingModel model)
public void SaveWorkByCarsWordFile(ReportExecutorBindingModel model)
{
throw new NotImplementedException();
}
public void SaveOrdersToPdfFile(ReportBindingModel model)
public void SaveTechWorkAndRepairsByCarsToPdfFile(ReportExecutorBindingModel model)
{
throw new NotImplementedException();
}
public void SaveRepairComponentToExcelFile(ReportBindingModel model)
public void SaveWorkByCarsToExcelFile(ReportExecutorBindingModel model)
{
throw new NotImplementedException();
}

View File

@ -0,0 +1,133 @@
using ServiceStationContracts.BindingModels;
using ServiceStationContracts.BusinessLogicsContracts;
using ServiceStationContracts.SearchModels;
using ServiceStationContracts.StoragesContracts;
using ServiceStationContracts.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ServiceStationBusinessLogic.BusinessLogics
{
public class GuarantorReportLogic : IGuarantorReportLogic
{
private readonly IDefectStorage _defectStorage;
private readonly ISparePartStorage _sparepartStorage;
private readonly IRepairStorage _repairStorage;
private readonly ITechnicalWorkStorage _techWorkStorage;
public GuarantorReportLogic(IDefectStorage defectStorage, ISparePartStorage sparepartStorage, IRepairStorage repairStorage, ITechnicalWorkStorage techWorkStorage)
{
_defectStorage = defectStorage;
_sparepartStorage = sparepartStorage;
_repairStorage = repairStorage;
_techWorkStorage = techWorkStorage;
}
public List<ReportDefectsViewModel> GetDefects(List<int> Ids)
{
if (Ids == null) return new List<ReportDefectsViewModel>();
List<ReportDefectsViewModel> allList = new List<ReportDefectsViewModel>();
var defects = _defectStorage.GetFullList();
List<SparePartViewModel> spareparts = new List<SparePartViewModel>();
foreach (var sparepartId in Ids)
{
var sparepart = _sparepartStorage.GetElement(new SparePartSearchModel
{
Id = sparepartId,
});
if (sparepart != null)
{
spareparts.Add(sparepart);
}
}
foreach (var sparepart in spareparts)
{
var rec = new ReportDefectsViewModel
{
SparePartName = sparepart.SparePartName,
DefectsInfo = new List<(string, double)>()
};
foreach (var defect in defects)
{
var repair = _repairStorage.GetElement(new RepairSearchModel
{
Id = defect.RepairId,
});
foreach (var repSpareParts in repair.RepairSpareParts.Values)
{
if (repSpareParts.Id == sparepart.Id)
{
rec.DefectsInfo.Add(new(defect.DefectType, defect.DefectPrice));
}
}
}
allList.Add(rec);
}
return allList;
}
public List<ReportSparePartsViewModel> GetSpareParts(ReportGuarantorBindingModel model)
{
List<ReportSparePartsViewModel> allList = new List<ReportSparePartsViewModel>();
List<RepairViewModel> repairList = _repairStorage.GetFilteredList(new RepairSearchModel
{
DateFrom = model.DateFrom,
DateTo = model.DateTo,
});
foreach (var repair in repairList)
{
foreach (var sparepart in repair.RepairSpareParts.Values)
{
allList.Add(new ReportSparePartsViewModel
{
SparePartName = sparepart.SparePartName,
SparePartPrice = sparepart.SparePartPrice,
RepairName = repair.RepairName,
RepairStartDate = repair.RepairStartDate,
RepairPrice = repair.RepairPrice,
});
}
}
List<TechnicalWorkViewModel> techWorkList = _techWorkStorage.GetFilteredList(new TechnicalWorkSearchModel
{
DateFrom = model.DateFrom,
DateTo = model.DateTo,
});
foreach (var techWork in techWorkList)
{
allList.Add(new ReportSparePartsViewModel
{
WorkType = techWork.WorkType,
TechnicalWorkDate = techWork.DateStartWork,
TechnicalWorkPrice = techWork.WorkPrice,
});
}
return allList;
}
public void SaveDefectsToWordFile(ReportGuarantorBindingModel model)
{
throw new NotImplementedException();
}
public void SaveDefectsToExcelFile(ReportGuarantorBindingModel model)
{
throw new NotImplementedException();
}
public void SaveSparePartsToPdfFile(ReportGuarantorBindingModel model)
{
throw new NotImplementedException();
}
}
}

View File

@ -6,7 +6,7 @@ using System.Threading.Tasks;
namespace ServiceStationContracts.BindingModels
{
public class ReportBindingModel
public class ReportExecutorBindingModel
{
public string FileName { get; set; } = string.Empty;

View File

@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ServiceStationContracts.BindingModels
{
public class ReportGuarantorBindingModel
{
public string FileName { get; set; } = string.Empty;
public DateTime? DateFrom { get; set; }
public DateTime? DateTo { get; set; }
public int GuarantorId { get; set; }
}
}

View File

@ -11,12 +11,12 @@ namespace ServiceStationContracts.BusinessLogicsContracts
public interface IExecutorReportLogic
{
List<ReportWorksViewModel> GetWorks(List<int> Ids);
List<ReportCarsViewModel> GetCars(ReportBindingModel model);
List<ReportCarsViewModel> GetCars(ReportExecutorBindingModel model);
void SaveComponentsToWordFile(ReportBindingModel model);
void SaveWorkByCarsWordFile(ReportExecutorBindingModel model);
void SaveRepairComponentToExcelFile(ReportBindingModel model);
void SaveWorkByCarsToExcelFile(ReportExecutorBindingModel model);
void SaveOrdersToPdfFile(ReportBindingModel model);
void SaveTechWorkAndRepairsByCarsToPdfFile(ReportExecutorBindingModel model);
}
}

View File

@ -0,0 +1,22 @@
using ServiceStationContracts.BindingModels;
using ServiceStationContracts.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ServiceStationContracts.BusinessLogicsContracts
{
public interface IGuarantorReportLogic
{
List<ReportDefectsViewModel> GetDefects(List<int> Ids);
List<ReportSparePartsViewModel> GetSpareParts(ReportGuarantorBindingModel model);
void SaveDefectsToWordFile(ReportGuarantorBindingModel model);
void SaveDefectsToExcelFile(ReportGuarantorBindingModel model);
void SaveSparePartsToPdfFile(ReportGuarantorBindingModel model);
}
}

View File

@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ServiceStationContracts.ViewModels
{
public class ReportDefectsViewModel
{
public string SparePartName { get; set; } = string.Empty;
public List<(string, double)> DefectsInfo { get; set; } = new();
}
}

View File

@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ServiceStationContracts.ViewModels
{
public class ReportSparePartsViewModel
{
public string SparePartName { get; set; } = string.Empty;
public double SparePartPrice { get; set; }
public string RepairName { get; set; } = string.Empty;
public DateTime? RepairStartDate { get; set; } = DateTime.Now;
public double RepairPrice { get; set; }
public string WorkType { get; set; } = string.Empty;
public DateTime? TechnicalWorkDate { get; set; } = DateTime.Now;
public double TechnicalWorkPrice { get; set; }
}
}

View File

@ -10,7 +10,7 @@
</div>
<div class="p-2">
<img src="~/Images/sashka.png" width="100px" />
Табеев А.Р. Роль Поручителя &nbsp; &nbsp;&nbsp;
Табеев А.П. Роль Поручителя &nbsp; &nbsp;&nbsp;
</div>
<p class="pt-4">Рады видеть вас на нашем сайте ^.^</p>
</div>

View File

@ -15,7 +15,7 @@
Название ремонта
</th>
<th>
Статус ремонта
Дата начала ремонта
</th>
<th>
Стоимость ремонта