This commit is contained in:
mmrbnjd
2024-06-20 18:22:34 +03:30
parent 2120c4d848
commit 309fac81d3
10 changed files with 258 additions and 212 deletions

View File

@@ -0,0 +1,55 @@
@using Shared.DTOs
@using Front.Services
@inject HttpClientController hc;
@inject Fixedvalues fv;
<Modal @ref="cusmodal" />
<div class="col-md-5 col-lg-3 order-2 mb-4">
<div class="card h-100">
<div class="card-header d-flex align-items-center justify-content-between">
<h5 class="card-title m-0 me-2">فاکتور برای مشتری</h5>
<span class="badge bg-label-warning rounded-pill">هفنه گدشته</span>
</div>
<div class="card-body">
<ul class="p-0 m-0">
@foreach (var item in model)
{
<li class="d-flex">
<div class="d-flex w-100 flex-wrap align-items-center justify-content-between gap-2">
<div class="me-2">
<button @onclick="()=>CustomerItem(item.ID)" type="button" class="btn btn-link">@item.Title</button>
</div>
<div class="user-progress d-flex align-items-center gap-1"><h6 class="mb-0">@item.count.Value.ToString("N0")</h6> <span class="text-muted">عدد</span></div>
</div>
</li>
}
</ul>
</div>
</div>
</div>
@code {
[Parameter] public List<IdNameByCount<int>>? model { get; set; }
private Modal cusmodal = default!;
}
@functions{
public async Task CallBackCustomerItem(ActionInResultComponent result)
{
}
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);
}
}
}

View File

