source: StockMaster/Views/Home/Index.cshtml@ dfe03b8

main
Last change on this file since dfe03b8 was dfe03b8, checked in by Ceyda <ceyda.huseini@…>, 3 days ago

Initialize StockMaster project

  • Property mode set to 100644
File size: 7.0 KB
RevLine 
[dfe03b8]1@model StockMaster.ViewModels.DashboardViewModel
2@{
3 ViewData["Title"] = "Dashboard";
4
5 var userRole = Context.Session.GetString("Role");
6 bool isAdmin = userRole == "Admin";
7 bool canManageInventory = isAdmin || userRole == "Inventory Manager";
8 bool canSell = isAdmin || userRole == "Sales Personnel";
9}
10
11<div class="row mb-4">
12 <div class="col-12">
13 <h2 class="mb-0"><i class="fas fa-chart-line"></i> Dashboard</h2>
14 <p class="text-muted">Welcome, @Context.Session.GetString("FullName") (@userRole)</p>
15 </div>
16</div>
17
18
19<div class="row g-4 mb-4">
20 <div class="col-md-3">
21 <div class="stat-card">
22 <div class="d-flex justify-content-between align-items-center">
23 <div>
24 <p class="text-muted mb-1">Today's Sales</p>
25 <h3 class="mb-0">@Model.TotalSalesToday.ToString("N2") MKD</h3>
26 </div>
27 <div class="stat-icon" style="background: linear-gradient(135deg, #10b981 0%, #059669 100%);">
28 <i class="fas fa-coins"></i>
29 </div>
30 </div>
31 </div>
32 </div>
33
34 <div class="col-md-3">
35 <div class="stat-card">
36 <div class="d-flex justify-content-between align-items-center">
37 <div>
38 <p class="text-muted mb-1">Monthly Sales</p>
39 <h3 class="mb-0">@Model.TotalSalesMonth.ToString("N2") MKD</h3>
40 </div>
41 <div class="stat-icon" style="background: linear-gradient(135deg, #2563eb 0%, #1e40af 100%);">
42 <i class="fas fa-chart-bar"></i>
43 </div>
44 </div>
45 </div>
46 </div>
47 <div class="col-md-3">
48 <div class="stat-card">
49 <div class="d-flex justify-content-between align-items-center">
50 <div>
51 <p class="text-muted mb-1">Total Products</p>
52 <h3 class="mb-0">@Model.StockSummary["TotalProducts"]</h3>
53 </div>
54 <div class="stat-icon" style="background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);">
55 <i class="fas fa-box"></i>
56 </div>
57 </div>
58 </div>
59 </div>
60 <div class="col-md-3">
61 <div class="stat-card">
62 <div class="d-flex justify-content-between align-items-center">
63 <div>
64 <p class="text-muted mb-1">Total Stock</p>
65 <h3 class="mb-0">@Model.StockSummary["TotalStock"]</h3>
66 </div>
67 <div class="stat-icon" style="background: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%);">
68 <i class="fas fa-cubes"></i>
69 </div>
70 </div>
71 </div>
72 </div>
73</div>
74
75<div class="row">
76
77 <div class="col-md-6">
78 <div class="card">
79 <div class="card-header">
80 <i class="fas fa-exclamation-triangle"></i> Low Stock Products
81 </div>
82 <div class="card-body">
83 @if (Model.LowStockProducts.Any())
84 {
85 <div class="table-responsive">
86 <table class="table table-hover">
87 <thead>
88 <tr>
89 <th>Product Name</th>
90 <th>Reorder Level</th>
91 <th>Action</th>
92 </tr>
93 </thead>
94 <tbody>
95 @foreach (var product in Model.LowStockProducts)
96 {
97 <tr>
98 <td>@product.Name</td>
99 <td>
100 <span class="badge bg-warning">
101 @product.ReorderLevel
102 </span>
103 </td>
104 <td>
105
106 <a href="/PurchaseOrder/Create" class="btn btn-sm btn-primary @(canManageInventory ? "" : "disabled")">
107 <i class="fas fa-plus"></i> Create Order
108 </a>
109 </td>
110 </tr>
111 }
112 </tbody>
113 </table>
114 </div>
115 }
116 else
117 {
118 <div class="text-center py-4 text-muted">
119 <i class="fas fa-check-circle fa-3x mb-3"></i>
120 <p>All products have sufficient stock</p>
121 </div>
122 }
123 </div>
124 </div>
125 </div>
126
127
128 <div class="col-md-6">
129 <div class="card">
130 <div class="card-header">
131 <i class="fas fa-bolt"></i> Quick Actions
132 </div>
133 <div class="card-body">
134 <div class="d-grid gap-3">
135
136 <a href="/Sale/Create" class="btn btn-lg btn-success @(canSell ? "" : "disabled")">
137 <i class="fas fa-shopping-cart me-2"></i> Create New Sale
138 </a>
139
140
141 <a href="/Product/Create" class="btn btn-lg btn-primary @(canManageInventory ? "" : "disabled")">
142 <i class="fas fa-box me-2"></i> Add New Product
143 </a>
144
145
146 <a href="/PurchaseOrder/Create" class="btn btn-lg btn-warning text-white @(canManageInventory ? "" : "disabled")">
147 <i class="fas fa-truck me-2"></i> Create Purchase Order
148 </a>
149 </div>
150 </div>
151 </div>
152
153 <div class="card mt-4">
154 <div class="card-header">
155 <i class="fas fa-info-circle"></i> System Information
156 </div>
157 <div class="card-body">
158 <ul class="list-unstyled mb-0">
159 <li class="mb-2">
160 <i class="fas fa-warehouse text-primary me-2"></i>
161 <strong>Total Warehouses:</strong> @Model.StockSummary["Warehouses"]
162 </li>
163 <li class="mb-2">
164 <i class="fas fa-calendar text-success me-2"></i>
165 <strong>Date:</strong> @DateTime.Now.ToString("dd.MM.yyyy")
166 </li>
167 <li>
168 <i class="fas fa-user text-info me-2"></i>
169 <strong>User:</strong> @Context.Session.GetString("Username")
170 </li>
171 <li>
172 <i class="fas fa-id-badge text-warning me-2"></i>
173 <strong>Role:</strong> @userRole
174 </li>
175 </ul>
176 </div>
177 </div>
178 </div>
179</div>
Note: See TracBrowser for help on using the repository browser.