@page "/Invoice" @using Front.Services @using Shared @using Shared.DTOs @using Front.CUSComponent @using Shared.DTOs.Serch @inject HttpClientController hc; صورتحساب @* search *@
@* action *@
@* alert *@
@* data *@ @if (request != null) { @* pagination *@

@request?.RowCount آیتم یافت شد

} @layout PanelLayout @code { private string? customerName; public IEnumerable? customers; public List> Patterns { get; set; } private async Task> CustomersDataProvider(AutoCompleteDataProviderRequest request) { if (customers is null) // pull customers only one time for client-side autocomplete customers = await GetCustomers(); // call a service or an API to pull the customers return await Task.FromResult(request.ApplyTo(customers.OrderBy(customer => customer.CustomerName))); } //----------- [Inject] protected PreloadService PreloadService { get; set; } = default!; public int? ItemSearchInvoicetype { get; set; } ItemSerchGetInvoices itemsearch = new ItemSerchGetInvoices(); [Parameter, SupplyParameterFromQuery] public int? PageIndex { get; set; } public Shared.DTOs.PagingDto? request { get; set; } private Modal modal = default!; // alert AlertColor alertColor = AlertColor.Primary; IconName alertIconName = IconName.CheckCircleFill; bool Hidealert = true; string alertMessage = ""; protected override async Task OnParametersSetAsync() { if (PageIndex == null) PageIndex = 1; await LoadInvoice(PageIndex.Value); await base.OnParametersSetAsync(); } } @functions { private void ShowSuccessAlert(string msg) { Hidealert = false; alertColor = AlertColor.Success; alertIconName = IconName.CheckCircleFill; alertMessage = msg; } private void ShowDangerAlert(string msg) { Hidealert = false; alertColor = AlertColor.Danger; alertIconName = IconName.ExclamationTriangleFill; alertMessage = msg; } public async Task LoadInvoice(int pi) { if (ItemSearchInvoicetype == 100 || ItemSearchInvoicetype == null) itemsearch.invoiceType = null; else itemsearch.invoiceType = (InvoiceType)ItemSearchInvoicetype; itemsearch.PageSize = 10; itemsearch.PageIndex = pi; PreloadService.Show(SpinnerColor.Dark); var rsp = await hc.Post("Invoice/GetAll", itemsearch); if (rsp.IsSuccessStatusCode) { request = await rsp.Content.ReadFromJsonAsync>(); } else if (rsp.StatusCode == System.Net.HttpStatusCode.Forbidden) { ShowDangerAlert("شما دسترسی به خواندن اطلاعات صورتحساب را نداربد"); } else { ShowDangerAlert("خطایی در اجرای عملیات رخ داده"); } PreloadService.Hide(); } public async Task CallBackCustomerItem(ActionInResultComponent result) { if (result.Action == ComponentAction.add) { if (result.Status == ComponentStatus.success) ShowSuccessAlert("صورتحساب جدید با موفقیت اضافه شد"); } else if (result.Action == ComponentAction.update) { if (result.Status == ComponentStatus.success) ShowSuccessAlert("اطلاعات صورتحساب با موفقیت ویرایش شد"); } else if (result.Action == ComponentAction.delete) { if (result.Status == ComponentStatus.success) ShowSuccessAlert("صورتحساب با موفقیت حذف شد"); } if (result.Status == ComponentStatus.success) await LoadInvoice(1); await modal.HideAsync(); } public async Task InvoiceItem(int ID) { if (customers is null) customers = await GetCustomers(); if (Patterns == null || Patterns.Count < 0) { var rsp = await hc.Get("Invoice/GetPatterns"); if (rsp.IsSuccessStatusCode) { Patterns = await rsp.Content.ReadFromJsonAsync>>(); } } var parameters = new Dictionary(); if (ID == 0) parameters.Add("Invoice", new InvoiceDTO() { ID = 0, InvoiceDate = DateTime.Now.ConvertMiladiToShamsiinFront().ShamciToFormatShamciinFront(), InvoicIssueDate = DateTime.Now.ConvertMiladiToShamsiinFront().ShamciToFormatShamciinFront(), Udate = DateTime.Now.ConvertMiladiToShamsiinFront().ShamciToFormatShamciinFront() }); else parameters.Add("invoice", request.list.Where(w => w.ID == ID).First().Clone()); parameters.Add("Patterns", Patterns); parameters.Add("Cus", customers); parameters.Add("OnMultipleOfThree", EventCallback.Factory.Create(this, CallBackCustomerItem)); await modal.ShowAsync(title: ID == 0 ? "صورتحساب جدید" : "ویرایش اطلاعات", parameters: parameters); } //------------------------ private async Task> GetCustomers() { var rsp = await hc.Get("Customer/GetAllForidName"); if (rsp.IsSuccessStatusCode) { return await rsp.Content.ReadFromJsonAsync>(); } return new List(); } private void OnAutoCompleteChanged(ForCustomerSearch customer) { itemsearch.CustomerID = customer?.ID; } }