From 8b67aa3851db106874e8b5afcb714e76e2feae79 Mon Sep 17 00:00:00 2001 From: trencik91 Date: Mon, 25 Aug 2025 14:25:16 +0200 Subject: [PATCH] * Added new Enrichers * Added new Translators * Changed in DTOs * Further development --- .../Controllers/CustomerOrdersController.cs | 64 +++++++++++++++++-- .../Dtos/EdiCustomerOrderLineItemDto.cs | 4 +- .../Dtos/EdiCustomerOrderTranslateDto.cs | 3 + .../Dtos/ItemCustPriceAllDto.cs | 2 +- SytelineSaAppEfDataModel/Dtos/ItemDto.cs | 2 +- .../Services/CustomerOrderService.cs | 23 +++++++ .../Services/ICustomerOrderService.cs | 6 ++ 7 files changed, 94 insertions(+), 10 deletions(-) diff --git a/FaKrosnoApi/Controllers/CustomerOrdersController.cs b/FaKrosnoApi/Controllers/CustomerOrdersController.cs index 4a91c1e..ebf620c 100644 --- a/FaKrosnoApi/Controllers/CustomerOrdersController.cs +++ b/FaKrosnoApi/Controllers/CustomerOrdersController.cs @@ -17,32 +17,84 @@ namespace FaKrosnoApi.Controllers } [HttpGet("by-order-number")] - public async Task> GetByCustomerOrderNumber([FromQuery] Guid customerOrderNumber) + public async Task> GetByCustomerOrderNumber( + [FromQuery] Guid customerOrderNumber) { CustomerOrderDto? customerOrder = await service.GetByOrderNumber(customerOrderNumber); return customerOrder != null ? Ok(customerOrder) : NotFound(); } - + [HttpGet("by-co-number")] public async Task> GetByCoNumber([FromQuery] string customerOrderNumber) { CustomerOrderDto? customerOrder = await service.GetByCoNumber(customerOrderNumber); return customerOrder != null ? Ok(customerOrder) : NotFound(); } - + + [HttpGet("lines-by-co-number")] + public async Task?>> GetLinesByCoNumber( + [FromQuery] string customerOrderNumber) + { + var customerOrderLines = await service.GetLinesByCoNumber(customerOrderNumber); + return customerOrderLines != null ? Ok(customerOrderLines) : NotFound(); + } + [HttpGet("items-by-co-number")] - public async Task> GetItemsByCoNumber([FromQuery] string customerOrderNumber) + public async Task?>> GetItemsByCoNumber( + [FromQuery] string customerOrderNumber) { var customerOrderLineItems = await service.GetItemsByCoNumber(customerOrderNumber); return customerOrderLineItems != null ? Ok(customerOrderLineItems) : NotFound(); } - + [HttpGet("by-customer-and-po")] - public async Task> GetByCustomerAndPo([FromQuery] string customerNumber, [FromQuery] int customerSequence, [FromQuery] string poNumber) + public async Task> GetByCustomerAndPo([FromQuery] string customerNumber, + [FromQuery] int customerSequence, [FromQuery] string poNumber) { CustomerOrderDto? customerOrder = await service.GetByCustomerAndPo(customerNumber, customerSequence, poNumber); return customerOrder != null ? Ok(customerOrder) : NotFound(); } + + [HttpGet("list-by-customer-and-po")] + public async Task>> GetListByCustomerAndPo( + [FromQuery] string customerNumber, [FromQuery] int customerSequence, [FromQuery] string poNumber) + { + IList customerOrders = + await service.GetListByCustomerAndPo(customerNumber, customerSequence, poNumber); + + foreach (CustomerOrderDto customerOrder in customerOrders) + { + customerOrder.CustomerOrderLines = await service.GetLinesByCoNumber(customerOrder.CoNum) ?? []; + + foreach (CustomerOrderLineDto customerOrderLine in customerOrder.CustomerOrderLines) + { + customerOrderLine.CustomerOrderLineItems = + await service.GetItemsByCoNumber(customerOrder.CoNum) ?? []; + } + } + + return Ok(customerOrders); + } + + [HttpGet("list-by-customer")] + public async Task>> GetListByCustomer([FromQuery] string customerNumber, + [FromQuery] int customerSequence) + { + IList customerOrders = await service.GetListByCustomer(customerNumber, customerSequence); + + foreach (CustomerOrderDto customerOrder in customerOrders) + { + customerOrder.CustomerOrderLines = await service.GetLinesByCoNumber(customerOrder.CoNum) ?? []; + + foreach (CustomerOrderLineDto customerOrderLine in customerOrder.CustomerOrderLines) + { + customerOrderLine.CustomerOrderLineItems = + await service.GetItemsByCoNumber(customerOrder.CoNum) ?? []; + } + } + + return Ok(customerOrders); + } } } diff --git a/SytelineSaAppEfDataModel/Dtos/EdiCustomerOrderLineItemDto.cs b/SytelineSaAppEfDataModel/Dtos/EdiCustomerOrderLineItemDto.cs index cc85648..5cd9d5f 100644 --- a/SytelineSaAppEfDataModel/Dtos/EdiCustomerOrderLineItemDto.cs +++ b/SytelineSaAppEfDataModel/Dtos/EdiCustomerOrderLineItemDto.cs @@ -100,8 +100,8 @@ namespace SytelineSaAppEfDataModel.Dtos public string UfFkrEdiAddIntDest { get; set; } public string UfFkrEdiCustPoLineNum { get; set; } public string UfFkrEdiPlaceOrPortDischarge { get; set; } - public string RoutingCode { get; set; } - public string DeliveryCallNumber { get; set; } + public string? RoutingCode { get; set; } + public string? DeliveryCallNumber { get; set; } public string UnloadingPoint { get; set; } public string DestinationPoint { get; set; } public string NewStatus { get; set; } diff --git a/SytelineSaAppEfDataModel/Dtos/EdiCustomerOrderTranslateDto.cs b/SytelineSaAppEfDataModel/Dtos/EdiCustomerOrderTranslateDto.cs index bc1e487..f78ccca 100644 --- a/SytelineSaAppEfDataModel/Dtos/EdiCustomerOrderTranslateDto.cs +++ b/SytelineSaAppEfDataModel/Dtos/EdiCustomerOrderTranslateDto.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using AutoMapper.Configuration.Annotations; namespace SytelineSaAppEfDataModel.Dtos { @@ -20,5 +21,7 @@ namespace SytelineSaAppEfDataModel.Dtos public DateTime CreatedDate { get; set; } public string FoundNumbers { get; set; } public int ScheduleOrderId { get; set; } + + [Ignore] public string PoNumber { get; set; } } } diff --git a/SytelineSaAppEfDataModel/Dtos/ItemCustPriceAllDto.cs b/SytelineSaAppEfDataModel/Dtos/ItemCustPriceAllDto.cs index 262dd20..cb39d8f 100644 --- a/SytelineSaAppEfDataModel/Dtos/ItemCustPriceAllDto.cs +++ b/SytelineSaAppEfDataModel/Dtos/ItemCustPriceAllDto.cs @@ -1,6 +1,6 @@ namespace SytelineSaAppEfDataModel.Dtos; -public class ItemCustPriceAllDto +public class ItemCustPriceAllDto : DtoBase { public string SiteRef { get; set; } public string Item { get; set; } diff --git a/SytelineSaAppEfDataModel/Dtos/ItemDto.cs b/SytelineSaAppEfDataModel/Dtos/ItemDto.cs index 9bf8543..1f85a17 100644 --- a/SytelineSaAppEfDataModel/Dtos/ItemDto.cs +++ b/SytelineSaAppEfDataModel/Dtos/ItemDto.cs @@ -1,6 +1,6 @@ namespace SytelineSaAppEfDataModel.Dtos; -public class ItemDto +public class ItemDto : DtoBase { public string ItemCode { get; set; } public string Description { get; set; } diff --git a/SytelineSaAppEfDataModel/Services/CustomerOrderService.cs b/SytelineSaAppEfDataModel/Services/CustomerOrderService.cs index 1415b29..0d0b09c 100644 --- a/SytelineSaAppEfDataModel/Services/CustomerOrderService.cs +++ b/SytelineSaAppEfDataModel/Services/CustomerOrderService.cs @@ -73,6 +73,29 @@ namespace SytelineSaAppEfDataModel.Services .Select(x => mapper.Map(x)).FirstOrDefaultAsync(); } + public async Task> GetListByCustomerAndPo(string customerNumber, int customerSequence, + string poNumber) + { + return await context.CustomerOrders + .Where(x => x.CustNum == customerNumber && x.CustSeq == customerSequence && x.CustPo == poNumber) + .Select(x => mapper.Map(x)).ToListAsync(); + } + + public async Task> GetListByCustomer(string customerNumber, int customerSequence) + { + return await context.CustomerOrders.Where(x => x.CustNum == customerNumber && x.CustSeq == customerSequence) + .Select(x => mapper.Map(x)).ToListAsync(); + } + + public async Task?> GetLinesByCoNumber(string customerOrderNumber) + { + List customerOrderLines = await context.CustomerOrderLines + .Where(x => x.CoNum == customerOrderNumber).Select(x => mapper.Map(x)) + .ToListAsync(); + + return customerOrderLines; + } + public async Task?> GetItemsByCoNumber(string customerOrderNumber) { List customerOrderLineItems = await context.CustomerOrderLineItems diff --git a/SytelineSaAppEfDataModel/Services/ICustomerOrderService.cs b/SytelineSaAppEfDataModel/Services/ICustomerOrderService.cs index e729da4..b30d3fc 100644 --- a/SytelineSaAppEfDataModel/Services/ICustomerOrderService.cs +++ b/SytelineSaAppEfDataModel/Services/ICustomerOrderService.cs @@ -13,6 +13,12 @@ namespace SytelineSaAppEfDataModel.Services Task GetByOrderNumber(Guid orderNumber); Task GetByCoNumber(string orderNumber); Task GetByCustomerAndPo(string customerNumber, int customerSequence, string poNumber); + + Task> GetListByCustomerAndPo(string customerNumber, int customerSequence, + string poNumber); + + Task> GetListByCustomer(string customerNumber, int customerSequence); + Task?> GetLinesByCoNumber(string customerOrderNumber); Task?> GetItemsByCoNumber(string customerOrderNumber); } }