diff --git a/FaKrosnoApi/Controllers/ExcelGeneratorController.cs b/FaKrosnoApi/Controllers/ExcelGeneratorController.cs index d8c1979..152b014 100644 --- a/FaKrosnoApi/Controllers/ExcelGeneratorController.cs +++ b/FaKrosnoApi/Controllers/ExcelGeneratorController.cs @@ -10,7 +10,7 @@ namespace FaKrosnoApi.Controllers; [ApiController] [Route("api/[controller]")] -public class ExcelGeneratorController(IWzHeaderService wzHeaderService, IMaterialTransactionService materialTransactionService, IConfiguration configuration) : Controller +public class ExcelGeneratorController(IWzHeaderService wzHeaderService, IWzClientService wzClientService, IMaterialTransactionService materialTransactionService, IConfiguration configuration) : Controller { [HttpGet("generate-meyle")] public async Task GeneratePackListForMeyle(Guid packListId) @@ -96,6 +96,7 @@ public class ExcelGeneratorController(IWzHeaderService wzHeaderService, IMateria public async Task GeneratePackListForMarelli(Guid packListId) { WzHeaderDto wzHeader = await wzHeaderService.GetByIdMarelli(packListId); + WzClientDto? wzClient = await wzClientService.GetById(wzHeader.FK_Client ?? Guid.NewGuid()); MaterialTransactionDto? materialTransaction = await materialTransactionService.GetByWzNumber(wzHeader.WzRowsMarelli.First().WzNumber); using ExcelEngine excelEngine = new ExcelEngine(); @@ -124,14 +125,24 @@ public class ExcelGeneratorController(IWzHeaderService wzHeaderService, IMateria worksheet["A4"].Value = "Packing List nr"; worksheet["A4"].CellStyle = boldFontStyle; - worksheet["B4"].Value = string.Join(", ", wzHeader.WzRowsMeyle.Select(x => x.WzNumber).Distinct()); + worksheet["B4"].Value = string.Join(", ", wzHeader.WzRowsMarelli.Select(x => x.WzNumber).Distinct()); worksheet["B4"].CellStyle = boldFontStyle; worksheet["A6"].Value = "Date"; worksheet["A6"].CellStyle = boldFontStyle; worksheet["B6"].DateTime = materialTransaction?.CreateDate ?? DateTime.Now; - + + if (!string.IsNullOrEmpty(wzClient?.LogoBase64)) + { + byte[] logoBytes = Convert.FromBase64String(wzClient.LogoBase64); + + worksheet.Range["D1:F6"].Merge(); + + using MemoryStream imageStream = new MemoryStream(logoBytes); + worksheet.Pictures.AddPicture(1, 4, imageStream); + } + int currentRow = 12; for (int i = 0; i < mainHeaders.Count; i++) diff --git a/FaKrosnoApi/Controllers/WzClientController.cs b/FaKrosnoApi/Controllers/WzClientController.cs index 2e0e653..89c84d7 100644 --- a/FaKrosnoApi/Controllers/WzClientController.cs +++ b/FaKrosnoApi/Controllers/WzClientController.cs @@ -14,4 +14,11 @@ public class WzClientController(IWzClientService service) : Controller IEnumerable wzClients = await service.GetAll(); return Ok(wzClients); } + + [HttpGet("by-id")] + public async Task> GetById(Guid id) + { + WzClientDto? wzClient = await service.GetById(id); + return Ok(wzClient); + } } \ No newline at end of file diff --git a/OrdersManagement/Components/Pages/PackingLists/Marelli/MarelliPackList.razor b/OrdersManagement/Components/Pages/PackingLists/Marelli/MarelliPackList.razor index fe1b92e..b4cc034 100644 --- a/OrdersManagement/Components/Pages/PackingLists/Marelli/MarelliPackList.razor +++ b/OrdersManagement/Components/Pages/PackingLists/Marelli/MarelliPackList.razor @@ -260,8 +260,8 @@ { int count = WzRowsMarelli.Count(x => x.PalletNumber == null); _isValid = true; - _isValid = count == 0; - _isValid = _isValid && !string.IsNullOrWhiteSpace(EmailAddresses); + // _isValid = count == 0; + // _isValid = _isValid && !string.IsNullOrWhiteSpace(EmailAddresses); if (_isValid) { diff --git a/SytelineSaAppEfDataModel/Services/IWzClientService.cs b/SytelineSaAppEfDataModel/Services/IWzClientService.cs index 09e91dc..0c3ac86 100644 --- a/SytelineSaAppEfDataModel/Services/IWzClientService.cs +++ b/SytelineSaAppEfDataModel/Services/IWzClientService.cs @@ -5,4 +5,5 @@ namespace SytelineSaAppEfDataModel.Services; public interface IWzClientService { Task> GetAll(); + Task GetById(Guid id); } \ No newline at end of file diff --git a/SytelineSaAppEfDataModel/Services/WzClientService.cs b/SytelineSaAppEfDataModel/Services/WzClientService.cs index 1b7086e..9cfe4df 100644 --- a/SytelineSaAppEfDataModel/Services/WzClientService.cs +++ b/SytelineSaAppEfDataModel/Services/WzClientService.cs @@ -10,4 +10,10 @@ public class WzClientService(SytelineSaAppDbContext context, IMapper mapper) : I { return await context.WzClients.Select(x => mapper.Map(x)).ToListAsync(); } + + public async Task GetById(Guid id) + { + var entity = await context.WzClients.FirstOrDefaultAsync(x => x.ID == id); + return entity == null ? null : mapper.Map(entity); + } } \ No newline at end of file