This commit is contained in:
mmrbnjd
2024-10-15 14:19:54 +03:30
parent 595a9ea5d8
commit fb4e9b5bd5
13 changed files with 257 additions and 122 deletions

View File

@@ -98,25 +98,31 @@
</div> </div>
</form> </form>
<div class="row g-3">
<div class="col-md-10">
@if (itemDTO.ID == null) @if (itemDTO.ID == null)
{ {
<Button class="mt-3" Color="ButtonColor.Success" @onclick="OnClickAdd" Type="ButtonType.Button"> <Button Disabled="SpinnerVisible" class="mt-3" Color="ButtonColor.Success" @onclick="OnClickAdd" Type="ButtonType.Button">
جدید جدید
</Button> </Button>
} }
else else
{ {
<Button class="mt-3" Color="ButtonColor.Success" @onclick="OnClickUpdate" Type="ButtonType.Button"> <Button Disabled="SpinnerVisible" class="mt-3" Color="ButtonColor.Success" @onclick="OnClickUpdate" Type="ButtonType.Button">
ثبت تغییرات ثبت تغییرات
</Button> </Button>
<Button class="mt-3" Color="ButtonColor.Danger" @onclick="ShowConfirmationDeleteAsync" Type="ButtonType.Button"> <Button Disabled="SpinnerVisible" class="mt-3" Color="ButtonColor.Danger" @onclick="ShowConfirmationDeleteAsync" Type="ButtonType.Button">
حذف حذف
</Button> </Button>
} }
</div>
<div class="col-md-2">
<Spinner Visible="SpinnerVisible" Color="SpinnerColor.Primary" />
</div>
</div>
@code { @code {
public bool SpinnerVisible { get; set; } = false;
List<ToastMessage> messages = new List<ToastMessage>(); List<ToastMessage> messages = new List<ToastMessage>();
private ConfirmDialog dialog = default!; private ConfirmDialog dialog = default!;
// alert // alert
@@ -132,11 +138,14 @@ else
public ActionInResultComponent result { get; set; } public ActionInResultComponent result { get; set; }
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {
SpinnerVisible = true;
cods = await fv.GetCODs(); cods = await fv.GetCODs();
SpinnerVisible = false;
await base.OnInitializedAsync(); await base.OnInitializedAsync();
} }
protected override async Task OnParametersSetAsync() protected override async Task OnParametersSetAsync()
{ {
SpinnerVisible = false;
result = new ActionInResultComponent() result = new ActionInResultComponent()
{ {
@@ -203,7 +212,7 @@ else
//----------------------- //-----------------------
public async Task OnClickDelete() public async Task OnClickDelete()
{ {
SpinnerVisible = true;
var rsp = await hc.Delete($"InvoiceItem/DeleteItem/{itemDTO.ID}"); var rsp = await hc.Delete($"InvoiceItem/DeleteItem/{itemDTO.ID}");
if (rsp.IsSuccessStatusCode) if (rsp.IsSuccessStatusCode)
{ {
@@ -222,34 +231,37 @@ else
var request = await rsp.Content.ReadFromJsonAsync<List<string>>(); var request = await rsp.Content.ReadFromJsonAsync<List<string>>();
ShowDangerAlert(request[0]); ShowDangerAlert(request[0]);
} }
SpinnerVisible = false;
} }
public async Task OnClickUpdate() public async Task OnClickUpdate()
{ {
SpinnerVisible = true;
if (itemDTO.CODID == null || itemDTO.CODID <= 0) if (itemDTO.CODID == null || itemDTO.CODID <= 0)
{ {
ShowDangerAlert("کالا انتخاب نشده"); ShowDangerAlert("کالا انتخاب نشده");
SpinnerVisible = false;
return; return;
} }
if (itemDTO.am == null || itemDTO.am <= 0) if (itemDTO.am == null || itemDTO.am <= 0)
{ {
ShowDangerAlert("تعداد وارد نشده"); ShowDangerAlert("تعداد وارد نشده");
SpinnerVisible = false;
return; return;
} }
if (itemDTO.fee == null || itemDTO.fee < 0) if (itemDTO.fee == null || itemDTO.fee < 0)
{ {
ShowDangerAlert("مبلغ واحد وارد نشده"); ShowDangerAlert("مبلغ واحد وارد نشده"); SpinnerVisible = false;
return; return;
} }
if (itemDTO.dis == null || itemDTO.dis < 0) if (itemDTO.dis == null || itemDTO.dis < 0)
{ {
ShowDangerAlert("مبلغ تخفیف درست نیست"); ShowDangerAlert("مبلغ تخفیف درست نیست"); SpinnerVisible = false;
return; return;
} }
var rsp = await hc.Put<InvoiceItemAction<InvoiceItemDTO>>($"InvoiceItem/UpdateItem" var rsp = await hc.Put<InvoiceItemAction<InvoiceItemDTO>>($"InvoiceItem/UpdateItem"
@@ -274,30 +286,32 @@ else
var request = await rsp.Content.ReadFromJsonAsync<List<string>>(); var request = await rsp.Content.ReadFromJsonAsync<List<string>>();
ShowDangerAlert(request[0]); ShowDangerAlert(request[0]);
} }
SpinnerVisible = false;
} }
public async Task OnClickAdd() public async Task OnClickAdd()
{ {
SpinnerVisible = true;
if (itemDTO.CODID == null || itemDTO.CODID <= 0) if (itemDTO.CODID == null || itemDTO.CODID <= 0)
{ {
ShowDangerAlert("کالا انتخاب نشده"); ShowDangerAlert("کالا انتخاب نشده"); SpinnerVisible = false;
return; return;
} }
if (itemDTO.am == null || itemDTO.am <= 0) if (itemDTO.am == null || itemDTO.am <= 0)
{ {
ShowDangerAlert("تعداد وارد نشده"); ShowDangerAlert("تعداد وارد نشده"); SpinnerVisible = false;
return; return;
} }
if (itemDTO.fee == null || itemDTO.fee < 0) if (itemDTO.fee == null || itemDTO.fee < 0)
{ {
ShowDangerAlert("مبلغ واحد وارد نشده"); ShowDangerAlert("مبلغ واحد وارد نشده"); SpinnerVisible = false;
return; return;
} }
if (itemDTO.dis == null || itemDTO.dis < 0) if (itemDTO.dis == null || itemDTO.dis < 0)
{ {
ShowDangerAlert("مبلغ تخفیف درست نیست"); ShowDangerAlert("مبلغ تخفیف درست نیست"); SpinnerVisible = false;
return; return;
} }
@@ -323,7 +337,7 @@ else
var request = await rsp.Content.ReadFromJsonAsync<List<string>>(); var request = await rsp.Content.ReadFromJsonAsync<List<string>>();
ShowDangerAlert(request[0]); ShowDangerAlert(request[0]);
} }
SpinnerVisible = false;
} }
private async Task ShowConfirmationDeleteAsync() private async Task ShowConfirmationDeleteAsync()
{ {

View File

@@ -141,12 +141,13 @@
</div> </div>
</div> </div>
<div class="row g-3">
<div class="col-md-10">
@if (add) @if (add)
{ {
<div class="row g-3"> <div class="row g-3">
<div class="form-group col-md-6"> <div class="form-group col-md-6">
<Button class="mt-3" Color="ButtonColor.Success" @onclick="AddPay" Type="ButtonType.Button"> <Button Disabled="SpinnerVisible" class="mt-3" Color="ButtonColor.Success" @onclick="AddPay" Type="ButtonType.Button">
جدید جدید
</Button> </Button>
</div> </div>
@@ -155,24 +156,28 @@
else else
{ <div class="row g-3"> { <div class="row g-3">
<div class="form-group col-md-6"> <div class="form-group col-md-6">
<Button class="mt-3" Color="ButtonColor.Info" @onclick="UpdatePay" Type="ButtonType.Button"> <Button Disabled="SpinnerVisible" class="mt-3" Color="ButtonColor.Info" @onclick="UpdatePay" Type="ButtonType.Button">
ویرایش ویرایش
</Button> </Button>
<Button class="mt-3" Color="ButtonColor.Danger" @onclick="DeletePay" Type="ButtonType.Button"> <Button Disabled="SpinnerVisible" class="mt-3" Color="ButtonColor.Danger" @onclick="DeletePay" Type="ButtonType.Button">
حذف حذف
</Button> </Button>
<Button class="mt-3" Color="ButtonColor.Primary" @onclick="cancell" Type="ButtonType.Button"> <Button Disabled="SpinnerVisible" class="mt-3" Color="ButtonColor.Primary" @onclick="cancell" Type="ButtonType.Button">
انصراف انصراف
</Button> </Button>
</div> </div>
</div> </div>
} }
</div> <div class="col-md-2">
<Spinner Visible="SpinnerVisible" Color="SpinnerColor.Primary" />
</div>
</div>
@code { @code {
public bool SpinnerVisible { get; set; } = false;
private ConfirmDialog dialog = default!; private ConfirmDialog dialog = default!;
bool add = true; bool add = true;
[Parameter] public InvoiceDTO invoice { get; set; } [Parameter] public InvoiceDTO invoice { get; set; }
@@ -188,8 +193,9 @@
protected override async Task OnParametersSetAsync() protected override async Task OnParametersSetAsync()
{ {
item = new InvoicePaymentDTO(); item = new InvoicePaymentDTO();
SpinnerVisible = true;
pmts = await fv.GetPaymentMethods(); pmts = await fv.GetPaymentMethods();
SpinnerVisible = false;
await base.OnParametersSetAsync(); await base.OnParametersSetAsync();
} }
} }
@@ -208,6 +214,7 @@
} }
async Task AddPay() async Task AddPay()
{ {
SpinnerVisible = true;
Hidealert = true; Hidealert = true;
if (await Validation()) if (await Validation())
{ {
@@ -239,12 +246,13 @@
} }
} }
SpinnerVisible = false;
} }
async Task UpdatePay() async Task UpdatePay()
{ {
Hidealert = true; Hidealert = true;
SpinnerVisible = true;
if (await Validation()) if (await Validation())
{ {
var rsp = await hc.Put<InvoiceItemAction<InvoicePaymentDTO>>("InvoicePayment/UpdatePay", new InvoiceItemAction<InvoicePaymentDTO>() var rsp = await hc.Put<InvoiceItemAction<InvoicePaymentDTO>>("InvoicePayment/UpdatePay", new InvoiceItemAction<InvoicePaymentDTO>()
@@ -275,6 +283,7 @@
ShowDangerAlert(request[0]); ShowDangerAlert(request[0]);
} }
} }
SpinnerVisible = false;
} }
async Task DeletePay() async Task DeletePay()
{ {
@@ -285,6 +294,7 @@
if (confirmation) if (confirmation)
{ {
SpinnerVisible = true;
Hidealert = true; Hidealert = true;
if (item.ID.HasValue) if (item.ID.HasValue)
{ {
@@ -311,6 +321,7 @@
ShowDangerAlert(request[0]); ShowDangerAlert(request[0]);
} }
} }
SpinnerVisible = false;
} }
} }

View File

@@ -126,15 +126,18 @@
<div class="row"> <div class="row">
<div class="col-md-8"> <div class="col-md-6">
<span class="text-muted fw-light">قیمت نهایی :</span> @TotalPrice.ToString("N0") ريال <span class="text-muted fw-light">قیمت نهایی :</span> @TotalPrice.ToString("N0") ريال
</div> </div>
<div class="col-md-4"> <div class="col-md-4">
<button type="submit" @onclick="NewOrder" class="btn btn-primary">ثبت</button> <Button Disabled="SpinnerVisible" Color="ButtonColor.Primary" @onclick="NewOrder">ثبت</Button>
</div>
<div class="col-md-2">
<Spinner Visible="SpinnerVisible" Color="SpinnerColor.Primary" />
</div> </div>
</div> </div>
@code { @code {
public bool SpinnerVisible { get; set; } = false;
#region Alert #region Alert
// alert // alert
AlertColor alertColor = AlertColor.Primary; AlertColor alertColor = AlertColor.Primary;
@@ -224,7 +227,7 @@
} }
public async Task NewOrder() public async Task NewOrder()
{ {
SpinnerVisible = true;
if (Selected != null) if (Selected != null)
{ {
if (Selected.ID < 0 && (values[0] < 0 || values[1] < 0 || values[2] < 0 || values[3] < 0)) return; if (Selected.ID < 0 && (values[0] < 0 || values[1] < 0 || values[2] < 0 || values[3] < 0)) return;
@@ -264,7 +267,7 @@
} }
} }
SpinnerVisible = false;
} }
} }

