This commit is contained in:
mmrbnjd
2024-06-18 13:59:32 +03:30
parent 28424214ed
commit 692aa30afe
10 changed files with 241 additions and 120 deletions

View File

@@ -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<ForCustomerSearch>? Cus=null;
private List<ForCustomerSearch>? Cus = null;
private List<IdName<int>>? Patterns = null;
private List<IdName<int>>? Units = null;
private List<CODIdName<int>>? 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<List<ForCustomerSearch>?> GetCustomers()
{
if (Cus == null)
{
if (Cus == null)
{
var request = await _hc.Get($"Customer/GetAllForidName");
if (request.IsSuccessStatusCode)
{
Cus= await request.Content.ReadFromJsonAsync<List<ForCustomerSearch>>();
Cus = await request.Content.ReadFromJsonAsync<List<ForCustomerSearch>>();
}
}
return Cus;
return Cus;
}
@@ -49,12 +51,12 @@ namespace Front
}
public async Task<List<IdName<int>>?> GetPatterns()
{
if (Patterns==null)
if (Patterns == null)
{
var request = await _hc.Get($"Invoice/GetPatterns");
if (request.IsSuccessStatusCode)
{
Patterns =await request.Content.ReadFromJsonAsync<List<IdName<int>>>();
Patterns = await request.Content.ReadFromJsonAsync<List<IdName<int>>>();
}
}
@@ -89,5 +91,19 @@ namespace Front
return dashBoard;
}
public async Task<List<IdName<int>>> GetUnits()
{
if (Units == null)
{
var rsp = await _hc.Get("COD/GetUnits");
if (rsp.IsSuccessStatusCode)
{
Units = await rsp.Content.ReadFromJsonAsync<List<IdName<int>>>();
}
}
return Units;
}
}
}
}

View File

