@page "/TaxPayerInvoiceItem/{InvoiceID:int}" @page "/FullInvoiceItem/{InvoiceID:int}" @using Front.Services @using Shared.DTOs @layout PanelLayout @inject HttpClientController hc; @if (FullInvoice) { اطلاعات تکمیلی صورتحساب } else { آماده سازی صورتحساب } @* alert *@
@if (FullInvoice) {

سرویس ها / صورتحساب / اطلاعات تکمیلی صورتحساب

} else {

سرویس ها / صورتحساب / آماده سازی قبل از ارسال به سامانه مودیان

} @if (!FullInvoice) {

توجه

1) این یک پیش نمایش کامل از صورتحساب شماست با دقت آنرا بررسی کنید

2) یسری از فیلدها قابل دسترس هستند میتوانید در این مرحله اطلاعات تکمیلی بیشتری برای صورتحساب وارد کنید

3) فیلد هایی که قابل دسترسی نیستند به صورت خودکار از صورتحساب پر شده اند

4) فیلد های قرمز را حتما مشخص کنید

}
اطلاعات تکمیلی سرآمد صورتحساب
@if (invoice?.header != null) {
@foreach (var item in invoice?.header.filds) {
@if (item.ModeID == 1 && item.InputBox != "autofild") { if (item.Des != null && !FullInvoice) {
شرایط خاص
} else { } } else { if (item.Des != null && !FullInvoice) {
شرایط خاص
} else { } } @if (item.InputBox == "fromdb") { } else if (item.InputBox == "autofild") { } else { }
}
}
اطلاعات تکمیلی بدنه صورتحساب (کالاها)
@if (invoice?.Bodys != null) { @foreach (var item in invoice?.Bodys) {
s.Value).First()">
@foreach (var itemB in item.filds) {
@if (itemB.ModeID == 1 && itemB.InputBox != "autofild") { if (itemB.Des != null && !FullInvoice) {
شرایط خاص
} else { } } else { if (itemB.Des != null && !FullInvoice) {
شرایط خاص
} else { } } @if (itemB.InputBox == "fromdb") { } else if (itemB.InputBox == "autofild") { } else { }
}
}
}
@if (invoice != null) { @* action *@
@if (FullInvoice) { } else { }
} @code { private Modal modal = default!; private ConfirmDialog dialog = default!; [Parameter] public int? InvoiceID { get; set; } List messages = new List(); [Inject] protected PreloadService PreloadService { get; set; } = default!; public _TaxPayer.Atemplatefield? invoice { get; set; } public bool FullInvoice { get; set; } = true; // alert AlertColor alertColor = AlertColor.Primary; IconName alertIconName = IconName.CheckCircleFill; bool Hidealert = true; string alertMessage = ""; protected override async Task OnParametersSetAsync() { PreloadService.Show(SpinnerColor.Dark); await LoadData(); PreloadService.Hide(); if (hc._nav.Uri.ToString().Contains("FullInvoiceItem")) FullInvoice = true; else FullInvoice = false; 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, }; public async Task Send() { if (!FullInvoice && !await CheckAuth()) { ShowMessage(ToastType.Danger, "خطا در احراز هویت سازمان مالیاتی"); } else { var rsp = await hc.Post<_TaxPayer.Atemplatefield>($"TaxPayer/PreparationInvoiceBeforeSending", invoice); if (rsp.IsSuccessStatusCode) { var response = await rsp.Content.ReadFromJsonAsync(); if (response) { if (FullInvoice) ShowMessage(ToastType.Success, "تغییرات با موفقیت انجام شد"); if (!FullInvoice) { ShowMessage(ToastType.Light, "در حال ارسال صورتحساب"); rsp = await hc.Get($"TaxPayer/SendInvoice/{InvoiceID}"); if (rsp.IsSuccessStatusCode) { response = await rsp.Content.ReadFromJsonAsync(); if (response) { hc._nav.NavigateTo($"TaxPayer/{InvoiceID}"); // ShowMessage(ToastType.Success, "ارسال با موفقیت انجام شد"); } else { ShowMessage(ToastType.Danger, "خطای در ارسال رخ داده"); } } else { var request = await rsp.Content.ReadFromJsonAsync>(); ShowMessage(ToastType.Danger, request[0]); } } } else { if (FullInvoice) ShowMessage(ToastType.Danger, "خطای در ذخیره سازی اطلاعات رخ داده"); else ShowMessage(ToastType.Danger, "خطای در آماده سازی اطلاعات رخ داده"); } } else { var request = await rsp.Content.ReadFromJsonAsync>(); ShowMessage(ToastType.Danger, request[0]); } } } public async Task CheckAuth() { var rsp = await hc.Get($"TaxPayer/CheckAuth"); if (rsp.IsSuccessStatusCode) { var response = await rsp.Content.ReadFromJsonAsync(); if (response) { return true; } } return false; } 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; } private async Task LoadData() { var rsp = await hc.Get($"TaxPayer/GetInvoice/{InvoiceID}"); if (rsp.IsSuccessStatusCode) { invoice = await rsp.Content.ReadFromJsonAsync<_TaxPayer.Atemplatefield?>(); } else { var request = await rsp.Content.ReadFromJsonAsync>(); ShowDangerAlert(request[0]); } } private async Task ShowConditions(string[]? Conditions, string fild) { if (Conditions != null) { var parameters = new Dictionary(); parameters.Add("Conditions", Conditions); await modal.ShowAsync(title: $"شرایط خاص برای فیلد {fild}", parameters: parameters); } } }