@using Front.Services @using Shared.DTOs @inject HttpClientController hc; @inject Fixedvalues fv;
@* alert *@
@* *@
@if (itemDTO.ID == null) { } else { }
@code { public bool SpinnerVisible { get; set; } = false; List messages = new List(); private ConfirmDialog dialog = default!; // alert AlertColor alertColor = AlertColor.Primary; IconName alertIconName = IconName.CheckCircleFill; bool Hidealert = true; string alertMessage = ""; public int Tax { get; set; } = 0; [Parameter] public int InvoiceID { get; set; } [Parameter] public InvoiceItemDTO itemDTO { get; set; } [Parameter] public EventCallback OnMultipleOfThree { get; set; } public List> cods { get; set; } = new(); public ActionInResultComponent result { get; set; } protected override async Task OnInitializedAsync() { SpinnerVisible = true; cods = await fv.GetCODs(); SpinnerVisible = false; await base.OnInitializedAsync(); } protected override async Task OnParametersSetAsync() { SpinnerVisible = false; if (!itemDTO.ID.HasValue) itemDTO.vra = 0; result = new ActionInResultComponent() { Status = ComponentStatus.fild }; Hidealert = true; alertMessage = ""; await base.OnParametersSetAsync(); } } @functions { private void ShowMessage(ToastType toastType, string msg) => messages.Add(CreateToastMessage(toastType, msg)); private ToastMessage CreateToastMessage(ToastType toastType, string msg) => new ToastMessage { Type = toastType, Message = msg, }; private void ShowSuccessAlert(string msg) { Hidealert = false; alertColor = AlertColor.Success; alertIconName = IconName.CheckCircleFill; alertMessage = msg; } private async Task GetVra(int CODID) { var rsp = await hc.Get($"COD/GetVra/{CODID}"); if (rsp.IsSuccessStatusCode) { return await rsp.Content.ReadFromJsonAsync(); } return 0; } private void ShowDangerAlert(string msg) { Hidealert = false; alertColor = AlertColor.Danger; alertIconName = IconName.ExclamationTriangleFill; alertMessage = msg; } //----------------------- private async Task prdisAsync() { // if (itemDTO.ID == null) itemDTO.prdis = itemDTO.fee * itemDTO.am; } private async Task adisAsync() { // if (itemDTO.ID == null) itemDTO.adis = itemDTO.prdis - itemDTO.dis; // await AftervamAsync(); } private async Task vamAsync() { // if (itemDTO.ID == null) itemDTO.vam = itemDTO.vra * itemDTO.adis / 100; } private async Task tsstamAsync() { // if (itemDTO.ID == null) itemDTO.tsstam = itemDTO.vam + itemDTO.adis; } private async Task AfterAsync() { await prdisAsync(); await adisAsync(); await vamAsync(); await tsstamAsync(); } //----------------------- public async Task OnClickDelete() { SpinnerVisible = true; var rsp = await hc.Delete($"InvoiceItem/DeleteItem/{itemDTO.ID}"); if (rsp.IsSuccessStatusCode) { var request = await rsp.Content.ReadFromJsonAsync(); if (request) { result.Status = ComponentStatus.success; result.Action = ComponentAction.delete; await OnMultipleOfThree.InvokeAsync(result); } else ShowDangerAlert("خطایی در اجرای عملیات رخ داده"); } else { var request = await rsp.Content.ReadFromJsonAsync>(); ShowDangerAlert(request[0]); } SpinnerVisible = false; } public async Task OnClickUpdate() { SpinnerVisible = true; if (itemDTO.CODID == null || itemDTO.CODID <= 0) { ShowDangerAlert("کالا انتخاب نشده"); SpinnerVisible = false; return; } if (itemDTO.am == null || itemDTO.am <= 0) { ShowDangerAlert("تعداد وارد نشده"); SpinnerVisible = false; return; } if (itemDTO.fee == null || itemDTO.fee < 0) { ShowDangerAlert("مبلغ واحد وارد نشده"); SpinnerVisible = false; return; } if (itemDTO.dis == null || itemDTO.dis < 0) { ShowDangerAlert("مبلغ تخفیف درست نیست"); SpinnerVisible = false; return; } var rsp = await hc.Put>($"InvoiceItem/UpdateItem" , new InvoiceItemAction { invoiceID = InvoiceID, item = itemDTO }); if (rsp.IsSuccessStatusCode) { var request = await rsp.Content.ReadFromJsonAsync(); if (request) { result.Status = ComponentStatus.success; result.Action = ComponentAction.update; await OnMultipleOfThree.InvokeAsync(result); } else ShowDangerAlert("خطایی در اجرای عملیات رخ داده"); } else { var request = await rsp.Content.ReadFromJsonAsync>(); ShowDangerAlert(request[0]); } SpinnerVisible = false; } public async Task OnClickAdd() { SpinnerVisible = true; if (itemDTO.CODID == null || itemDTO.CODID <= 0) { ShowDangerAlert("کالا انتخاب نشده"); SpinnerVisible = false; return; } if (itemDTO.am == null || itemDTO.am <= 0) { ShowDangerAlert("تعداد وارد نشده"); SpinnerVisible = false; return; } if (itemDTO.fee == null || itemDTO.fee < 0) { ShowDangerAlert("مبلغ واحد وارد نشده"); SpinnerVisible = false; return; } if (itemDTO.dis == null || itemDTO.dis < 0) { ShowDangerAlert("مبلغ تخفیف درست نیست"); SpinnerVisible = false; return; } var rsp = await hc.Post>($"InvoiceItem/AddItem", new InvoiceItemAction { invoiceID = InvoiceID, item = itemDTO }); if (rsp.IsSuccessStatusCode) { var request = await rsp.Content.ReadFromJsonAsync(); if (request) { result.Status = ComponentStatus.success; result.Action = ComponentAction.add; await OnMultipleOfThree.InvokeAsync(result); } else ShowDangerAlert("خطایی در اجرای عملیات رخ داده"); } else { var request = await rsp.Content.ReadFromJsonAsync>(); ShowDangerAlert(request[0]); } SpinnerVisible = false; } private async Task ShowConfirmationDeleteAsync() { if (itemDTO.ID != null && itemDTO.ID > 0 && InvoiceID != null && InvoiceID > 0) { var confirmation = await dialog.ShowAsync( title: "عملیات حذف آیتم صورتحساب", message1: $"از حذف کالای {itemDTO.sstt} از صورتحساب {InvoiceID}", message2: "اطمینان دارید?"); if (confirmation) { await OnClickDelete(); } else { ShowMessage(ToastType.Secondary, "عملیات حذف متوقف شد"); } } } }