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

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

Initialize StockMaster project

  • Property mode set to 100644
File size: 6.5 KB
Line 
1@model List<StockMaster.Models.Sale>
2@{
3 ViewData["Title"] = "Sales";
4}
5
6<div class="row mb-4">
7 <div class="col-md-6">
8 <h2><i class="fas fa-shopping-cart"></i> Sales Management</h2>
9 </div>
10 <div class="col-md-6 text-end">
11 <a href="/Sale/Create" class="btn btn-success">
12 <i class="fas fa-plus"></i> Create New Sale
13 </a>
14 </div>
15</div>
16
17<div class="row mb-4">
18 <div class="col-md-3">
19 <div class="stat-card">
20 <div class="d-flex justify-content-between align-items-center">
21 <div>
22 <p class="text-muted mb-1">Total Sales</p>
23 <h4 class="mb-0">@Model.Count</h4>
24 </div>
25 <div class="stat-icon" style="background: linear-gradient(135deg, #2563eb 0%, #1e40af 100%);">
26 <i class="fas fa-receipt"></i>
27 </div>
28 </div>
29 </div>
30 </div>
31
32 <div class="col-md-3">
33 <div class="stat-card">
34 <div class="d-flex justify-content-between align-items-center">
35 <div>
36 <p class="text-muted mb-1">Total Amount</p>
37 <h4 class="mb-0">@Model.Sum(s => s.TotalAmount).ToString("N2") MKD</h4>
38 </div>
39 <div class="stat-icon" style="background: linear-gradient(135deg, #10b981 0%, #059669 100%);">
40 <i class="fas fa-coins"></i>
41 </div>
42 </div>
43 </div>
44 </div>
45
46 <div class="col-md-3">
47 <div class="stat-card">
48 <div class="d-flex justify-content-between align-items-center">
49 <div>
50 <p class="text-muted mb-1">Today's Sales</p>
51 <h4 class="mb-0">@Model.Count(s => s.DateTime.Date == DateTime.Today)</h4>
52 </div>
53 <div class="stat-icon" style="background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);">
54 <i class="fas fa-calendar-day"></i>
55 </div>
56 </div>
57 </div>
58 </div>
59
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">Average Sale</p>
65 <h4 class="mb-0">@(Model.Any() ? (Model.Sum(s => s.TotalAmount) / Model.Count).ToString("N2") : "0.00") MKD</h4>
66 </div>
67 <div class="stat-icon" style="background: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%);">
68 <i class="fas fa-chart-line"></i>
69 </div>
70 </div>
71 </div>
72 </div>
73</div>
74
75<div class="card">
76 <div class="card-header">
77 <i class="fas fa-list"></i> Sales List
78 </div>
79 <div class="card-body">
80 <div class="mb-3">
81 <input type="text" class="form-control" placeholder="Search sales..." id="searchBox">
82 </div>
83
84 <div class="table-responsive">
85 <table class="table table-hover" id="salesTable">
86 <thead>
87 <tr>
88 <th>Sale No</th>
89 <th>Date</th>
90 <th>Customer</th>
91 <th>Warehouse</th>
92 <th>User</th>
93 <th>Total Amount</th>
94 <th>Actions</th>
95 </tr>
96 </thead>
97 <tbody>
98 @foreach (var sale in Model)
99 {
100 <tr>
101 <td>
102 <strong>#@sale.SaleId</strong>
103 </td>
104 <td>
105 <i class="fas fa-calendar me-1"></i>
106 @sale.DateTime.ToString("dd.MM.yyyy HH:mm")
107 </td>
108 <td>
109 @if (sale.Customer != null)
110 {
111 <span>
112 <i class="fas fa-user me-1"></i>
113 @sale.Customer.Name
114 </span>
115 }
116 else
117 {
118 <span class="text-muted">-</span>
119 }
120 </td>
121 <td>
122 <i class="fas fa-warehouse me-1"></i>
123 @sale.Warehouse.Name
124 </td>
125 <td>
126 @if (sale.User != null)
127 {
128 <span class="badge bg-info">
129 @sale.User.Username
130 </span>
131 }
132 else
133 {
134 <span class="text-muted">-</span>
135 }
136 </td>
137 <td>
138 <strong class="text-success">
139 @sale.TotalAmount.ToString("N2") MKD
140 </strong>
141 </td>
142 <td>
143 <a href="/Sale/Details/@sale.SaleId" class="btn btn-sm btn-primary">
144 <i class="fas fa-eye"></i> Details
145 </a>
146 </td>
147 </tr>
148 }
149 </tbody>
150 </table>
151 </div>
152
153 @if (!Model.Any())
154 {
155 <div class="text-center py-5">
156 <i class="fas fa-inbox fa-3x text-muted mb-3"></i>
157 <p class="text-muted">No sales records found.</p>
158 <a href="/Sale/Create" class="btn btn-success">
159 <i class="fas fa-plus"></i> Create First Sale
160 </a>
161 </div>
162 }
163 </div>
164</div>
165
166@section Scripts {
167 <script>
168 $(document).ready(function() {
169 $('#searchBox').on('keyup', function() {
170 const value = $(this).val().toLowerCase();
171 $('#salesTable tbody tr').filter(function() {
172 $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1);
173 });
174 });
175 });
176 </script>
177}
Note: See TracBrowser for help on using the repository browser.