Leandro Hernan Rojas a0c9fb2a4c
All checks were successful
CI/CD Pipeline / Build and Deploy with Docker Compose (push) Successful in 3m27s
Add OfferDays, Payment Condition
2025-05-23 12:27:56 -03:00

64 lines
3.1 KiB
C#

using Domain.Entities;
using System.Net.Http.Json;
namespace phronCare.UIBlazor.Services.Lookups
{
public class SalesLookupService : ISalesLookupService
{
private readonly HttpClient _http;
public SalesLookupService(HttpClient http) => _http = http;
public Task<IEnumerable<ELookUpItem>> SearchCustomersAsync(string filtro)
=> FetchAsync($"api/lookup/customers?q={Uri.EscapeDataString(filtro)}", filtro);
public Task<IEnumerable<ELookUpItem>> SearchProfessionalsAsync(string filtro)
=> FetchAsync($"api/lookup/professionals?q={Uri.EscapeDataString(filtro)}", filtro);
public Task<IEnumerable<ELookUpItem>> SearchInstitutionsAsync(string filtro)
=> FetchAsync($"api/lookup/institutions?q={Uri.EscapeDataString(filtro)}", filtro);
public Task<IEnumerable<ELookUpItem>> SearchPatientsAsync(string filtro)
=> FetchAsync($"api/lookup/patients?q={Uri.EscapeDataString(filtro)}", filtro);
public Task<IEnumerable<ELookUpItem>> SearchPeopleAsync(string filtro)
=> FetchAsync($"api/lookup/people?q={Uri.EscapeDataString(filtro)}", filtro);
public async Task<IEnumerable<ELookUpItem>> SearchBussinessUnitsAsync(string filtro)
{
var result = await _http.GetFromJsonAsync<List<EBusinessUnit>>("api/businessunit/all");
return result?.Select(b => new ELookUpItem
{
Id = b.Id,
Nombre = $"{b.Code} | {b.Description}"
}) ?? Enumerable.Empty<ELookUpItem>();
}
public async Task<IEnumerable<ELookUpItem>> FetchAsync(string url,string filtro)
{
if (string.IsNullOrWhiteSpace(url) || filtro.Length < 3)
return Array.Empty<ELookUpItem>();
var items = await _http.GetFromJsonAsync<ELookUpItem[]>(url);
return items ?? Array.Empty<ELookUpItem>();
}
public Task<IEnumerable<EProductLookupItem>> SearchProductsAsync(string filtro)
=> FetchProductsAsync($"api/lookup/products?q={Uri.EscapeDataString(filtro)}");
public async Task<IEnumerable<EAdjustmentReason>> GetAdjustmentReasonsAsync()
{
var items = await _http.GetFromJsonAsync<EAdjustmentReason[]>("api/adjustmentreason/getall");
return items ?? Array.Empty<EAdjustmentReason>();
}
private async Task<IEnumerable<EProductLookupItem>> FetchProductsAsync(string url)
{
var items = await _http.GetFromJsonAsync<EProductLookupItem[]>(url);
return items ?? Array.Empty<EProductLookupItem>();
}
public async Task<IEnumerable<ETaxType>> GetTaxTypesAsync()
{
var items = await _http.GetFromJsonAsync<ETaxType[]>("api/taxtype/getall");
return items ?? Array.Empty<ETaxType>();
}
public async Task<IEnumerable<ELookUpItem>> GetPaymentTermsAsync()
{
var items = await _http.GetFromJsonAsync<ELookUpItem[]>("api/lookup/paymentterms?q=");
return items ?? Array.Empty<ELookUpItem>();
}
}
}