View File

@@ -97,19 +97,21 @@
<br /> <br />
@if (order.Status == StatusOrder.Create) @if (order.Status == StatusOrder.Create)
{ {
<Button class="mt-3" Color="ButtonColor.Success" @onclick="OnClickPay" Type="ButtonType.Button"> <Button Disabled="SpinnerVisible" class="mt-3" Color="ButtonColor.Success" @onclick="OnClickPay" Type="ButtonType.Button">
پرداخت با کیف پول پرداخت با کیف پول
</Button> </Button>
<Button class="mt-3" Color="ButtonColor.Danger" @onclick="OnClickCancel" Type="ButtonType.Button"> <Button Disabled="SpinnerVisible" class="mt-3" Color="ButtonColor.Danger" @onclick="OnClickCancel" Type="ButtonType.Button">
ابطال ابطال
</Button> </Button>
} }
</div> </div>
<div class="col-md-2">
<Spinner Visible="SpinnerVisible" Color="SpinnerColor.Primary" />
</div>
@code { @code {
public bool SpinnerVisible { get; set; } = false;
#region Alert #region Alert
// alert // alert
AlertColor alertColor = AlertColor.Primary; AlertColor alertColor = AlertColor.Primary;
@@ -162,12 +164,17 @@
} }
private async Task<List<OrderItemDto>> LoadOrderItem() private async Task<List<OrderItemDto>> LoadOrderItem()
{ {
SpinnerVisible = true;
var rsp = await hc.Get($"Orders/GetOrderDetails/{order.ID}"); var rsp = await hc.Get($"Orders/GetOrderDetails/{order.ID}");
if (rsp.IsSuccessStatusCode) if (rsp.IsSuccessStatusCode)
{
SpinnerVisible = false;
return await rsp.Content.ReadFromJsonAsync<List<OrderItemDto>?>(); return await rsp.Content.ReadFromJsonAsync<List<OrderItemDto>?>();
}
else else
{ {
SpinnerVisible = false;
ShowDangerAlert("خطایی در بارگیری"); ShowDangerAlert("خطایی در بارگیری");
return new List<OrderItemDto>(); return new List<OrderItemDto>();
} }
@@ -175,6 +182,7 @@
} }
private async Task OnClickPay() private async Task OnClickPay()
{ {
SpinnerVisible = true;
var rsp = await hc.Get($"Orders/SubmitOrderBywallet/{order.ID}"); var rsp = await hc.Get($"Orders/SubmitOrderBywallet/{order.ID}");
if (rsp.IsSuccessStatusCode) if (rsp.IsSuccessStatusCode)
@@ -183,6 +191,7 @@
result = new ActionInResultComponent(); result = new ActionInResultComponent();
result.Status = ComponentStatus.success; result.Status = ComponentStatus.success;
result.Action = ComponentAction.add; result.Action = ComponentAction.add;
await OnMultipleOfThree.InvokeAsync(result); await OnMultipleOfThree.InvokeAsync(result);
} }
else else
@@ -191,7 +200,7 @@
ShowDangerAlert(request[0]); ShowDangerAlert(request[0]);
} }
SpinnerVisible = false;
} }
private async Task OnClickCancel() private async Task OnClickCancel()
@@ -203,31 +212,34 @@
if (confirmation) if (confirmation)
{ {
SpinnerVisible = true;
PreloadService.Show(SpinnerColor.Dark); PreloadService.Show(SpinnerColor.Dark);
var rsp = await hc.Delete($"Orders/CancelOrder/{order.ID}"); var rsp = await hc.Delete($"Orders/CancelOrder/{order.ID}");
PreloadService.Hide(); PreloadService.Hide();
if (rsp.IsSuccessStatusCode) if (rsp.IsSuccessStatusCode)
{ {
if(await rsp.Content.ReadFromJsonAsync<bool>()) if (await rsp.Content.ReadFromJsonAsync<bool>())
{ {
order.Status = StatusOrder.Cancel; order.Status = StatusOrder.Cancel;
result = new ActionInResultComponent(); result = new ActionInResultComponent();
result.Status = ComponentStatus.success; result.Status = ComponentStatus.success;
result.Action = ComponentAction.delete; result.Action = ComponentAction.delete;
await OnMultipleOfThree.InvokeAsync(result); await OnMultipleOfThree.InvokeAsync(result);
} }
else else
ShowDangerAlert("خطای سیستمی"); ShowDangerAlert("خطای سیستمی");
}
else if (rsp.StatusCode==System.Net.HttpStatusCode.NotFound)
ShowDangerAlert("سفارش یافت نشد");
else
{ }
var request = await rsp.Content.ReadFromJsonAsync<List<string>>(); else if (rsp.StatusCode == System.Net.HttpStatusCode.NotFound)
ShowDangerAlert(request[0]); ShowDangerAlert("سفارش یافت نشد");
}
else
{
var request = await rsp.Content.ReadFromJsonAsync<List<string>>();
ShowDangerAlert(request[0]);
}
SpinnerVisible = false;
} }
} }

