From cb8c69d81b3d3c0e56ff9c91aced2ab44dbb7719 Mon Sep 17 00:00:00 2001 From: mmrbnjd Date: Sat, 20 Jul 2024 15:52:29 +0330 Subject: [PATCH] ... --- 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(); }