@@ -0,0 +1,109 @@
@using Front.Services
@using Shared.DTOs
@inject HttpClientController hc;
@inject Fixedvalues fv;
<Modal @ref="cusmodal" />
<Modal @ref="codmodal" />
<div class="col-md-6 col-lg-4 col-xl-4 order-0 mb-4">
<div class="card h-51">
<div class="card-header d-flex align-items-center justify-content-between pb-0">
<div class="card-title mb-0">
<h5 class="m-0 me-2">آخرین</h5>
</div>
</div>
<div class="card-body">
<div class="d-flex justify-content-between align-items-center mb-3">
<div class="d-flex flex-column align-items-center gap-1">
</div>
<div id="orderStatisticsChart"></div>
</div>
<ul class="p-0 m-0">
@if (dashBoard!=null && dashBoard.lastActivitiesSevices.Any(w => w.PermissionID == 3))
{
<li class="d-flex mb-4 pb-1">
<div class="avatar flex-shrink-0"><img src="assets/img/icons/unicons/cc-success.png" alt="User" class="rounded"></div>
<div class="d-flex w-100 flex-wrap align-items-center justify-content-between gap-2">
<div class="me-2">
@{int invoid = Convert.ToInt32(dashBoard?.lastActivitiesSevices.Where(w => w.PermissionID == 3).Select(s => s.ID).First());}
<button @onclick="()=>InvoiceItem(invoid)" type="button" class="btn btn-link">صورتحساب</button>
<small>مربوط به مشتری @dashBoard?.lastActivitiesSevices.Where(w => w.PermissionID == 3).Select(s => s.Name).First() در وضعیت @dashBoard.lastActivitiesSevices.Where(w => w.PermissionID == 3).Select(s => s.TypeTitle).First()</small>
</div>
</div>
</li>
}
@if (dashBoard != null && dashBoard.lastActivitiesSevices.Any(w => w.PermissionID == 4))
{
<li class="d-flex mb-4 pb-1">
<div class="avatar flex-shrink-0"><img src="assets/img/icons/unicons/wallet-info.png" alt="chart success" class="rounded"></div>
<div class="d-flex w-100 flex-wrap align-items-center justify-content-between gap-2">
<div class="me-2">
@{
int codid = Convert.ToInt32(dashBoard?.lastActivitiesSevices.Where(w => w.PermissionID == 4).Select(s => s.ID).First());
}
<button @onclick="()=>CODItem(codid)" type="button" class="btn btn-link">کالا</button>
<small>با عنوان @dashBoard?.lastActivitiesSevices.Where(w => w.PermissionID == 4).Select(s => s.Name).First()</small>
</div>
</div>
</li>
}
@if (dashBoard != null && dashBoard.lastActivitiesSevices.Any(w => w.PermissionID == 8))
{
<li class="d-flex mb-4 pb-1">
<div class="avatar flex-shrink-0"><img src="assets/img/icons/unicons/cc-primary.png" alt="chart success" class="rounded"></div>
<div class="d-flex w-100 flex-wrap align-items-center justify-content-between gap-2">
<div class="me-2">
@{ int cusid = Convert.ToInt32(dashBoard?.lastActivitiesSevices.Where(w => w.PermissionID == 8).Select(s => s.ID).First());}
<button @onclick="()=>CustomerItem(cusid)" type="button" class="btn btn-link">مشتری</button>
<small>با نام @dashBoard?.lastActivitiesSevices.Where(w => w.PermissionID == 8).Select(s => s.Name).First()</small>
</div>
</div>
</li>
}
</ul>
</div>
</div>
</div>
@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<RCustomer>();
var parameters = new Dictionary<string, object>();
parameters.Add("Cus", cus);
parameters.Add("OnMultipleOfThree", EventCallback.Factory.Create<ActionInResultComponent>(this, CallBackCustomerItem));
await cusmodal.ShowAsync<CUSComponent.CustomerItem>(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<RCOD>();
var parameters = new Dictionary<string, object>();
var Unitrequest = await fv.GetUnits();
parameters.Add("Cod", cod);
parameters.Add("Unitrequest", Unitrequest);
parameters.Add("OnMultipleOfThree", EventCallback.Factory.Create<ActionInResultComponent>(this, CallBackCodItem));
await codmodal.ShowAsync<CUSComponent.CodItem>(title: "ویرایش اطلاعات", parameters: parameters);
}
}
}

View File

@@ -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);

View File

@@ -4,6 +4,7 @@
@using Front.CUSComponent
@using Shared.DTOs.Serch
@inject HttpClientController hc;
@inject Fixedvalues fv;
<PageTitle>کالا</PageTitle>
<Modal @ref="modal" />
@@ -125,11 +126,9 @@
protected override async Task OnInitializedAsync()
{
var rsp = await hc.Get("COD/GetUnits");
if (rsp.IsSuccessStatusCode)
{
Unitrequest = await rsp.Content.ReadFromJsonAsync<List<IdName<int>>>();
}
Unitrequest =await fv.GetUnits();
await base.OnInitializedAsync();
}
protected override async Task OnParametersSetAsync()

View File

@@ -331,9 +331,9 @@
<Button class="mt-3" Color="ButtonColor.Danger" @onclick="ShowConfirmationDeleteAsync" Type="ButtonType.Button">
حذف
</Button>
<Button class="mt-3" Color="ButtonColor.Primary" @onclick="ShowReport" Type="ButtonType.Button">
@* <Button class="mt-3" Color="ButtonColor.Primary" @onclick="ShowReport" Type="ButtonType.Button">
چاپ
</Button>
</Button> *@
}
}

View File