@@ -1,6 +1,60 @@
@using Shared.DTOs
<h3>MostInvoicedProduct</h3>
@using Front.Services
@inject HttpClientController hc;
@inject Fixedvalues fv;
<Modal @ref="codmodal" />
<div class="col-md-5 col-lg-3 order-2 mb-4">
<div class="card h-100">
<div class="card-header d-flex align-items-center justify-content-between">
<h5 class="card-title m-0 me-2">کالا های فاکتور شده</h5>
<span class="badge bg-label-warning rounded-pill">هفنه گدشته</span>
</div>
<div class="card-body">
<ul class="p-0 m-0">
@foreach (var item in model)
{
if (indexer == 6)
break;
<li class="d-flex">
<div class="d-flex w-100 flex-wrap align-items-center justify-content-between gap-2">
<div class="me-2">
<button @onclick="()=>CODItem(item.ID)" type="button" class="btn btn-link">@item.Title</button>
</div>
<div class="user-progress d-flex align-items-center gap-1"><h6 class="mb-0">@item.count.Value.ToString("N0")</h6> <span class="text-muted">عدد</span></div>
</div>
</li>
indexer++;
}
</ul>
</div>
</div>
</div>
@code {
int indexer = 1;
[Parameter] public List<IdNameByCount<int>>? model { get; set; }
private Modal codmodal = default!;
}
@functions{
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

@@ -10,7 +10,7 @@
<PageTitle>کاربری</PageTitle>
<div class="row">
<div class="col-lg-8 mb-4 order-0">
<div class="col-lg-6 mb-3 order-0">
<div class="card">
<div class="d-flex align-items-end row">
<div class="col-sm-7">
@@ -22,7 +22,48 @@
</div>
<div class="col-sm-5 text-center text-sm-left">
<div class="card-body pb-0 px-0 px-md-4">
<img src="assets/img/illustrations/man-with-laptop-light.png" height="140" alt="View Badge User" data-app-dark-img="illustrations/man-with-laptop-dark.png" data-app-light-img="illustrations/man-with-laptop-light.png">
<img src="assets/img/illustrations/man-with-laptop-light.png" height="165" alt="View Badge User" data-app-dark-img="illustrations/man-with-laptop-dark.png" data-app-light-img="illustrations/man-with-laptop-light.png">
</div>
</div>
</div>
</div>
</div>
<div class="col-lg-2 mb-1 order-0">
<div class="col-12 mb-4">
<div class="card">
<div class="card-body">
<div class="d-flex justify-content-between flex-sm-row flex-column gap-3">
<div class="d-flex flex-sm-column flex-row align-items-start justify-content-between">
<div class="card-title">
<h5 class="text-nowrap mb-2">گزارش فروش</h5>
<span class="badge bg-label-warning rounded-pill">این ماه</span>
</div>
@if (dashBoard != null && dashBoard.SaleInMonth.HasValue)
{
<div class="mt-sm-auto">
@if (dashBoard.Salepercent.HasValue && dashBoard.Salepercent.Value>0)
{
if (dashBoard.Salepercent.Value>=100)
{
<small class="text-success text-nowrap fw-semibold"><i class='bx bx-chevron-up'></i> @dashBoard.Salepercent %</small>
}
else
{
<small class="text-danger text-nowrap fw-semibold"><i class='bx bx-chevron-down'></i> @dashBoard.Salepercent %</small>
}
}
<h6 class="mb-0">@dashBoard?.SaleInMonth.Value.ToString("N0")
<span style="font-size: 10px"> ریال</span>
</h6>
</div>
}
</div>
</div>
</div>
</div>
@@ -32,7 +73,7 @@
<div class="row">
@if (dashBoard != null && dashBoard.AlistofServices.Any(w => w.PermissionID == 3))
{
<div class="col-lg-6 col-md-12 col-6 mb-4">
<div class="card">
<div class="card-body">
@@ -45,7 +86,7 @@
<i class="bx bx-dots-vertical-rounded"></i>
</button>
<div class="dropdown-menu dropdown-menu-end customStyle new-style-15" aria-labelledby="cardOpt3">
<a class="dropdown-item" >تمدید</a>
<a class="dropdown-item">تمدید</a>
<NavLink class="dropdown-item" href="Invoice">صورتحساب ها</NavLink>
</div>
</div>
@@ -54,7 +95,7 @@
<h3 class="card-title mb-1"><span style="font-size: 14px">مانده</span></h3>
@if (dashBoard.AlistofServices.Any(w => w.PermissionID == 3 && w.CalTypeID == 1))
{
@if (dashBoard.AlistofServices.Where(w => w.PermissionID == 3 && w.CalTypeID == 1).Select(s => s.Remaining).First()>0)
@if (dashBoard.AlistofServices.Where(w => w.PermissionID == 3 && w.CalTypeID == 1).Select(s => s.Remaining).First() > 0)
{
<small class="text-success fw-semibold">
@@ -88,7 +129,7 @@
تا تاریخ @dashBoard.AlistofServices.Where(w => w.PermissionID == 3 && w.CalTypeID == 1).Select(s => s.Remaining).First().ToString().ShamciToFormatShamciinFront()
</small>
}
else
else
{
<small class="text-danger fw-semibold">
<i class='bx'></i>
@@ -114,7 +155,7 @@
<i class="bx bx-dots-vertical-rounded"></i>
</button>
<div class="dropdown-menu dropdown-menu-end customStyle new-style-15" aria-labelledby="cardOpt3">
<a class="dropdown-item" >تمدید</a>
<a class="dropdown-item">تمدید</a>
<NavLink class="dropdown-item" href="Cod">کالا ها</NavLink>
</div>
</div>
@@ -123,7 +164,7 @@
<h3 class="card-title mb-1"><span style="font-size: 14px">مانده</span></h3>
@if (dashBoard.AlistofServices.Any(w => w.PermissionID == 4 && w.CalTypeID == 1))
{
@if (dashBoard.AlistofServices.Where(w => w.PermissionID == 4 && w.CalTypeID == 1).Select(s => s.Remaining).First()>0)
@if (dashBoard.AlistofServices.Where(w => w.PermissionID == 4 && w.CalTypeID == 1).Select(s => s.Remaining).First() > 0)
{
<small class="text-success fw-semibold">
<i class='bx'></i>
@@ -246,7 +287,7 @@
<h3 class="card-title mb-1"><span style="font-size: 14px">مانده</span></h3>
@if (dashBoard.AlistofServices.Any(w => w.PermissionID == 5 && w.CalTypeID == 1))
{
@if (dashBoard.AlistofServices.Where(w => w.PermissionID == 5 && w.CalTypeID == 1).Select(s => s.Remaining).First()>0)
@if (dashBoard.AlistofServices.Where(w => w.PermissionID == 5 && w.CalTypeID == 1).Select(s => s.Remaining).First() > 0)
{
<small class="text-success fw-semibold">
@@ -315,7 +356,7 @@
<h3 class="card-title mb-1"><span style="font-size: 14px">مانده</span></h3>
@if (dashBoard.AlistofServices.Any(w => w.PermissionID == 16 && w.CalTypeID == 1))
{
@if (dashBoard.AlistofServices.Where(w => w.PermissionID == 16 && w.CalTypeID == 1).Select(s => s.Remaining).First()>0)
@if (dashBoard.AlistofServices.Where(w => w.PermissionID == 16 && w.CalTypeID == 1).Select(s => s.Remaining).First() > 0)
{
<small class="text-success fw-semibold">
<i class='bx'></i>
@@ -360,28 +401,10 @@
</div>
</div>
}
<!-- </div>
<div class="row"> -->
<div class="col-12 mb-4">
<div class="card">
<div class="card-body">
<div class="d-flex justify-content-between flex-sm-row flex-column gap-3">
<div class="d-flex flex-sm-column flex-row align-items-start justify-content-between">
<div class="card-title">
<h5 class="text-nowrap mb-2">گزارش نمایه</h5>
<span class="badge bg-label-warning rounded-pill">سال 1399</span>
</div>
<div class="mt-sm-auto">
<small class="text-success text-nowrap fw-semibold"><i class='bx bx-chevron-up'></i> 68.2%</small>
<h3 class="mb-0">84,686<span style="font-size: 14px">تومان</span></h3>
</div>
</div>
<div id="profileReportChart"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@@ -389,163 +412,20 @@
<!-- Order Statistics -->
<LastActivityServices dashBoard="dashBoard" />
<!--/ Order Statistics -->
<!-- Expense Overview -->
<div class="col-md-6 col-lg-4 order-1 mb-4">
<div class="card h-100">
<div class="card-header">
<ul class="nav nav-pills" role="tablist">
<li class="nav-item">
<button type="button" class="nav-link active" role="tab" data-bs-toggle="tab" data-bs-target="#navs-tabs-line-card-income" aria-controls="navs-tabs-line-card-income" aria-selected="true">درآمد</button>
</li>
<li class="nav-item">
<button type="button" class="nav-link" role="tab">هزینه ها</button>
</li>
<li class="nav-item">
<button type="button" class="nav-link" role="tab">سود</button>
</li>
</ul>
</div>
<div class="card-body px-0">
<div class="tab-content p-0">
<div class="tab-pane fade show active" id="navs-tabs-line-card-income" role="tabpanel">
<div class="d-flex p-4 pt-3">
<div class="avatar flex-shrink-0 me-3">
<img src="assets/img/icons/unicons/wallet.png" alt="User">
</div>
<div>
<small class="text-muted d-block">کل موجودی</small>
<div class="d-flex align-items-center">
<h6 class="mb-0 me-1">459.10<span style="font-size: 14px">تومان</span></h6>
<small class="text-success fw-semibold">
<i class='bx bx-chevron-up'></i>
42.9%
</small>
</div>
</div>
</div>
<div id="incomeChart"></div>
<div class="d-flex justify-content-center pt-4 gap-2">
<div class="flex-shrink-0">
<div id="expensesOfWeek"></div>
</div>
<div>
<p class="mb-n1 mt-1">هزینه های این هفته</p>
<small class="text-muted"><span style="font-size: 14px">تومان</span>39 کمتر از هفته گذشته</small>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!--/ Expense Overview -->
<!-- Transactions -->
<div class="col-md-6 col-lg-4 order-2 mb-4">
<div class="card h-100">
<div class="card-header d-flex align-items-center justify-content-between">
<h5 class="card-title m-0 me-2">معاملات</h5>
<div class="dropdown">
<button class="btn p-0" type="button" id="transactionID" 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-end new-style-16" aria-labelledby="transactionID">
<a class="dropdown-item" href="javascript:void(0);">28 روز گذشته</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">
<ul class="p-0 m-0">
<li class="d-flex mb-4 pb-1">
<div class="avatar flex-shrink-0 me-3">
<img src="assets/img/icons/unicons/paypal.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">
<small class="text-muted d-block mb-1">پی پال</small>
<h6 class="mb-0">ارسال پول</h6>
</div>
<div class="user-progress d-flex align-items-center gap-1">
<h6 class="mb-0">+82.6</h6> <span class="text-muted">ریال</span>
</div>
</div>
</li>
<li class="d-flex mb-4 pb-1">
<div class="avatar flex-shrink-0 me-3">
<img src="assets/img/icons/unicons/wallet.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">
<small class="text-muted d-block mb-1">کیف پول</small>
<h6 class="mb-0">مک دی</h6>
</div>
<div class="user-progress d-flex align-items-center gap-1">
<h6 class="mb-0">+270.69</h6> <span class="text-muted">ریال</span>
</div>
</div>
</li>
<li class="d-flex mb-4 pb-1">
<div class="avatar flex-shrink-0 me-3">
<img src="assets/img/icons/unicons/chart.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">
<small class="text-muted d-block mb-1">منتقل کردن</small>
<h6 class="mb-0">بازپرداخت</h6>
</div>
<div class="user-progress d-flex align-items-center gap-1">
<h6 class="mb-0">+637.91</h6> <span class="text-muted">ریال</span>
</div>
</div>
</li>
<li class="d-flex mb-4 pb-1">
<div class="avatar flex-shrink-0 me-3">
<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">
<small class="text-muted d-block mb-1">کارت اعتباری</small>
<h6 class="mb-0">غذا سفارش داد</h6>
</div>
<div class="user-progress d-flex align-items-center gap-1">
<h6 class="mb-0">-838.71</h6> <span class="text-muted">ریال</span>
</div>
</div>
</li>
<li class="d-flex mb-4 pb-1">
<div class="avatar flex-shrink-0 me-3">
<img src="assets/img/icons/unicons/wallet.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">
<small class="text-muted d-block mb-1">کیف پول</small>
<h6 class="mb-0">استارباکس</h6>
</div>
<div class="user-progress d-flex align-items-center gap-1">
<h6 class="mb-0">+203.33</h6> <span class="text-muted">ریال</span>
</div>
</div>
</li>
<li class="d-flex">
<div class="avatar flex-shrink-0 me-3">
<img src="assets/img/icons/unicons/cc-warning.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">
<small class="text-muted d-block mb-1">مسترکارت</small>
<h6 class="mb-0">غذا سفارش داد</h6>
</div>
<div class="user-progress d-flex align-items-center gap-1">
<h6 class="mb-0">-92.45</h6> <span class="text-muted">ریال</span>
</div>
</div>
</li>
</ul>
</div>
</div>
</div>
<!--/ Transactions -->
<!-- MostInvoicedCustomer -->
@if (dashBoard != null)
{
<MostInvoicedCustomer model="dashBoard?.MostInvoicedCustomer" />
}
<!--/ MostInvoicedCustomer -->
<!-- MostInvoicedProduct -->
@if (dashBoard!=null)
{
<MostInvoicedProduct model="dashBoard?.MostInvoicedProduct" />
}
<!--/ MostInvoicedProduct -->
</div>
@@ -556,7 +436,7 @@
if (!await localserv.OnlineUser())
nav.NavigateTo("/");
dashBoard =await fv.GetDashBoard();
dashBoard = await fv.GetDashBoard();
//var rsp = await hc.Get("User/GetDashBoard");
// if (rsp.IsSuccessStatusCode)
// {

View File

@@ -34,9 +34,9 @@ builder.Services.AddScoped(sp => new UserAuthenticationDTO()
}) ;
//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/") });
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");