From e8c0bed48fbc1f669e947c7e4edb540ae666ccdb Mon Sep 17 00:00:00 2001 From: mmrbnjd Date: Tue, 18 Jun 2024 16:15:17 +0330 Subject: [PATCH] ... --- Back/Controllers/InvoiceItemController.cs | 2 ++ Back/Services/servInvoiceItem.cs | 3 +++ Back/Services/servUser.cs | 20 +++++++++++++++++-- Shared/DTOs/DashBoardDTO.cs | 1 + Shared/DTOs/IdName.cs | 4 ++++ TaxPayerFull/Layout/MostInvoicedProduct.razor | 6 ++++++ 6 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 TaxPayerFull/Layout/MostInvoicedProduct.razor diff --git a/Back/Controllers/InvoiceItemController.cs b/Back/Controllers/InvoiceItemController.cs index 454fb21..82f4698 100644 --- a/Back/Controllers/InvoiceItemController.cs +++ b/Back/Controllers/InvoiceItemController.cs @@ -8,6 +8,7 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Shared.DTOs; using System.Net; +using System.Runtime.ConstrainedExecution; namespace Back.Controllers { @@ -156,6 +157,7 @@ namespace Back.Controllers } + } } diff --git a/Back/Services/servInvoiceItem.cs b/Back/Services/servInvoiceItem.cs index cd8c013..c393e3f 100644 --- a/Back/Services/servInvoiceItem.cs +++ b/Back/Services/servInvoiceItem.cs @@ -1,6 +1,8 @@ using Back.Data.Contracts; using Back.Data.Models; using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Hosting; +using Shared.DTOs; namespace Back.Services { @@ -38,5 +40,6 @@ namespace Back.Services { return await _invoiceitemRepo.Get(w => w.InvoiceID == invoiceID && w.ID == invoiceitemID && w.invoice.CompanyID == companyID).FirstOrDefaultAsync(); } + } } diff --git a/Back/Services/servUser.cs b/Back/Services/servUser.cs index 91b6e97..3c32e3a 100644 --- a/Back/Services/servUser.cs +++ b/Back/Services/servUser.cs @@ -5,6 +5,7 @@ using Back.Data.Models; using Microsoft.EntityFrameworkCore; using Microsoft.IdentityModel.Tokens; using Shared.DTOs; +using System.ComponentModel.Design; using System.Data.SqlTypes; using System.IdentityModel.Tokens.Jwt; using System.Reflection; @@ -21,7 +22,7 @@ namespace Back.Services private readonly IAsyncRepository _RepoUser; private readonly RepositoryBase _RepoCompany; private readonly IAsyncRepository _RepoPermissionPeriod; - + private readonly IAsyncRepository _invoiceitemRepo; private readonly IAsyncRepository _RepoCus; private readonly IAsyncRepository _RepoInvoice; private readonly IAsyncRepository _RepoCODItem; @@ -30,8 +31,10 @@ namespace Back.Services , IAsyncRepository RepoUser , IAsyncRepository RepoPermissionPeriod , RepositoryBase repoCompany, IAsyncRepository RepoCus - , IAsyncRepository RepoInvoice, IAsyncRepository RepoCODItem) + , IAsyncRepository RepoInvoice, IAsyncRepository RepoCODItem + , IAsyncRepository invoiceitemRepo) { + _invoiceitemRepo = invoiceitemRepo; _RepoCus = RepoCus; _RepoInvoice = RepoInvoice; _RepoCODItem = RepoCODItem; @@ -291,6 +294,19 @@ namespace Back.Services if (lastcus != null) request.lastActivitiesSevices.Add(lastcus); #endregion + + request.MostInvoicedProduct = await _invoiceitemRepo.Get(w => w.invoice.CompanyID == user.RolUsers.First().CompanyID + && (w.invoice.invoiceType==InvoiceType.Sale || w.invoice.invoiceType == InvoiceType.BackFrmSale + || w.invoice.invoiceType == InvoiceType.Repair) && !w.invoice.BillReference.HasValue) + .Include(inc=>inc.cODItem) + .GroupBy(g => g.CODID) + .Select(s => new IdNameByCount{ + ID= s.Key, + Title=s.Select(s=>s.sstt).First(), + count =Convert.ToInt32(s.Sum(s => s.am)) + }).OrderByDescending(o => o.count) + .ToListAsync(); + return request; } public async Task UpdateUser(User user) diff --git a/Shared/DTOs/DashBoardDTO.cs b/Shared/DTOs/DashBoardDTO.cs index fd87c8a..a172a25 100644 --- a/Shared/DTOs/DashBoardDTO.cs +++ b/Shared/DTOs/DashBoardDTO.cs @@ -17,6 +17,7 @@ namespace Shared.DTOs public List Warning { get; set; } = new List(); public List Notifications { get; set; } = new List(); public List lastActivitiesSevices { get; set; }=new List(); + public List>? MostInvoicedProduct { get; set; }=new List>(); } public class ServiceInDashBoardDTO { diff --git a/Shared/DTOs/IdName.cs b/Shared/DTOs/IdName.cs index 56f96c4..ae87eaa 100644 --- a/Shared/DTOs/IdName.cs +++ b/Shared/DTOs/IdName.cs @@ -15,4 +15,8 @@ namespace Shared.DTOs { public int Tax { get; set; } } + public class IdNameByCount : IdName + { + public int count { get; set; } + } } diff --git a/TaxPayerFull/Layout/MostInvoicedProduct.razor b/TaxPayerFull/Layout/MostInvoicedProduct.razor new file mode 100644 index 0000000..38cc7ab --- /dev/null +++ b/TaxPayerFull/Layout/MostInvoicedProduct.razor @@ -0,0 +1,6 @@ +@using Shared.DTOs +

MostInvoicedProduct

+ +@code { + [Parameter] public List>? model { get; set; } +}