View File

@@ -34,32 +34,32 @@
<div class="row gx-20"> <div class="row gx-20">
<div class="col-12"> <div class="col-12">
<div class="postbox__comment-input mb-30"> <div class="postbox__comment-input mb-30">
<InputText @bind-Value="modelTaxTools.cn" id="cn" type="text" class="inputText" required="" /> <InputText style="text-align:center" dir="ltr" @bind-Value="modelTaxTools.cn" id="cn" type="text" class="inputText" required="" />
<span class="floating-label">نام شرکت به حالت فینگلیش</span> <span class="floating-label">نام شرکت به حالت فینگلیش</span>
</div> </div>
</div> </div>
<div class="col-12"> <div class="col-12">
<div class="postbox__comment-input mb-30"> <div class="postbox__comment-input mb-30">
<InputText @bind-Value="modelTaxTools.sn" id="sn" type="text" class="inputText" required="" /> <InputText style="text-align:center" @bind-Value="modelTaxTools.sn" id="sn" dir="ltr" type="number" class="inputText" required="" />
<span class="floating-label">شناسه ملی شرکت</span> <span class="floating-label">شناسه ملی شرکت</span>
</div> </div>
</div> </div>
<div class="col-12"> <div class="col-12">
<div class="postbox__comment-input mb-35"> <div class="postbox__comment-input mb-35">
<InputText @bind-Value="modelTaxTools.company" id="company" type="text" class="inputText" required="" /> <InputText style="text-align:center" @bind-Value="modelTaxTools.company" id="company" type="text" class="inputText" required="" />
<span class="floating-label">نام شرکت به فارسی</span> <span class="floating-label">نام شرکت به فارسی</span>
</div> </div>
</div> </div>
<div class="col-12"> <div class="col-12">
<div class="postbox__comment-input mb-35"> <div class="postbox__comment-input mb-35">
<InputText @bind-Value="modelTaxTools.Mobile" id="Mobile" type="text" class="inputText" required="" /> <InputText style="text-align:center" @bind-Value="modelTaxTools.Mobile" dir="ltr" id="Mobile" type="number" class="inputText" required="" />
<span class="floating-label">موبایل</span> <span class="floating-label">موبایل</span>
</div> </div>
</div> </div>
<div class="col-xxl-6"> <div class="col-xxl-6">
<div class="postbox__btn-box w-50"> <div class="postbox__btn-box w-50">
<button type="submit" class="btn btn-outline-primary">ایجاد CSR و PrivateKey</button> <Button Disabled="SpinnerVisible" Type="ButtonType.Submit" Color="ButtonColor.Primary">ایجاد CSR و PrivateKey</Button>
</div> </div>
</div> </div>
@@ -70,7 +70,9 @@
</div> *@ </div> *@
</div> </div>
</EditForm> </EditForm>
<br /> <br /> <br />
<Spinner Visible="SpinnerVisible" Color="SpinnerColor.Primary" />
<br />
<div class="row"> <div class="row">
<div class="col-12"> <div class="col-12">
<div class="popular-blog-title mb-20"> <div class="popular-blog-title mb-20">
@@ -84,7 +86,11 @@
<div class="row"> <div class="row">
<label> <label>
حداکثر سایز مجاز فایل @maxFileSize بایت: حداکثر سایز مجاز فایل @maxFileSize بایت:
<InputFile OnChange="ReadPublicKeyFromCER" multiple /> <InputFile
hidden="@hidden"
OnChange="ReadPublicKeyFromCER" multiple />
</label> </label>
</div> </div>
</div> </div>
@@ -99,9 +105,10 @@
</div> </div>
@code { @code {
public string hidden { get; set; }
public bool SpinnerVisible { get; set; } = false;
private long maxFileSize = 1024 * 15; private long maxFileSize = 1024 * 15;
public string ErrorReadpublickey { get; set; } public string ErrorReadpublickey { get; set; }
private EditContext? editContext; private EditContext? editContext;
[SupplyParameterFromForm] [SupplyParameterFromForm]
@@ -111,6 +118,8 @@
protected override void OnInitialized() protected override void OnInitialized()
{ {
SpinnerVisible = false;
hidden = null;
// modelTaxTools ??= new(); // modelTaxTools ??= new();
// editContext = new(modelTaxTools); // editContext = new(modelTaxTools);
// editContext.OnValidationRequested += HandleValidationRequested; // editContext.OnValidationRequested += HandleValidationRequested;
@@ -135,7 +144,8 @@
@functions { @functions {
private async Task CreateCsrAndPrivateKey() private async Task CreateCsrAndPrivateKey()
{ {
hidden = "hidden";
SpinnerVisible = true;
var request = await _hc.PostAsJsonAsync("Base/CreateCsrAndPrivateKey", modelTaxTools); var request = await _hc.PostAsJsonAsync("Base/CreateCsrAndPrivateKey", modelTaxTools);
if (request.IsSuccessStatusCode) if (request.IsSuccessStatusCode)
{ {
@@ -150,9 +160,13 @@
messageStore?.Add(() => modelTaxTools.Mobile, error); messageStore?.Add(() => modelTaxTools.Mobile, error);
} }
SpinnerVisible = false;
hidden = null;
} }
private async Task ReadPublicKeyFromCER(InputFileChangeEventArgs e) private async Task ReadPublicKeyFromCER(InputFileChangeEventArgs e)
{ {
hidden = "hidden";
SpinnerVisible = true;
ErrorReadpublickey = ""; ErrorReadpublickey = "";
if (e.GetMultipleFiles()[0].Size <= maxFileSize) if (e.GetMultipleFiles()[0].Size <= maxFileSize)
{ {
@@ -184,25 +198,31 @@
{ {
ErrorReadpublickey = "حجم فایل بیشتر از حد مجاز می باشد"; ErrorReadpublickey = "حجم فایل بیشتر از حد مجاز می باشد";
} }
hidden = null;
SpinnerVisible = false;
} }
private Stream GetFileStream(byte[] bytes) private Stream GetFileStream(byte[] bytes)
{ {
hidden = "hidden";
SpinnerVisible = true;
var fileStream = new MemoryStream(bytes); var fileStream = new MemoryStream(bytes);
SpinnerVisible=false;
hidden = null;
return fileStream; return fileStream;
} }
private async Task DownloadFileFromStream(string Base64, string FileName) private async Task DownloadFileFromStream(string Base64, string FileName)
{ {
hidden = "hidden";
SpinnerVisible = true;
byte[] bytes = System.Convert.FromBase64String(Base64); byte[] bytes = System.Convert.FromBase64String(Base64);
var fileStream = GetFileStream(bytes); var fileStream = GetFileStream(bytes);
// var fileName = "log.bin"; // var fileName = "log.bin";
using var streamRef = new DotNetStreamReference(stream: fileStream); using var streamRef = new DotNetStreamReference(stream: fileStream);
SpinnerVisible = false ;
hidden = null;
await JS.InvokeVoidAsync("downloadFileFromStream", FileName, streamRef); await JS.InvokeVoidAsync("downloadFileFromStream", FileName, streamRef);
} }
} }

View File

@@ -4,12 +4,12 @@
<div class="row justify-content-center"> <div class="row justify-content-center">
<div class="col-lg-8"> <div class="col-lg-8">
<div class="tp-service__section-box mb-50 text-center tp-title-anim"> <div class="tp-service__section-box mb-50 text-center tp-title-anim">
<h2 class="tp-section-title">درباره سامانه مودیران</h2> <h2 class="tp-section-title">درباره سامانه مُؤدیٰران</h2>
</div> </div>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div > <div style="text-align: justify;text-justify: inter-word;">
<p> <p>
سامانه مودیران برای راحتی کاربری با سامانه مودیان طراحی شده است و هدف اصلی ما هم افزایش دانش مالیاتی می باشد، برای همین دوستانی نزدیک حمع شدیم که بتوانیم قدمی مثبت در این راه برداریم تا بتوانیم انکی در ایرانی آباد سهیم باشیم سامانه مودیران برای راحتی کاربری با سامانه مودیان طراحی شده است و هدف اصلی ما هم افزایش دانش مالیاتی می باشد، برای همین دوستانی نزدیک حمع شدیم که بتوانیم قدمی مثبت در این راه برداریم تا بتوانیم انکی در ایرانی آباد سهیم باشیم

File diff suppressed because one or more lines are too long

View File

@@ -41,7 +41,12 @@
</div> </div>
<div class="col-auto"> <div class="col-auto">
<button @onclick="() => GetOrders(1)" type="submit" class="btn btn-primary">جستجو</button> <Button Disabled="SpinnerVisible" @onclick="() => GetOrders(1)" Color="ButtonColor.Primary">جستجو</Button>
</div>
<div class="col-md-2">
<Spinner Visible="SpinnerVisible" Color="SpinnerColor.Primary" />
</div> </div>
</div> </div>
</li> </li>
@@ -60,7 +65,7 @@
<div class="row g-3"> <div class="row g-3">
<div class="col-auto"> <div class="col-auto">
<button type="submit" @onclick="NewOrderItem" class="btn btn-primary">جدید</button> <Button Disabled="SpinnerVisible" Color="ButtonColor.Primary" @onclick="NewOrderItem">جدید</Button>
</div> </div>
@@ -113,6 +118,7 @@
@layout PanelLayout @layout PanelLayout
@code { @code {
public bool SpinnerVisible { get; set; } = false;
//private Modal stuffmodal = default!; //private Modal stuffmodal = default!;
[Inject] protected PreloadService PreloadService { get; set; } = default!; [Inject] protected PreloadService PreloadService { get; set; } = default!;
ItemSerachOrder itemsearch = new ItemSerachOrder(); ItemSerachOrder itemsearch = new ItemSerachOrder();
@@ -130,10 +136,12 @@
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {
SpinnerVisible = false;
await base.OnInitializedAsync(); await base.OnInitializedAsync();
} }
protected override async Task OnParametersSetAsync() protected override async Task OnParametersSetAsync()
{ {
SpinnerVisible = false;
if (PageIndex == null) PageIndex = 1; if (PageIndex == null) PageIndex = 1;
await GetOrders(PageIndex.Value); await GetOrders(PageIndex.Value);
await base.OnParametersSetAsync(); await base.OnParametersSetAsync();
@@ -142,6 +150,7 @@
@functions { @functions {
public async Task GetOrders(int pi=1) public async Task GetOrders(int pi=1)
{ {
SpinnerVisible = true;
if (ItemSearchOrdertype == 0 || ItemSearchOrdertype == null) if (ItemSearchOrdertype == 0 || ItemSearchOrdertype == null)
itemsearch.Status = null; itemsearch.Status = null;
else else
@@ -156,7 +165,7 @@
else else
ShowDangerAlert("خطایی در بارگیری سفارشات رخ داده"); ShowDangerAlert("خطایی در بارگیری سفارشات رخ داده");
PreloadService.Hide(); PreloadService.Hide();
SpinnerVisible = false;
} }
private void ShowSuccessAlert(string msg) private void ShowSuccessAlert(string msg)
{ {

View File

@@ -12,12 +12,16 @@
<span class="text-muted fw-light">متفرقه /</span> پروفایل <span class="text-muted fw-light">متفرقه /</span> پروفایل
</h4> </h4>
<div class="row"> <div class="row">
<div class="col-md-10">
<Alert hidden="@Hidealert" Color="@alertColor" Dismissable="false"> <Alert hidden="@Hidealert" Color="@alertColor" Dismissable="false">
<Icon Name="@alertIconName" class="me-2"></Icon> <Icon Name="@alertIconName" class="me-2"></Icon>
@alertMessage @alertMessage
</Alert> </Alert>
</div>
<div class="col-md-2">
<Spinner Visible="SpinnerVisible" Color="SpinnerColor.Primary" />
</div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
@@ -36,7 +40,7 @@
<label for="upload" class="btn btn-primary me-2 mb-4" tabindex="0"> <label for="upload" class="btn btn-primary me-2 mb-4" tabindex="0">
<span class="d-none d-sm-block">آپلود تصویر جدید</span> <span class="d-none d-sm-block">آپلود تصویر جدید</span>
<i class="bx bx-upload d-block d-sm-none"></i> <i class="bx bx-upload d-block d-sm-none"></i>
<InputFile OnChange="changePic" type="file" id="upload" class="account-file-input" hidden="" accept="image/png, image/jpeg"/> <InputFile OnChange="changePic" type="file" id="upload" class="account-file-input" hidden="" accept="image/png, image/jpeg"/>
</label> </label>
<p class="text-muted mb-0">JPG، GIF یا PNG مجاز است. حداکثر اندازه @maxFileSize هزار</p> <p class="text-muted mb-0">JPG، GIF یا PNG مجاز است. حداکثر اندازه @maxFileSize هزار</p>
@@ -70,7 +74,7 @@
<InputText @bind-Value="@changepassModel.renewPass" style="text-align:center;" class="form-control" type="password" id="html5-password-input3" /> <InputText @bind-Value="@changepassModel.renewPass" style="text-align:center;" class="form-control" type="password" id="html5-password-input3" />
</div> </div>
</div> </div>
<button type="submit" class="btn btn-primary">ارسال</button> <Button Disabled="SpinnerVisible" Type="ButtonType.Submit" Color="ButtonColor.Primary">ارسال</Button>
</EditForm> </EditForm>
</div> </div>
@@ -88,7 +92,7 @@
<span id="basic-icon-default-phone2" class="input-group-text"><i class="bx bx-phone"></i></span> <span id="basic-icon-default-phone2" class="input-group-text"><i class="bx bx-phone"></i></span>
</div> </div>
</div> </div>
<button type="submit" class="btn btn-primary">ارسال</button> <Button Disabled="SpinnerVisible" Type="ButtonType.Submit" Color="ButtonColor.Primary">ارسال</Button>
</EditForm> </EditForm>
</div> </div>
@@ -108,7 +112,7 @@
<InputText @bind-Value="@newname" style="text-align:right;" type="text" id="basic-icon-default-company" class="form-control" placeholder="@userinfo.Company.Name" aria-label="@userinfo.Company.Name" aria-describedby="basic-icon-default-company2"/> <InputText @bind-Value="@newname" style="text-align:right;" type="text" id="basic-icon-default-company" class="form-control" placeholder="@userinfo.Company.Name" aria-label="@userinfo.Company.Name" aria-describedby="basic-icon-default-company2"/>
</div> </div>
</div> </div>
<button type="submit" class="btn btn-primary">ارسال</button> <Button Disabled="SpinnerVisible" Type="ButtonType.Submit" Color="ButtonColor.Primary">ارسال</Button>
</EditForm> </EditForm>
</div> </div>
</div> </div>
@@ -120,6 +124,7 @@
@code { @code {
public bool SpinnerVisible { get; set; } = false;
[Parameter] [Parameter]
public string from { get; set; } = ""; public string from { get; set; } = "";
@@ -168,6 +173,7 @@
alertMessage = msg; alertMessage = msg;
} }
private async Task changepassSubmit(){ private async Task changepassSubmit(){
SpinnerVisible = true;
var request = await _hc.Post<ChangePasswordDto>("User/ChangePassword", changepassModel); var request = await _hc.Post<ChangePasswordDto>("User/ChangePassword", changepassModel);
if (request.IsSuccessStatusCode) if (request.IsSuccessStatusCode)
{ {
@@ -184,9 +190,11 @@
var errors = await request.Content.ReadFromJsonAsync<List<string>>(); var errors = await request.Content.ReadFromJsonAsync<List<string>>();
ShowDangerAlert(errors[0]); ShowDangerAlert(errors[0]);
} }
SpinnerVisible = false;
} }
private async Task changeUserNameSubmit() private async Task changeUserNameSubmit()
{ {
SpinnerVisible = true;
if (newUsername != userinfo.UserName) if (newUsername != userinfo.UserName)
{ {
var request = await _hc.Get($"User/ChangeUserName/{newUsername}"); var request = await _hc.Get($"User/ChangeUserName/{newUsername}");
@@ -203,10 +211,11 @@
ShowDangerAlert(errors[0]); ShowDangerAlert(errors[0]);
} }
} }
SpinnerVisible = false;
} }
private async Task changeNameSubmit() private async Task changeNameSubmit()
{ {
SpinnerVisible = true;
if (newname != userinfo.Company.Name) if (newname != userinfo.Company.Name)
{ {
var request = await _hc.Get($"Company/ChangeName/{newname}"); var request = await _hc.Get($"Company/ChangeName/{newname}");
@@ -231,9 +240,10 @@
ShowDangerAlert(errors[0]); ShowDangerAlert(errors[0]);
} }
} }
SpinnerVisible = false;
} }
private async Task changePic(InputFileChangeEventArgs e){ private async Task changePic(InputFileChangeEventArgs e){
SpinnerVisible = true;
if (e.GetMultipleFiles()[0].Size <= maxFileSize) if (e.GetMultipleFiles()[0].Size <= maxFileSize)
{ {
string Base64Str = ""; string Base64Str = "";
@@ -266,6 +276,7 @@
{ {
ShowDangerAlert ( "حجم فایل بیشتر از حد مجاز می باشد"); ShowDangerAlert ( "حجم فایل بیشتر از حد مجاز می باشد");
} }
SpinnerVisible = false;
} }
} }

View File

@@ -12,12 +12,16 @@
<span class="text-muted fw-light">متفرقه /</span> تنظیمات <span class="text-muted fw-light">متفرقه /</span> تنظیمات
</h4> </h4>
<div class="row"> <div class="row">
<div class="col-md-10">
<Alert hidden="@Hidealert" Color="@alertColor" Dismissable="false"> <Alert hidden="@Hidealert" Color="@alertColor" Dismissable="false">
<Icon Name="@alertIconName" class="me-2"></Icon> <Icon Name="@alertIconName" class="me-2"></Icon>
@alertMessage @alertMessage
</Alert> </Alert>
</div>
<div class="col-md-2">
<Spinner Visible="SpinnerVisible" Color="SpinnerColor.Primary" />
</div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
@@ -45,7 +49,7 @@
</div> </div>
<div class="mt-2"> <div class="mt-2">
<button type="submit" class="btn btn-primary">ارسال</button> <Button Disabled="SpinnerVisible" Type="ButtonType.Submit" Color="ButtonColor.Primary">ارسال</Button>
</div> </div>
@@ -61,7 +65,7 @@
@code { @code {
public bool SpinnerVisible { get; set; } = false;
[SupplyParameterFromForm] [SupplyParameterFromForm]
public TaxPayerInfoDto? InfoModel { get; set; } public TaxPayerInfoDto? InfoModel { get; set; }
@@ -106,7 +110,7 @@
private async Task Submit() private async Task Submit()
{ {
SpinnerVisible = true;
var request = await _hc.Put($"Company/ChangeTaxPayerInfo", InfoModel); var request = await _hc.Put($"Company/ChangeTaxPayerInfo", InfoModel);
if (request.IsSuccessStatusCode) if (request.IsSuccessStatusCode)
{ {
@@ -128,7 +132,7 @@
ShowDangerAlert(errors[0]); ShowDangerAlert(errors[0]);
} }
SpinnerVisible = false;
} }

View File

@@ -54,7 +54,7 @@
</select> </select>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<button @onclick="() => Load(1)" type="submit" class="btn btn-primary">جستجو</button> <Button Disabled="SpinnerVisible" @onclick="() => Load(1)" Color="ButtonColor.Primary">جستجو</Button>
</div> </div>
</div> </div>
</li> </li>
@@ -66,11 +66,15 @@
</div> </div>
@* alert *@ @* alert *@
<div class="row"> <div class="row">
<div class="col-md-10">
<Alert hidden="@Hidealert" Color="@alertColor" Dismissable="false"> <Alert hidden="@Hidealert" Color="@alertColor" Dismissable="false">
<Icon Name="@alertIconName" class="me-2"></Icon> <Icon Name="@alertIconName" class="me-2"></Icon>
@alertMessage @alertMessage
</Alert> </Alert>
</div>
<div class="col-md-2">
<Spinner Visible="SpinnerVisible" Color="SpinnerColor.Primary" />
</div>
</div> </div>
@* data *@ @* data *@
@if (request != null) @if (request != null)
@@ -102,6 +106,7 @@
} }
@code { @code {
public bool SpinnerVisible { get; set; } = false;
private Modal modal = default!; private Modal modal = default!;
[Inject] protected PreloadService PreloadService { get; set; } = default!; [Inject] protected PreloadService PreloadService { get; set; } = default!;
ItemSerchGetSentTax itemsearch = new ItemSerchGetSentTax(); ItemSerchGetSentTax itemsearch = new ItemSerchGetSentTax();
@@ -116,8 +121,14 @@
public int? PageIndex { get; set; } public int? PageIndex { get; set; }
public Shared.DTOs.PagingDto<SentTaxDto>? request { get; set; } public Shared.DTOs.PagingDto<SentTaxDto>? request { get; set; }
protected override Task OnInitializedAsync()
{
SpinnerVisible = false;
return base.OnInitializedAsync();
}
protected override async Task OnParametersSetAsync() protected override async Task OnParametersSetAsync()
{ {
SpinnerVisible = false;
if (routed.HasValue && routed > 0) if (routed.HasValue && routed > 0)
{ {
ShowSuccessAlert($"صورتحساب شماره {routed} با موفقیت ارسال شد " +'\n'+ ShowSuccessAlert($"صورتحساب شماره {routed} با موفقیت ارسال شد " +'\n'+
@@ -133,6 +144,7 @@
@functions{ @functions{
public async Task SentTaxItem(int ID) public async Task SentTaxItem(int ID)
{ {
SpinnerVisible = true;
var rsp = await hc.Get($"TaxPayer/GetResult/{ID}"); var rsp = await hc.Get($"TaxPayer/GetResult/{ID}");
if (rsp.IsSuccessStatusCode) if (rsp.IsSuccessStatusCode)
{ {
@@ -150,9 +162,11 @@
var request = await rsp.Content.ReadFromJsonAsync<List<string>>(); var request = await rsp.Content.ReadFromJsonAsync<List<string>>();
ShowDangerAlert(request[0]); ShowDangerAlert(request[0]);
} }
SpinnerVisible = false;
} }
public async Task Load(int pi) public async Task Load(int pi)
{ {
SpinnerVisible = true;
itemsearch.PageSize = 10; itemsearch.PageSize = 10;
itemsearch.PageIndex = pi; itemsearch.PageIndex = pi;
PreloadService.Show(SpinnerColor.Dark); PreloadService.Show(SpinnerColor.Dark);
@@ -170,6 +184,7 @@
ShowDangerAlert("خطایی در اجرای عملیات رخ داده"); ShowDangerAlert("خطایی در اجرای عملیات رخ داده");
} }
PreloadService.Hide(); PreloadService.Hide();
SpinnerVisible = false;
} }
private void ShowSuccessAlert(string msg) private void ShowSuccessAlert(string msg)
{ {

View File

@@ -22,11 +22,15 @@ else
@* alert *@ @* alert *@
<div class="row"> <div class="row">
<div class="col-md-2">
<Alert hidden="@Hidealert" Color="@alertColor" Dismissable="false"> <Alert hidden="@Hidealert" Color="@alertColor" Dismissable="false">
<Icon Name="@alertIconName" class="me-2"></Icon> <Icon Name="@alertIconName" class="me-2"></Icon>
@alertMessage @alertMessage
</Alert> </Alert>
</div>
<div class="col-md-2">
<Spinner Visible="SpinnerVisible" Color="SpinnerColor.Primary" />
</div>
</div> </div>
@if (FullInvoice) @if (FullInvoice)
{ {
@@ -305,11 +309,11 @@ else
<div class="col-auto"> <div class="col-auto">
@if (FullInvoice) @if (FullInvoice)
{ {
<button type="submit" @onclick="Send" class="btn btn-primary">ثبت تغییرات</button> <Button Disabled="SpinnerVisible" Color="ButtonColor.Primary" @onclick="Send">ثبت تغییرات</Button>
} }
else else
{ {
<button type="submit" @onclick="Send" class="btn btn-primary">آماده سازی و ارسال</button> <Button Disabled="SpinnerVisible" Color="ButtonColor.Primary" @onclick="Send">آماده سازی و ارسال</Button>
} }
</div> </div>
@@ -322,6 +326,7 @@ else
@code { @code {
public bool SpinnerVisible { get; set; } = false;
string patt = ""; string patt = "";
private List<IdName<int>>? Patterns = new List<IdName<int>>(); private List<IdName<int>>? Patterns = new List<IdName<int>>();
private List<IdName<int>>? BillTypes = new List<IdName<int>>(); private List<IdName<int>>? BillTypes = new List<IdName<int>>();
@@ -341,10 +346,12 @@ else
protected override async Task OnParametersSetAsync() protected override async Task OnParametersSetAsync()
{ {
SpinnerVisible = true;
PreloadService.Show(SpinnerColor.Dark); PreloadService.Show(SpinnerColor.Dark);
Patterns = await fv.GetPatternsbyinp(); Patterns = await fv.GetPatternsbyinp();
BillTypes = await fv.GetBillTypes(); BillTypes = await fv.GetBillTypes();
units = await fv.GetUnitsbyUnitTaxID(); units = await fv.GetUnitsbyUnitTaxID();
SpinnerVisible = false;
await LoadData(); await LoadData();
PreloadService.Hide(); PreloadService.Hide();
@@ -366,6 +373,7 @@ else
}; };
public async Task Send() public async Task Send()
{ {
SpinnerVisible = true;
if (!FullInvoice && !await CheckAuth()) if (!FullInvoice && !await CheckAuth())
{ {
ShowMessage(ToastType.Danger, "خطا در احراز هویت سازمان مالیاتی"); ShowMessage(ToastType.Danger, "خطا در احراز هویت سازمان مالیاتی");
@@ -421,19 +429,22 @@ else
ShowMessage(ToastType.Danger, request[0]); ShowMessage(ToastType.Danger, request[0]);
} }
} }
SpinnerVisible = false;
} }
public async Task<bool> CheckAuth() public async Task<bool> CheckAuth()
{ {
SpinnerVisible = true;
var rsp = await hc.Get($"TaxPayer/CheckAuth"); var rsp = await hc.Get($"TaxPayer/CheckAuth");
if (rsp.IsSuccessStatusCode) if (rsp.IsSuccessStatusCode)
{ {
var response = await rsp.Content.ReadFromJsonAsync<bool>(); var response = await rsp.Content.ReadFromJsonAsync<bool>();
if (response) if (response)
{ {
SpinnerVisible = false;
return true; return true;
} }
} }
SpinnerVisible = false;
return false; return false;
} }
private void ShowSuccessAlert(string msg) private void ShowSuccessAlert(string msg)
@@ -452,7 +463,7 @@ else
} }
private async Task LoadData() private async Task LoadData()
{ {
SpinnerVisible = true;
var rsp = await hc.Get($"TaxPayer/GetInvoice/{InvoiceID}"); var rsp = await hc.Get($"TaxPayer/GetInvoice/{InvoiceID}");
if (rsp.IsSuccessStatusCode) if (rsp.IsSuccessStatusCode)
{ {
@@ -463,7 +474,7 @@ else
var request = await rsp.Content.ReadFromJsonAsync<List<string>>(); var request = await rsp.Content.ReadFromJsonAsync<List<string>>();
ShowDangerAlert(request[0]); ShowDangerAlert(request[0]);
} }
SpinnerVisible = false;
} }
private async Task ShowConditions(string[]? Conditions, string fild) private async Task ShowConditions(string[]? Conditions, string fild)
{ {

View File

@@ -21,8 +21,8 @@
</form> </form>
</BodyTemplate> </BodyTemplate>
<FooterTemplate> <FooterTemplate>
<Button Color="ButtonColor.Secondary" @onclick="OnHideModalClick">Close</Button> <Button Disabled="SpinnerVisible" Color="ButtonColor.Secondary" @onclick="OnHideModalClick">Close</Button>
<Button Color="ButtonColor.Primary" @onclick="OnClickNewTicket">ثبت</Button> <Button Disabled="SpinnerVisible" Color="ButtonColor.Primary" @onclick="OnClickNewTicket">ثبت</Button>
</FooterTemplate> </FooterTemplate>
</Modal> </Modal>
@@ -31,11 +31,15 @@
<span class="text-muted fw-light">متفرقه /</span> پشتیبانی <span class="text-muted fw-light">متفرقه /</span> پشتیبانی
</h4> </h4>
<div class="row"> <div class="row">
<div class="col-md-10">
<Alert hidden="@Hidealert" Color="@alertColor" Dismissable="false"> <Alert hidden="@Hidealert" Color="@alertColor" Dismissable="false">
<Icon Name="@alertIconName" class="me-2"></Icon> <Icon Name="@alertIconName" class="me-2"></Icon>
@alertMessage @alertMessage
</Alert> </Alert>
</div>
<div class="col-md-2">
<Spinner Visible="SpinnerVisible" Color="SpinnerColor.Primary" />
</div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
@@ -56,12 +60,12 @@
</div> </div>
<div class="col-auto"> <div class="col-auto">
<button type="submit" @onclick="Submit" class="btn btn-primary">جستجو</button> <Button Disabled="SpinnerVisible" Color="ButtonColor.Primary" @onclick="Submit">جستجو</Button>
</div> </div>
<div class="col-auto"> <div class="col-auto">
<button type="submit" @onclick="OnShowModalClick" class="btn btn-primary">جدید</button> <Button Disabled="SpinnerVisible" Color="ButtonColor.Primary" @onclick="OnShowModalClick">جدید</Button>
</div> </div>
</div> </div>
@@ -112,7 +116,7 @@
@code { @code {
LTicket child; LTicket child;
public bool SpinnerVisible { get; set; } = false;
private Modal modal = default!; private Modal modal = default!;
// alert // alert
AlertColor alertColor = AlertColor.Primary; AlertColor alertColor = AlertColor.Primary;
@@ -134,6 +138,7 @@
protected override async Task OnParametersSetAsync() protected override async Task OnParametersSetAsync()
{ {
SpinnerVisible = false;
if (PageIndex == null) PageIndex = 1; if (PageIndex == null) PageIndex = 1;
await Search(PageIndex.Value); await Search(PageIndex.Value);
await base.OnParametersSetAsync(); await base.OnParametersSetAsync();
@@ -161,6 +166,7 @@
} }
public async Task Search(int pi) public async Task Search(int pi)
{ {
SpinnerVisible = true;
var rsp = await hc.Post<ItemSerchGetTicket>("Ticket/GetAll", new ItemSerchGetTicket var rsp = await hc.Post<ItemSerchGetTicket>("Ticket/GetAll", new ItemSerchGetTicket
{ {
@@ -178,6 +184,7 @@
{ {
ShowDangerAlert("خطایی در اجرای عملیات رخ داده"); ShowDangerAlert("خطایی در اجرای عملیات رخ داده");
} }
SpinnerVisible = false;
} }
private async Task OnShowModalClick() private async Task OnShowModalClick()
{ {
@@ -189,6 +196,7 @@
} }
private async Task OnClickNewTicket() private async Task OnClickNewTicket()
{ {
SpinnerVisible = true;
var rsp = await hc.Post<CTicketDto>("Ticket/NewTicket", new CTicketDto var rsp = await hc.Post<CTicketDto>("Ticket/NewTicket", new CTicketDto
{ {
CompanyID = userinfo.Company.ID.ToString(), CompanyID = userinfo.Company.ID.ToString(),
@@ -206,6 +214,6 @@
ShowDangerAlert("خطایی در اجرای عملیات رخ داده"); ShowDangerAlert("خطایی در اجرای عملیات رخ داده");
} }
await modal.HideAsync(); await modal.HideAsync();
SpinnerVisible = false;
} }
} }