diff --git a/Back/Controllers/CODController.cs b/Back/Controllers/CODController.cs index 68ca028..c7225d2 100644 --- a/Back/Controllers/CODController.cs +++ b/Back/Controllers/CODController.cs @@ -33,6 +33,25 @@ namespace Back.Controllers // if (!await _checkPermission.AllowSYSGetCOD(Convert.ToInt32(UserID), user.RolUsers.First().CompanyID)) return Forbid("شما دسترسی به خواندن اطلاعات کالا را نداربد"); return Ok(await _servCOD.GetCODs(user.RolUsers.First().CompanyID, itemSerch)); } + [HttpGet("GetCod/{ID}")] + public async Task> GetCod(int ID) + { + var claim = HttpContext.User.Claims.First(c => c.Type == "UserID"); + var UserID = claim.Value; + var user = await _servUser.GetUserByUserID(Convert.ToInt32(UserID)); + var cod = await _servCOD.GetCodByCodID(ID, user.RolUsers.First().CompanyID); + return Ok(new RCOD + { + ID = cod.ID, + TaxID = cod.ItemTaxID, + Title = cod.Title, + Unit = cod.CODUnit.Title, + UnitID = cod.UnitID, + TaxRate = cod.TaxRate + + + }); + } [HttpGet("GetAllForidName")] public async Task>>> GetAllForidName() { diff --git a/Back/Services/ServCOD.cs b/Back/Services/ServCOD.cs index d70951e..aa77b6d 100644 --- a/Back/Services/ServCOD.cs +++ b/Back/Services/ServCOD.cs @@ -78,7 +78,8 @@ namespace Back.Services public async Task GetCodByCodID(int CodID, int CompanyID) { return await _CODRepo - .Get(w => w.ID == CodID && w.CompanyID == CompanyID && !w.IsDeleted).FirstOrDefaultAsync(); + .Get(w => w.ID == CodID && w.CompanyID == CompanyID && !w.IsDeleted) + .Include(inc=>inc.CODUnit).FirstOrDefaultAsync(); } public async Task ExistCodByCompanyID(int CodID, int CompanyID) { diff --git a/Back/Services/servUser.cs b/Back/Services/servUser.cs index e3725d0..91b6e97 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.Data.SqlTypes; using System.IdentityModel.Tokens.Jwt; using System.Reflection; using System.Security.Claims; @@ -20,12 +21,20 @@ namespace Back.Services private readonly IAsyncRepository _RepoUser; private readonly RepositoryBase _RepoCompany; private readonly IAsyncRepository _RepoPermissionPeriod; + + private readonly IAsyncRepository _RepoCus; + private readonly IAsyncRepository _RepoInvoice; + private readonly IAsyncRepository _RepoCODItem; public servUser(IConfiguration configuration , servNotification servNotification , IAsyncRepository RepoUser , IAsyncRepository RepoPermissionPeriod - , RepositoryBase repoCompany) + , RepositoryBase repoCompany, IAsyncRepository RepoCus + , IAsyncRepository RepoInvoice, IAsyncRepository RepoCODItem) { + _RepoCus = RepoCus; + _RepoInvoice = RepoInvoice; + _RepoCODItem = RepoCODItem; _configuration = configuration; _servNotification = servNotification; _RepoUser = RepoUser; @@ -212,7 +221,7 @@ namespace Back.Services } request.LastLoginDate = _RepoUser.Get(w => w.ID == UserID).Select(s => s.DateLastLogin).FirstOrDefault(); if (!string.IsNullOrEmpty(request.LastLoginDate)) - request.LastLoginDate.ShamciToFormatShamci(); + request.LastLoginDate = $"{request.LastLoginDate.Substring(8, 2)}:{request.LastLoginDate.Substring(10, 2)} {request.LastLoginDate.Substring(0, 4)}/{request.LastLoginDate.Substring(4, 2)}/{request.LastLoginDate.Substring(6, 2)}"; //if (user.Mobile == user.Username) @@ -238,6 +247,50 @@ namespace Back.Services Path = s.Path, ViewSize = s.ViewSize }).ToList(); + + LastActivitySevice lastInvoice = new LastActivitySevice(); + #region LastActivitySevice + //invoice + var lastinv = await _RepoInvoice.Get(w => w.CompanyID == user.RolUsers.First().CompanyID && !w.IsDeleted) + .Include(inc=>inc.Customer) + .Select(s=>new LastActivitySevice + { + ID = s.ID, + Date=s.InvoiceDate.ShamciToFormatShamci(), + Name=s.Customer.FullName, + PermissionID=3, + TypeTitle=s.invoiceType.GetEnumDisplayName() + }) + .OrderByDescending(o => o.ID).FirstOrDefaultAsync(); + if (lastinv!=null) + request.lastActivitiesSevices.Add(lastinv); + //cod + var lastcod = await _RepoCODItem.Get(w => w.CompanyID == user.RolUsers.First().CompanyID && !w.IsDeleted) + .Select(s => new LastActivitySevice + { + ID = s.ID, + Date = "", + Name = s.Title, + PermissionID = 4, + TypeTitle = "" + }) + .OrderByDescending(o => o.ID).FirstOrDefaultAsync(); + if (lastcod != null) + request.lastActivitiesSevices.Add(lastcod); + //cus + var lastcus = await _RepoCus.Get(w => w.CompanyID == user.RolUsers.First().CompanyID && !w.IsDeleted) + .Select(s => new LastActivitySevice + { + ID = s.ID, + Date = "", + Name = s.FullName, + PermissionID = 8, + TypeTitle = "" + }) + .OrderByDescending(o => o.ID).FirstOrDefaultAsync(); + if (lastcus != null) + request.lastActivitiesSevices.Add(lastcus); + #endregion return request; } public async Task UpdateUser(User user) diff --git a/Shared/DTOs/DashBoardDTO.cs b/Shared/DTOs/DashBoardDTO.cs index e6661ca..fd87c8a 100644 --- a/Shared/DTOs/DashBoardDTO.cs +++ b/Shared/DTOs/DashBoardDTO.cs @@ -2,7 +2,7 @@ namespace Shared.DTOs { - public class AlertDTO + public class AlertDTO { public int Status { get; set; } public string Message { get; set; } @@ -13,9 +13,10 @@ namespace Shared.DTOs { public string Datenow { get { return DateTime.Now.ConvertMiladiToShamsiinFront(); } } public string? LastLoginDate { get; set; } - public List AlistofServices { get; set; }=new List(); + public List AlistofServices { get; set; } = new List(); public List Warning { get; set; } = new List(); public List Notifications { get; set; } = new List(); + public List lastActivitiesSevices { get; set; }=new List(); } public class ServiceInDashBoardDTO { @@ -26,4 +27,13 @@ namespace Shared.DTOs public string Total { get; set; } public int Remaining { get; set; } } + public class LastActivitySevice + { + public int ID { get; set; } + public string Name { get; set; } + public string Date { get; set; } + public int PermissionID { get; set; } + public string? TypeTitle { get; set; } + + } } diff --git a/TaxPayerFull/FixedValues.cs b/TaxPayerFull/FixedValues.cs index 0822dcf..323cc2f 100644 --- a/TaxPayerFull/FixedValues.cs +++ b/TaxPayerFull/FixedValues.cs @@ -1,34 +1,36 @@ using Front.Services; using Shared.DTOs; using System.Net.Http.Json; +using System.Security.Cryptography; namespace Front { public class Fixedvalues { public readonly HttpClientController _hc; - private List? Cus=null; + private List? Cus = null; private List>? Patterns = null; + private List>? Units = null; private List>? Cods = null; private CompanyDTO? InfoCompany = null; - public InvoiceDTO? invoice { get; set; }=null; + public InvoiceDTO? invoice { get; set; } = null; private DashBoardDTO? dashBoard { get; set; } = null; public Fixedvalues(HttpClientController hc) { _hc = hc; } public async Task?> GetCustomers() - { - if (Cus == null) + { + if (Cus == null) { var request = await _hc.Get($"Customer/GetAllForidName"); if (request.IsSuccessStatusCode) { - Cus= await request.Content.ReadFromJsonAsync>(); + Cus = await request.Content.ReadFromJsonAsync>(); } } - - return Cus; + + return Cus; } @@ -49,12 +51,12 @@ namespace Front } public async Task>?> GetPatterns() { - if (Patterns==null) + if (Patterns == null) { var request = await _hc.Get($"Invoice/GetPatterns"); if (request.IsSuccessStatusCode) { - Patterns =await request.Content.ReadFromJsonAsync>>(); + Patterns = await request.Content.ReadFromJsonAsync>>(); } } @@ -89,5 +91,19 @@ namespace Front return dashBoard; } + public async Task>> GetUnits() + { + if (Units == null) + { + var rsp = await _hc.Get("COD/GetUnits"); + if (rsp.IsSuccessStatusCode) + { + Units = await rsp.Content.ReadFromJsonAsync>>(); + } + } + return Units; + } } -} + + +} \ No newline at end of file diff --git a/TaxPayerFull/Layout/LastActivityServices.razor b/TaxPayerFull/Layout/LastActivityServices.razor new file mode 100644 index 0000000..0970039 --- /dev/null +++ b/TaxPayerFull/Layout/LastActivityServices.razor @@ -0,0 +1,109 @@ +@using Front.Services +@using Shared.DTOs +@inject HttpClientController hc; +@inject Fixedvalues fv; + + +
+
+
+
+
آخرین
+
+
+
+
+
+
+
+
+
    + @if (dashBoard!=null && dashBoard.lastActivitiesSevices.Any(w => w.PermissionID == 3)) + { +
  • +
    User
    +
    +
    + @{int invoid = Convert.ToInt32(dashBoard?.lastActivitiesSevices.Where(w => w.PermissionID == 3).Select(s => s.ID).First());} + + + مربوط به مشتری @dashBoard?.lastActivitiesSevices.Where(w => w.PermissionID == 3).Select(s => s.Name).First() در وضعیت @dashBoard.lastActivitiesSevices.Where(w => w.PermissionID == 3).Select(s => s.TypeTitle).First() +
    +
    +
  • + } + @if (dashBoard != null && dashBoard.lastActivitiesSevices.Any(w => w.PermissionID == 4)) + { +
  • +
    chart success
    +
    +
    + @{ + int codid = Convert.ToInt32(dashBoard?.lastActivitiesSevices.Where(w => w.PermissionID == 4).Select(s => s.ID).First()); + } + + + با عنوان @dashBoard?.lastActivitiesSevices.Where(w => w.PermissionID == 4).Select(s => s.Name).First() +
    +
    +
  • + } + @if (dashBoard != null && dashBoard.lastActivitiesSevices.Any(w => w.PermissionID == 8)) + { +
  • +
    chart success
    +
    +
    + @{ int cusid = Convert.ToInt32(dashBoard?.lastActivitiesSevices.Where(w => w.PermissionID == 8).Select(s => s.ID).First());} + + با نام @dashBoard?.lastActivitiesSevices.Where(w => w.PermissionID == 8).Select(s => s.Name).First() +
    +
    +
  • + } + +
