diff --git a/Back/Controllers/TaxPayerController.cs b/Back/Controllers/TaxPayerController.cs index ed82939..6911aa1 100644 --- a/Back/Controllers/TaxPayerController.cs +++ b/Back/Controllers/TaxPayerController.cs @@ -80,24 +80,24 @@ namespace Back.Controllers if (result == null) return BadRequest(new List { "صورتحساب یافت نشد" }); - else - { - if (result.invoiceType == InvoiceType.Bidding) - return BadRequest(new List { "صورتحساب در وضعیت پیش نویس نمیتواند آماده ارسال شود" }); + //else + //{ + // if (result.invoiceType == InvoiceType.Bidding) + // return BadRequest(new List { "صورتحساب در وضعیت پیش نویس نمیتواند آماده ارسال شود" }); - if (await _servTaxPayer.ExistSuccessfulorSendorpendingInvoice(result)) - return BadRequest(new List { "این صورتحساب قبلا به سازمان ارسال شده" }); + // if (await _servTaxPayer.ExistSuccessfulorSendorpendingInvoice(result)) + // return BadRequest(new List { "این صورتحساب قبلا به سازمان ارسال شده" }); - if ((result.invoiceType == InvoiceType.BackFrmSale || result.invoiceType == InvoiceType.Repair) - && !result.BillReference.HasValue) - return BadRequest(new List { "در وضعیت برگشت از فروش و اصلاحی باید صورتحساب مرجع وجود داشته باشد" }); + // if ((result.invoiceType == InvoiceType.BackFrmSale || result.invoiceType == InvoiceType.Repair) + // && !result.BillReference.HasValue) + // return BadRequest(new List { "در وضعیت برگشت از فروش و اصلاحی باید صورتحساب مرجع وجود داشته باشد" }); - if ((result.invoiceType == InvoiceType.BackFrmSale || result.invoiceType == InvoiceType.Repair) - && !await _servTaxPayer.ExistSuccessfulorSendorpendingInvoice(result.invoice)) - return BadRequest(new List { "در وضعیت برگشت از فروش و اصلاحی باید صورتحساب مرجع به سامانه مودیان ارسال شده باشد" }); + // if ((result.invoiceType == InvoiceType.BackFrmSale || result.invoiceType == InvoiceType.Repair) + // && !await _servTaxPayer.ExistSuccessfulorSendorpendingInvoice(result.invoice)) + // return BadRequest(new List { "در وضعیت برگشت از فروش و اصلاحی باید صورتحساب مرجع به سامانه مودیان ارسال شده باشد" }); - } + //} return Ok(await _servTaxPayer.PreparationInvoiceBeforeSending(item, result)); diff --git a/Back/Data/Models/InvoiceItem.cs b/Back/Data/Models/InvoiceItem.cs index 1585398..5413aba 100644 --- a/Back/Data/Models/InvoiceItem.cs +++ b/Back/Data/Models/InvoiceItem.cs @@ -25,12 +25,12 @@ namespace Back.Data.Models public string? mu { get { return cODItem != null ? cODItem.CODUnit.UnitTaxID : null; } } //میزان ارز [MaxLength(18)] - public decimal? cfee { get { return fee / exr; } } + public decimal? cfee { get { return exr==null || exr==0 ? null : fee / exr; } } //مبلغ مالیات بر ارزش افزوده [MaxLength(18)] public decimal? vam { get { - return invoice?.pattern?.inp == 9 ? fee*vra/100 : + return vra==0 ? 0 : invoice?.pattern?.inp == 9 ? fee*vra/100 : invoice?.pattern?.inp == 13 ? ((tcpbs+9)/100)+((prdis*vra)/100) : vra * adis / 100; } } diff --git a/Back/Services/servInvoice.cs b/Back/Services/servInvoice.cs index 15c9f11..56bbc87 100644 --- a/Back/Services/servInvoice.cs +++ b/Back/Services/servInvoice.cs @@ -33,81 +33,79 @@ namespace Back.Services } #endregion //----------------------- - - return await invok + var item= await invok .Include(inc => inc.invoiceDetails) .ThenInclude(inc => inc.cODItem) .ThenInclude(inc => inc.CODUnit) + .Include(inc => inc.Customer) .Include(inc => inc.sentTax) //.Include(inc => inc.payments) .Include(inc => inc.pattern) - .ThenInclude(inc => inc.BillType) - .Select(s => new InvoiceDTO() - { - - IsDeleted = s.IsDeleted, - PatternID = s.PatternID, - PatternTitle = s.pattern.Title, - CustomerID = s.CustomerID, - CustomerName = s.Customer.FullName, - ID = s.ID, - InvoiceDate = s.InvoiceDate.ShamciToFormatShamci(), - invoiceTypeTitle = s.invoiceType.GetEnumDisplayName(), - invoiceType = s.invoiceType, - Title = s.Title, - InvoicIssueDate = s.InvoicIssueDate.ShamciToFormatShamci(), - BillReference = s.BillReference, - tbill = s.tbill, - Des = s.Des, - PreparedtoSendtoTax = s.PreparedtoSendtoTax, - tdis = s.tdis, - // - tvam = s.tvam, - Udate = s.Udate.ShamciToFormatShamci(), + .ThenInclude(inc => inc.BillType).FirstOrDefaultAsync(); + return new InvoiceDTO() + { - InvoiceSendTaxs = s.sentTax.OrderBy(o => o.ID).Select(s => new SentTaxDto() - { - Date = s.Date.ShamciToFormatShamci(), - Time = s.Time, - ID = s.ID, - InvoiceID = s.InvoiceID, - SentStatus = s.SentStatus, - InvoiceType = s.InvoiceType, - msgInvoiceType = s.InvoiceType.GetEnumDisplayName(), - msgSentStatus = s.SentStatus.GetEnumDisplayName() - }).ToList(), - //items = s.invoiceDetails.OrderBy(o => o.ID).Select(x => new InvoiceItemDTO() - //{ - // ID = x.ID, - // CODID = x.CODID, - // adis = x.adis, - // am = x.am.Value, - // dis = x.dis, - // fee = x.fee.Value, - // mu = x.unitTitle, - // sstt = x.sstt, - // tsstam = x.tsstam, - // vam = x.vam, - // vra = x.vra, - // prdis = x.prdis - //}).ToList(), - payments = new List() - //s.payments.OrderBy(o => o.ID).Select(x => new InvoicePaymentDTO() - //{ - // ID = x.ID, - // acn = x.acn, - // iinn = x.acn, - // pcn = x.acn, - // pdt = x.pdt, - // PaymentDateTime=x.PaymentDateTime, - // pid = x.pid, - // pmt = x.pmt, - // pv = x.pv, - // trmn = x.trmn, - // trn = x.acn - //}).ToList() - }) - .FirstOrDefaultAsync(); + IsDeleted = item.IsDeleted, + PatternID = item.PatternID, + PatternTitle = item.pattern.Title, + CustomerID = item.CustomerID, + CustomerName = item.Customer.FullName, + ID = item.ID, + InvoiceDate = item.InvoiceDate.ShamciToFormatShamci(), + invoiceTypeTitle = item.invoiceType.GetEnumDisplayName(), + invoiceType = item.invoiceType, + Title = item.Title, + InvoicIssueDate = item.InvoicIssueDate.ShamciToFormatShamci(), + BillReference = item.BillReference, + tbill = item.tbill, + Des = item.Des, + PreparedtoSendtoTax = item.PreparedtoSendtoTax, + tdis = item.tdis, + tvam = item.tvam, + Udate = item.Udate.ShamciToFormatShamci(), + + InvoiceSendTaxs = item.sentTax.OrderBy(o => o.ID).Select(s => new SentTaxDto() + { + Date = s.Date.ShamciToFormatShamci(), + Time = s.Time, + ID = s.ID, + InvoiceID = s.InvoiceID, + SentStatus = s.SentStatus, + InvoiceType = s.InvoiceType, + msgInvoiceType = s.InvoiceType.GetEnumDisplayName(), + msgSentStatus = s.SentStatus.GetEnumDisplayName() + }).ToList(), + items = item.invoiceDetails.OrderBy(o => o.ID).Select(x => new InvoiceItemDTO() + { + ID = x.ID, + CODID = x.CODID, + adis = x.adis, + am = x.am.Value, + dis = x.dis, + fee = x.fee.Value, + mu = x.unitTitle, + sstt = x.sstt, + tsstam = x.tsstam, + vam = x.vam, + vra = x.vra, + prdis = x.prdis + }).ToList(), + payments = new List() + //s.payments.OrderBy(o => o.ID).Select(x => new InvoicePaymentDTO() + //{ + // ID = x.ID, + // acn = x.acn, + // iinn = x.acn, + // pcn = x.acn, + // pdt = x.pdt, + // PaymentDateTime=x.PaymentDateTime, + // pid = x.pid, + // pmt = x.pmt, + // pv = x.pv, + // trmn = x.trmn, + // trn = x.acn + //}).ToList() + }; } diff --git a/TaxPayerFull/Pages/UserPanel/InvoiceItem.razor b/TaxPayerFull/Pages/UserPanel/InvoiceItem.razor index 8a9aaea..bae144c 100644 --- a/TaxPayerFull/Pages/UserPanel/InvoiceItem.razor +++ b/TaxPayerFull/Pages/UserPanel/InvoiceItem.razor @@ -334,16 +334,17 @@ } else { -
- - Dropend - - ثبت تغییرات - حذف - اطلاعات تکمیلی صورتحساب - - -
+ + + + + @* @@ -354,7 +355,7 @@ } - @if (invoice.invoiceType != InvoiceType.Bidding && SendInvoice) + @if (!invoice.IsDeleted && invoice.invoiceType != InvoiceType.Bidding && SendInvoice) {

diff --git a/TaxPayerFull/Pages/UserPanel/TaxPayerInvoiceItem.razor b/TaxPayerFull/Pages/UserPanel/TaxPayerInvoiceItem.razor index 9ce13bc..e191560 100644 --- a/TaxPayerFull/Pages/UserPanel/TaxPayerInvoiceItem.razor +++ b/TaxPayerFull/Pages/UserPanel/TaxPayerInvoiceItem.razor @@ -17,22 +17,36 @@
-

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

-
-
-
-

توجه

-
-

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

-

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

-

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

-

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

+@if (FullInvoice) +{ +

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

+} +else +{ +

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

+} + +@if(!FullInvoice) +{ +
+
+
+

توجه

+
+

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

+

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

+

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

+

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

+
-
+} +
@@ -188,7 +202,15 @@
- + @if (FullInvoice) + { + + } + else + { + + } +
@@ -204,6 +226,7 @@ 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; @@ -216,7 +239,9 @@ await LoadData(); PreloadService.Hide(); - var res= hc._nav.Uri.ToString(); + if (hc._nav.Uri.ToString().Contains("FullInvoiceItem")) + FullInvoice = true; + else FullInvoice = false; await base.OnParametersSetAsync(); } @@ -232,7 +257,7 @@ }; public async Task Send() { - if (!await CheckAuth()) + if (!FullInvoice && !await CheckAuth()) { ShowMessage(ToastType.Danger, "خطا در احراز هویت سازمان مالیاتی"); } @@ -244,31 +269,40 @@ var response = await rsp.Content.ReadFromJsonAsync(); if (response) { - ShowMessage(ToastType.Success, "آماده سازی با موفقیت انجام شد"); - ShowMessage(ToastType.Light, "در حال ارسال صورتحساب"); - rsp = await hc.Get($"TaxPayer/SendInvoice/{InvoiceID}"); - if (rsp.IsSuccessStatusCode) + if(FullInvoice) + ShowMessage(ToastType.Success, "تغییرات با موفقیت انجام شد"); + + if (!FullInvoice) { - response = await rsp.Content.ReadFromJsonAsync(); - if (response) + ShowMessage(ToastType.Light, "در حال ارسال صورتحساب"); + rsp = await hc.Get($"TaxPayer/SendInvoice/{InvoiceID}"); + if (rsp.IsSuccessStatusCode) { - hc._nav.NavigateTo($"TaxPayer/{InvoiceID}"); - // ShowMessage(ToastType.Success, "ارسال با موفقیت انجام شد"); + response = await rsp.Content.ReadFromJsonAsync(); + if (response) + { + hc._nav.NavigateTo($"TaxPayer/{InvoiceID}"); + // ShowMessage(ToastType.Success, "ارسال با موفقیت انجام شد"); + } + else + { + ShowMessage(ToastType.Danger, "خطای در ارسال رخ داده"); + } } else { - ShowMessage(ToastType.Danger, "خطای در ارسال رخ داده"); + var request = await rsp.Content.ReadFromJsonAsync>(); + ShowMessage(ToastType.Danger, request[0]); } } - else - { - var request = await rsp.Content.ReadFromJsonAsync>(); - ShowMessage(ToastType.Danger, request[0]); - } + } else { - ShowMessage(ToastType.Danger, "خطای در آماده سازی اطلاعات رخ داده"); + if (FullInvoice) + ShowMessage(ToastType.Danger, "خطای در ذخیره سازی اطلاعات رخ داده"); + else + ShowMessage(ToastType.Danger, "خطای در آماده سازی اطلاعات رخ داده"); } } else