@using Front.Services @using Shared.DTOs @inject Fixedvalues fv; @inject HttpClientController hc; @context.iinn @context.acn @context.trmn @context.paymentMethod @context.trn @context.pcn @context.pid @context.PaymentDateTime @context.pv??.ToString("N0")
@if (add) { } else { }

@if (add) {
} else {
} }
@* alert *@
@code { bool add = true; [Parameter] public InvoiceDTO invoice { get; set; } Grid grid = default!; InvoicePaymentDTO item; List> pmts; // alert AlertColor alertColor = AlertColor.Primary; IconName alertIconName = IconName.CheckCircleFill; bool Hidealert = true; string alertMessage = ""; protected override async Task OnParametersSetAsync() { item = new InvoicePaymentDTO(); pmts = await fv.GetPaymentMethods(); await base.OnParametersSetAsync(); } } @functions { private async Task OnRowClick(GridRowEventArgs args) { item = args.Item; add = false; } async Task cancell() { add = true; item = new InvoicePaymentDTO(); } async Task AddPay() { if (await Validation()) { var rsp = await hc.Post("InvoicePayment/AddPay", item); if (rsp.IsSuccessStatusCode) { var request = await rsp.Content.ReadFromJsonAsync(); if (request != null && request.ID.HasValue) { invoice.payments.Add(request); await grid.RefreshDataAsync(); item = new InvoicePaymentDTO(); } else ShowDangerAlert("خطایی در اجرای عملیات رخ داده"); } else { var request = await rsp.Content.ReadFromJsonAsync>(); ShowDangerAlert(request[0]); } } } async Task UpdatePay() { if (await Validation()) { var rsp = await hc.Put("InvoicePayment/UpdatePay", item); if (rsp.IsSuccessStatusCode) { var request = await rsp.Content.ReadFromJsonAsync(); if (request != null && request.ID.HasValue) { invoice.payments.Add(request); await grid.RefreshDataAsync(); item = new InvoicePaymentDTO(); } else ShowDangerAlert("خطایی در اجرای عملیات رخ داده"); } else { var request = await rsp.Content.ReadFromJsonAsync>(); ShowDangerAlert(request[0]); } } } async Task DeletePay() { if (item.ID.HasValue) { var rsp = await hc.Delete($"InvoicePayment/DeletePay/{item.ID.Value}"); if (rsp.IsSuccessStatusCode) { var request = await rsp.Content.ReadFromJsonAsync(); if (request) { invoice.payments.Add(item); await grid.RefreshDataAsync(); item = new InvoicePaymentDTO(); } else ShowDangerAlert("خطایی در اجرای عملیات رخ داده"); } else { var request = await rsp.Content.ReadFromJsonAsync>(); ShowDangerAlert(request[0]); } } } 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; } async Task Validation() { if (invoice.tbill < invoice.payments.Sum(s => s.pv) + item.pv) { ShowDangerAlert("مجموع مبلغ پرداختی نمی تواند از مجموع صورتحساب بیشتر باشد."); return false; } if (item.pmt.HasValue && item.pmt.Value > 0 && item.pmt.Value < 9) { if (string.IsNullOrEmpty(item.PaymentDateTime)) { ShowDangerAlert("تاریخ نمیتواند خالی باشد"); return false; } else { string paydate = item.PaymentDateTime.Replace("/", ""); if (paydate.Length == 8 && int.TryParse(paydate, out int _paydate)) { if (Convert.ToInt32(invoice.InvoiceDate.Replace("/", "")) > _paydate) { ShowDangerAlert("تاریخ پرداخت نمیتواند از تاریخ صورتحساب عقبتر باشد"); return false; } } else { ShowDangerAlert("تاریخ صحیح نمی باشد"); return false; } } } else { ShowDangerAlert("روش پرداخت مشخص نشده"); return false; } return true; } }