From 5ded8c07e5ab67f6db3620fc9be1ecec1b0ee026 Mon Sep 17 00:00:00 2001 From: mmrbnjd Date: Sat, 20 Jul 2024 12:58:17 +0330 Subject: [PATCH 1/5] end taxpayer and MarkupStringInBlog --- Back/Back.csproj | 2 +- Back/Controllers/TaxPayerController.cs | 18 ++++++------- Back/Services/ActionTaxPayer.cs | 36 +++++++++++++------------- TaxPayerFull/Pages/BlogDetails.razor | 9 ++++--- TaxPayerFull/Program.cs | 4 +-- 5 files changed, 35 insertions(+), 34 deletions(-) diff --git a/Back/Back.csproj b/Back/Back.csproj index fd97cd7..899d7e4 100644 --- a/Back/Back.csproj +++ b/Back/Back.csproj @@ -36,7 +36,7 @@ - ..\..\Dlls\Service.dll + ..\..\..\LocalGit\TaxPayerTools\Service\bin\Debug\Service.dll diff --git a/Back/Controllers/TaxPayerController.cs b/Back/Controllers/TaxPayerController.cs index 71edce1..c7ee5a3 100644 --- a/Back/Controllers/TaxPayerController.cs +++ b/Back/Controllers/TaxPayerController.cs @@ -87,11 +87,11 @@ namespace Back.Controllers public async Task> CheckAuth() { - //var claim = HttpContext.User.Claims.First(c => c.Type == "UserID"); - //var UserID = claim.Value; - //var user = await _servUser.GetUserByUserID(Convert.ToInt32(UserID)); - // return Ok(await _actionTaxPayer.login(user.RolUsers.First().CompanyID)); - return Ok(true); + var claim = HttpContext.User.Claims.First(c => c.Type == "UserID"); + var UserID = claim.Value; + var user = await _servUser.GetUserByUserID(Convert.ToInt32(UserID)); + return Ok(await _actionTaxPayer.login(user.RolUsers.First().CompanyID)); + // return Ok(true); return BadRequest(); @@ -103,8 +103,8 @@ namespace Back.Controllers var claim = HttpContext.User.Claims.First(c => c.Type == "UserID"); var UserID = claim.Value; var user = await _servUser.GetUserByUserID(Convert.ToInt32(UserID)); - //if (!await _actionTaxPayer.login(user.RolUsers.First().CompanyID)) - // return BadRequest(new List { "خطا در احراز هویت سازمان مالیاتی" }); + if (!await _actionTaxPayer.login(user.RolUsers.First().CompanyID)) + return BadRequest(new List { "خطا در احراز هویت سازمان مالیاتی" }); var result = await _servTaxPayer.GetInvoice(user.RolUsers.First().CompanyID, InvoiceID); if (result == null) @@ -497,8 +497,8 @@ namespace Back.Controllers if (string.IsNullOrEmpty(item.uId)) return BadRequest(new List { "کد پیگیری یافت نشد" }); - //if (!await _actionTaxPayer.login(user.RolUsers.First().CompanyID)) - // return BadRequest(new List { "خطا در احراز هویت سازمان مالیاتی" }); + if (!await _actionTaxPayer.login(user.RolUsers.First().CompanyID)) + return BadRequest(new List { "خطا در احراز هویت سازمان مالیاتی" }); DataInSendTaxDto desData = new DataInSendTaxDto(); if (item.SentStatus == SentStatus.Send diff --git a/Back/Services/ActionTaxPayer.cs b/Back/Services/ActionTaxPayer.cs index 6cb0064..2e9c7e9 100644 --- a/Back/Services/ActionTaxPayer.cs +++ b/Back/Services/ActionTaxPayer.cs @@ -22,24 +22,24 @@ namespace Back.Services } public string GenerateTaxid(string FactorNo, string InvoiceDate) { - return "testTaxid"; + // return "testTaxid"; return TaxApiService.Instance.TaxIdGenerator.GenerateTaxId(_UniqueMemory, Convert.ToInt64(FactorNo), InvoiceDate.ToMiladi()); } public async Task GetResultByUid(int CompanyID, string uid) { - return new InquiryResultModel("18084a18-1eb4-41cd-8bd3-2cad73c45398", "0a4a4ab2-8047-4c31-b765-456ddf0e9c53", "SUCCESS", - new DataInSendTaxDto() - { - error=new List() - { - new MessageInSendTaxDto() - { - code="21001",message="یک خطای تست" - } - } - } - , "receive_invoice_confirm", "A2FFKZ"); + //return new InquiryResultModel("18084a18-1eb4-41cd-8bd3-2cad73c45398", "0a4a4ab2-8047-4c31-b765-456ddf0e9c53", "SUCCESS", + // new DataInSendTaxDto() + // { + // error=new List() + // { + // new MessageInSendTaxDto() + // { + // code="21001",message="یک خطای تست" + // } + // } + // } + // , "receive_invoice_confirm", "A2FFKZ"); if (!await login(CompanyID)) return null; var uidAndFiscalId = new UidAndFiscalId(uid, _UniqueMemory); @@ -50,11 +50,11 @@ namespace Back.Services } public async Task> SendInvoice(int CompanyID,InvoiceHeaderDto header, List InvoiceBody, PaymentDto payment) { - return new TaxCollectData.Library.Dto.HttpResponse - ( body: new AsyncResponseModel( - 1702299112 - ,new HashSet(new List { new PacketResponse("5d0c7198-e2fd-4cc1-8802-fe498d6ccf73", "a70444a4-1810-4cea-8bcc-7acb4bc75645", null,null)}) - ,new List()), 200); + //return new TaxCollectData.Library.Dto.HttpResponse + // ( body: new AsyncResponseModel( + // 1702299112 + // ,new HashSet(new List { new PacketResponse("5d0c7198-e2fd-4cc1-8802-fe498d6ccf73", "a70444a4-1810-4cea-8bcc-7acb4bc75645", null,null)}) + // ,new List()), 200); if (!await login(CompanyID)) return null; diff --git a/TaxPayerFull/Pages/BlogDetails.razor b/TaxPayerFull/Pages/BlogDetails.razor index 9cb7c12..b03d75c 100644 --- a/TaxPayerFull/Pages/BlogDetails.razor +++ b/TaxPayerFull/Pages/BlogDetails.razor @@ -64,10 +64,9 @@
- -

- @Item?.Text -

+ + @((MarkupString)Item?.Text) +
@@ -133,11 +132,13 @@ public List collectionitem { get; set; } = new List(); public BlogDtoFull? Item { get; set; } + protected override async Task OnParametersSetAsync() { if (ItemID != null) { Item = await GetItems(); + // Item.Text = "

RTHH

"; if (Item==null) Navigation.NavigateTo("/"); diff --git a/TaxPayerFull/Program.cs b/TaxPayerFull/Program.cs index ea0270a..670070e 100644 --- a/TaxPayerFull/Program.cs +++ b/TaxPayerFull/Program.cs @@ -37,10 +37,10 @@ builder.Services.AddScoped(sp => new UserAuthenticationDTO() //builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri("http://195.88.208.142:7075/api/") }); //Home -builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri("https://localhost:7075/api/") }); +//builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri("https://localhost:7075/api/") }); //farzan -//builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri("http://localhost:5271/api/") }); +builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri("http://localhost:5271/api/") }); CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("fa-Ir"); From b3adcb413255c76e8657b41ebbca39030f07a260 Mon Sep 17 00:00:00 2001 From: mmrbnjd Date: Sat, 20 Jul 2024 13:13:45 +0330 Subject: [PATCH 2/5] ... --- TaxPayerFull/Pages/BlogDetails.razor | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/TaxPayerFull/Pages/BlogDetails.razor b/TaxPayerFull/Pages/BlogDetails.razor index b03d75c..8ec32ef 100644 --- a/TaxPayerFull/Pages/BlogDetails.razor +++ b/TaxPayerFull/Pages/BlogDetails.razor @@ -71,19 +71,6 @@ -
-
-
- - - -
-
-

“تیم در سافت تک فوق العاده اختصاصی ، دانش و مفید است.

- سقراط -
-
-
From cb8c69d81b3d3c0e56ff9c91aced2ab44dbb7719 Mon Sep 17 00:00:00 2001 From: mmrbnjd Date: Sat, 20 Jul 2024 15:52:29 +0330 Subject: [PATCH 3/5] ... --- Back/Controllers/TaxPayerController.cs | 39 +++- Back/Services/servInvoice.cs | 180 +++++++++--------- .../Pages/UserPanel/InvoiceItem.razor | 23 ++- .../Pages/UserPanel/TaxPayerInvoiceItem.razor | 3 + 4 files changed, 141 insertions(+), 104 deletions(-) diff --git a/Back/Controllers/TaxPayerController.cs b/Back/Controllers/TaxPayerController.cs index c7ee5a3..ed82939 100644 --- a/Back/Controllers/TaxPayerController.cs +++ b/Back/Controllers/TaxPayerController.cs @@ -49,20 +49,20 @@ namespace Back.Controllers if (!result.PatternID.HasValue || result.PatternID == 0) return BadRequest(new List { "ابتدا برای این صورتحساب الگو در نظر بگیرید" }); - if (result.invoiceType == InvoiceType.Bidding) - return BadRequest(new List { "صورتحساب در وضعیت پیش نویس نمیتواند ارسال شود" }); + //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 { "در وضعیت برگشت از فروش و اصلاحی باید صورتحساب مرجع به سامانه مودیان ارسال شده باشد" }); @@ -80,6 +80,25 @@ namespace Back.Controllers if (result == null) return BadRequest(new List { "صورتحساب یافت نشد" }); + else + { + if (result.invoiceType == InvoiceType.Bidding) + 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) + && !await _servTaxPayer.ExistSuccessfulorSendorpendingInvoice(result.invoice)) + return BadRequest(new List { "در وضعیت برگشت از فروش و اصلاحی باید صورتحساب مرجع به سامانه مودیان ارسال شده باشد" }); + + } + return Ok(await _servTaxPayer.PreparationInvoiceBeforeSending(item, result)); } diff --git a/Back/Services/servInvoice.cs b/Back/Services/servInvoice.cs index a084dbc..15c9f11 100644 --- a/Back/Services/servInvoice.cs +++ b/Back/Services/servInvoice.cs @@ -24,88 +24,92 @@ namespace Back.Services { #region AdvancedSearch var invok = _invoiceRepo - .Get(w => w.CompanyID == CompanyID && w.ID == ID); + .Get(w => w.CompanyID == CompanyID && w.ID == ID); if (notloaddelete) { - invok = invok - .Where(w => !w.IsDeleted); - - } + invok = invok + .Where(w => !w.IsDeleted); + } #endregion //----------------------- - return await invok - .Include(inc => inc.invoiceDetails) - .ThenInclude(inc => inc.cODItem) - .ThenInclude(inc => inc.CODUnit) - .Include(inc=>inc.sentTax) - //.Include(inc => inc.payments) - .Include(inc => inc.pattern) - .Select(s => new InvoiceDTO() - { - // ExternalAccessCode=s.ExternalAccessCode, - 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(), - 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(); - + + return await invok + .Include(inc => inc.invoiceDetails) + .ThenInclude(inc => inc.cODItem) + .ThenInclude(inc => inc.CODUnit) + .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(), + + 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(); + + } public async Task?> GetInvoices(int CompanyID, ItemSerchGetInvoices itemSerch) { @@ -126,10 +130,10 @@ namespace Back.Services invok = invok.Where(w => w.Title.Contains(itemSerch.Title)); if (itemSerch.refInvoiceID != null) - invok = invok.Where(w => w.BillReference==itemSerch.refInvoiceID); + invok = invok.Where(w => w.BillReference == itemSerch.refInvoiceID); - if(itemSerch.CodID != null) - invok = invok.Where(w => w.invoiceDetails.Any(wa=>wa.CODID== itemSerch.CodID)); + if (itemSerch.CodID != null) + invok = invok.Where(w => w.invoiceDetails.Any(wa => wa.CODID == itemSerch.CodID)); //foreach (InputObj item in inputObjs) // invok = invok.Where(ExMethod.GetFunc(item.Param, item.Value)); @@ -143,7 +147,7 @@ namespace Back.Services .Include(inc => inc.pattern) .Select(s => new InvoiceGridDTO() { - + CustomerID = s.CustomerID, CustomerName = s.Customer.FullName, ID = s.ID, @@ -163,7 +167,7 @@ namespace Back.Services return await _invoiceRepo.Get(w => w.ID == InvoiceID && w.CompanyID == CompanyID && !w.IsDeleted).AnyAsync(); } - + public async Task checkFatherInvoiceByInvoiceID(int CompanyID, int InvoiceID) { return await _invoiceRepo.Get(w => w.BillReference == InvoiceID && w.CompanyID == CompanyID && !w.IsDeleted).AnyAsync(); @@ -183,12 +187,12 @@ namespace Back.Services var item = await _invoiceRepo.AddAsync(invoice); return item.ID; } - catch (Exception ex ) + catch (Exception ex) { return -1; - + } - + } return -1; @@ -203,9 +207,9 @@ namespace Back.Services catch (Exception ex) { return -1; - + } - + } } @@ -221,7 +225,7 @@ namespace Back.Services { return await _invoiceRepo .Get(w => w.ID == InvoiceID && w.CompanyID == CompanyID && !w.IsDeleted) - .Include(inc=>inc.invoiceDetails) + .Include(inc => inc.invoiceDetails) .FirstOrDefaultAsync(); } public async Task DeleteInvoice(Invoice item) diff --git a/TaxPayerFull/Pages/UserPanel/InvoiceItem.razor b/TaxPayerFull/Pages/UserPanel/InvoiceItem.razor index b8a6c01..8a9aaea 100644 --- a/TaxPayerFull/Pages/UserPanel/InvoiceItem.razor +++ b/TaxPayerFull/Pages/UserPanel/InvoiceItem.razor @@ -334,12 +334,16 @@ } else { - - +
+ + Dropend + + ثبت تغییرات + حذف + اطلاعات تکمیلی صورتحساب + + +
@* @@ -492,6 +496,13 @@ hc._nav.NavigateTo($"TaxPayerInvoiceItem/{InvoiceID}"); } } + private async Task showFullInvoiceItem() + { + if (InvoiceID.HasValue) + { + hc._nav.NavigateTo($"FullInvoiceItem/{InvoiceID}"); + } + } private async Task onClickLink() { diff --git a/TaxPayerFull/Pages/UserPanel/TaxPayerInvoiceItem.razor b/TaxPayerFull/Pages/UserPanel/TaxPayerInvoiceItem.razor index c62e7df..9ce13bc 100644 --- a/TaxPayerFull/Pages/UserPanel/TaxPayerInvoiceItem.razor +++ b/TaxPayerFull/Pages/UserPanel/TaxPayerInvoiceItem.razor @@ -1,4 +1,5 @@ @page "/TaxPayerInvoiceItem/{InvoiceID:int}" +@page "/FullInvoiceItem/{InvoiceID:int}" @using Front.Services @using Shared.DTOs @layout PanelLayout @@ -214,6 +215,8 @@ PreloadService.Show(SpinnerColor.Dark); await LoadData(); PreloadService.Hide(); + + var res= hc._nav.Uri.ToString(); await base.OnParametersSetAsync(); } From bd99459bc226c28b410f7c6a92f81de8bc19c049 Mon Sep 17 00:00:00 2001 From: mmrbnjd Date: Sat, 20 Jul 2024 17:34:28 +0330 Subject: [PATCH 4/5] FullInvoiceItem --- Back/Controllers/TaxPayerController.cs | 26 ++-- Back/Data/Models/InvoiceItem.cs | 4 +- Back/Services/servInvoice.cs | 134 +++++++++--------- .../Pages/UserPanel/InvoiceItem.razor | 23 +-- .../Pages/UserPanel/TaxPayerInvoiceItem.razor | 96 +++++++++---- 5 files changed, 158 insertions(+), 125 deletions(-) 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 From 8d4073775c408ef28a32ef1374e6e264925b86ea Mon Sep 17 00:00:00 2001 From: mmrbnjd Date: Sat, 20 Jul 2024 17:35:53 +0330 Subject: [PATCH 5/5] ... --- TaxPayerFull/Pages/UserPanel/TaxPayerInvoiceItem.razor | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/TaxPayerFull/Pages/UserPanel/TaxPayerInvoiceItem.razor b/TaxPayerFull/Pages/UserPanel/TaxPayerInvoiceItem.razor index e191560..b9a6e53 100644 --- a/TaxPayerFull/Pages/UserPanel/TaxPayerInvoiceItem.razor +++ b/TaxPayerFull/Pages/UserPanel/TaxPayerInvoiceItem.razor @@ -7,7 +7,15 @@ -آماده سازی صورتحساب +@if (FullInvoice) +{ + اطلاعات تکمیلی صورتحساب +} +else +{ + آماده سازی صورتحساب +} + @* alert *@