+
+
+
+ +@code { + [Parameter] public DashBoardDTO? dashBoard { get; set; } + private Modal cusmodal = default!; + private Modal codmodal = default!; +} +@functions{ + public async Task CallBackCustomerItem(ActionInResultComponent result) + { + + } + public async Task InvoiceItem(int ID) => hc._nav.NavigateTo($"InvoiceDetails/{ID}"); + public async Task CustomerItem(int ID) + { + var rsp = await hc.Get($"Customer/GetCustomer/{ID}"); + if (rsp.IsSuccessStatusCode) + { + var cus = await rsp.Content.ReadFromJsonAsync(); + var parameters = new Dictionary(); + parameters.Add("Cus", cus); + parameters.Add("OnMultipleOfThree", EventCallback.Factory.Create(this, CallBackCustomerItem)); + await cusmodal.ShowAsync(title: "ویرایش اطلاعات", parameters: parameters); + } + } + public async Task CallBackCodItem(ActionInResultComponent result){} + public async Task CODItem(int ID){ + var rsp = await hc.Get($"Cod/GetCod/{ID}"); + if (rsp.IsSuccessStatusCode) + { + var cod = await rsp.Content.ReadFromJsonAsync(); + var parameters = new Dictionary(); + var Unitrequest = await fv.GetUnits(); + parameters.Add("Cod", cod); + parameters.Add("Unitrequest", Unitrequest); + parameters.Add("OnMultipleOfThree", EventCallback.Factory.Create(this, CallBackCodItem)); + await codmodal.ShowAsync(title: "ویرایش اطلاعات", parameters: parameters); + + } + + } +} \ No newline at end of file diff --git a/TaxPayerFull/Pages/InvoiceReport.razor b/TaxPayerFull/Pages/InvoiceReport.razor index 282e038..303ccb2 100644 --- a/TaxPayerFull/Pages/InvoiceReport.razor +++ b/TaxPayerFull/Pages/InvoiceReport.razor @@ -72,16 +72,16 @@ vraArray = fv.invoice.items.Select(s => s.vra?.ToString("N0")).ToArray(); - //How to activate - Stimulsoft.Base.StiLicense.Key = - "6vJhGtLLLz2GNviWmUTrhSqnOItdDwjBylQzQcAOiHn0s4gy0Fr5YoUZ9V00Y0igCSFQzwEqYBh/N77k" + - "4f0fWXTHW5rqeBNLkaurJDenJ9o97TyqHs9HfvINK18Uwzsc/bG01Rq+x3H3Rf+g7AY92gvWmp7VA2Ux" + - "a30Q97f61siWz2dE5kdBVcCnSFzC6awE74JzDcJMj8OuxplqB1CYcpoPcOjKy1PiATlC3UsBaLEXsok1" + - "xxtRMQ283r282tkh8XQitsxtTczAJBxijuJNfziYhci2jResWXK51ygOOEbVAxmpflujkJ8oEVHkOA/C" + - "jX6bGx05pNZ6oSIu9H8deF94MyqIwcdeirCe60GbIQByQtLimfxbIZnO35X3fs/94av0ODfELqrQEpLr" + - "pU6FNeHttvlMc5UVrT4K+8lPbqR8Hq0PFWmFrbVIYSi7tAVFMMe2D1C59NWyLu3AkrD3No7YhLVh7LV0" + - "Tttr/8FrcZ8xirBPcMZCIGrRIesrHxOsZH2V8t/t0GXCnLLAWX+TNvdNXkB8cF2y9ZXf1enI064yE5dw" + - "Ms2fQ0yOUG/xornE"; + // //How to activate + // Stimulsoft.Base.StiLicense.Key = + // "6vJhGtLLLz2GNviWmUTrhSqnOItdDwjBylQzQcAOiHn0s4gy0Fr5YoUZ9V00Y0igCSFQzwEqYBh/N77k" + + // "4f0fWXTHW5rqeBNLkaurJDenJ9o97TyqHs9HfvINK18Uwzsc/bG01Rq+x3H3Rf+g7AY92gvWmp7VA2Ux" + + // "a30Q97f61siWz2dE5kdBVcCnSFzC6awE74JzDcJMj8OuxplqB1CYcpoPcOjKy1PiATlC3UsBaLEXsok1" + + // "xxtRMQ283r282tkh8XQitsxtTczAJBxijuJNfziYhci2jResWXK51ygOOEbVAxmpflujkJ8oEVHkOA/C" + + // "jX6bGx05pNZ6oSIu9H8deF94MyqIwcdeirCe60GbIQByQtLimfxbIZnO35X3fs/94av0ODfELqrQEpLr" + + // "pU6FNeHttvlMc5UVrT4K+8lPbqR8Hq0PFWmFrbVIYSi7tAVFMMe2D1C59NWyLu3AkrD3No7YhLVh7LV0" + + // "Tttr/8FrcZ8xirBPcMZCIGrRIesrHxOsZH2V8t/t0GXCnLLAWX+TNvdNXkB8cF2y9ZXf1enI064yE5dw" + + // "Ms2fQ0yOUG/xornE"; //var licenseStream = await Http.GetStreamAsync("Secret/license.key"); //Stimulsoft.Base.StiLicense.LoadFromStream(licenseStream); diff --git a/TaxPayerFull/Pages/UserPanel/COD.razor b/TaxPayerFull/Pages/UserPanel/COD.razor index d7047df..b1a1843 100644 --- a/TaxPayerFull/Pages/UserPanel/COD.razor +++ b/TaxPayerFull/Pages/UserPanel/COD.razor @@ -4,6 +4,7 @@ @using Front.CUSComponent @using Shared.DTOs.Serch @inject HttpClientController hc; +@inject Fixedvalues fv; کالا @@ -125,11 +126,9 @@ protected override async Task OnInitializedAsync() { - var rsp = await hc.Get("COD/GetUnits"); - if (rsp.IsSuccessStatusCode) - { - Unitrequest = await rsp.Content.ReadFromJsonAsync>>(); - } + + Unitrequest =await fv.GetUnits(); + await base.OnInitializedAsync(); } protected override async Task OnParametersSetAsync() diff --git a/TaxPayerFull/Pages/UserPanel/InvoiceItem.razor b/TaxPayerFull/Pages/UserPanel/InvoiceItem.razor index 6535dba..5b37949 100644 --- a/TaxPayerFull/Pages/UserPanel/InvoiceItem.razor +++ b/TaxPayerFull/Pages/UserPanel/InvoiceItem.razor @@ -331,9 +331,9 @@ - + *@ } } diff --git a/TaxPayerFull/Pages/UserPanel/Panel.razor b/TaxPayerFull/Pages/UserPanel/Panel.razor index 69dd536..f166249 100644 --- a/TaxPayerFull/Pages/UserPanel/Panel.razor +++ b/TaxPayerFull/Pages/UserPanel/Panel.razor @@ -38,7 +38,7 @@
- chart success + User
-
-
-
-
-
آمار سفارش
- 42.82هزار کل فروش -
- -
-
-
-
-

8,258

- کل سفارشات -
-
-
-
    -
  • -
    - -
    -
    -
    -
    الکترونیک
    - موبایل، هدفون، تلویزیون -
    -
    - 82.5هزار -
    -
    -
  • -
  • -
    - -
    -
    -
    -
    فشن
    - تی شرت، شلوار جین، کفش -
    -
    - 23.8هزار -
    -
    -
  • -
  • -
    - -
    -
    -
    -
    دکور
    - هنرهای زیبا، غذاخوری -
    -
    - 849هزار -
    -
    -
  • -
  • -
    - -
    -
    -
    -
    ورزشی
    - فوتبال، کیت کریکت -
    -
    - 99 -
    -
    -
  • -
-
-
-
+