@@ -38,7 +38,7 @@
<div class="card-body">
<div class="card-title d-flex align-items-start justify-content-between">
<div class="avatar flex-shrink-0">
<img src="assets/img/icons/unicons/chart-success.png" alt="chart success" class="rounded">
<img src="assets/img/icons/unicons/cc-success.png" alt="User" class="rounded">
</div>
<div class="dropdown">
<button class="btn p-0" type="button" id="cardOpt3" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
@@ -387,93 +387,7 @@
</div>
<div class="row">
<!-- Order Statistics -->
<div class="col-md-6 col-lg-4 col-xl-4 order-0 mb-4">
<div class="card h-100">
<div class="card-header d-flex align-items-center justify-content-between pb-0">
<div class="card-title mb-0">
<h5 class="m-0 me-2">آمار سفارش</h5>
<small class="text-muted">42.82هزار کل فروش</small>
</div>
<div class="dropdown">
<button class="btn p-0" type="button" id="orederStatistics" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i class="bx bx-dots-vertical-rounded"></i>
</button>
<div class="dropdown-menu dropdown-menu-start new-style-17" aria-labelledby="orederStatistics">
<a class="dropdown-item" href="javascript:void(0);">انتخاب همه</a>
<a class="dropdown-item" href="javascript:void(0);">تازه کردن</a>
<a class="dropdown-item" href="javascript:void(0);">اشتراک</a>
</div>
</div>
</div>
<div class="card-body">
<div class="d-flex justify-content-between align-items-center mb-3">
<div class="d-flex flex-column align-items-center gap-1">
<h2 class="mb-2">8,258</h2>
<span>کل سفارشات</span>
</div>
<div id="orderStatisticsChart"></div>
</div>
<ul class="p-0 m-0">
<li class="d-flex mb-4 pb-1">
<div class="avatar flex-shrink-0 me-3">
<span class="avatar-initial rounded bg-label-primary"><i class='bx bx-mobile-alt'></i></span>
</div>
<div class="d-flex w-100 flex-wrap align-items-center justify-content-between gap-2">
<div class="me-2">
<h6 class="mb-0">الکترونیک</h6>
<small class="text-muted">موبایل، هدفون، تلویزیون</small>
</div>
<div class="user-progress">
<small class="fw-semibold">82.5هزار</small>
</div>
</div>
</li>
<li class="d-flex mb-4 pb-1">
<div class="avatar flex-shrink-0 me-3">
<span class="avatar-initial rounded bg-label-success"><i class='bx bx-closet'></i></span>
</div>
<div class="d-flex w-100 flex-wrap align-items-center justify-content-between gap-2">
<div class="me-2">
<h6 class="mb-0">فشن</h6>
<small class="text-muted">تی شرت، شلوار جین، کفش</small>
</div>
<div class="user-progress">
<small class="fw-semibold">23.8هزار</small>
</div>
</div>
</li>
<li class="d-flex mb-4 pb-1">
<div class="avatar flex-shrink-0 me-3">
<span class="avatar-initial rounded bg-label-info"><i class='bx bx-home-alt'></i></span>
</div>
<div class="d-flex w-100 flex-wrap align-items-center justify-content-between gap-2">
<div class="me-2">
<h6 class="mb-0">دکور</h6>
<small class="text-muted">هنرهای زیبا، غذاخوری</small>
</div>
<div class="user-progress">
<small class="fw-semibold">849هزار</small>
</div>
</div>
</li>
<li class="d-flex">
<div class="avatar flex-shrink-0 me-3">
<span class="avatar-initial rounded bg-label-secondary"><i class='bx bx-football'></i></span>
</div>
<div class="d-flex w-100 flex-wrap align-items-center justify-content-between gap-2">
<div class="me-2">
<h6 class="mb-0">ورزشی</h6>
<small class="text-muted">فوتبال، کیت کریکت</small>
</div>
<div class="user-progress">
<small class="fw-semibold">99</small>
</div>
</div>
</li>
</ul>
</div>
</div>
</div>
<LastActivityServices dashBoard="dashBoard" />
<!--/ Order Statistics -->
<!-- Expense Overview -->
<div class="col-md-6 col-lg-4 order-1 mb-4">