Skip to content

Commit f23b244

Browse files
authored
Merge pull request #106 from DiyorMarket/Mechanic-page-add-Status-column
Mechanic page add status column
2 parents 42c1c83 + 517f409 commit f23b244

File tree

6 files changed

+101
-31
lines changed

6 files changed

+101
-31
lines changed

CheckDrive.Web/CheckDrive.Web/Controllers/MechanicHandoversController.cs

+2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using CheckDrive.ApiContracts;
22
using CheckDrive.ApiContracts.MechanicHandover;
3+
using CheckDrive.Web.Models;
34
using CheckDrive.Web.Stores.Cars;
45
using CheckDrive.Web.Stores.DoctorReviews;
56
using CheckDrive.Web.Stores.Drivers;
@@ -140,6 +141,7 @@ public async Task<IActionResult> Create([Bind("IsHanded,Comments,MechanicId,Dist
140141
}
141142

142143
mechanicHandoverForCreateDto.Date = DateTime.Now;
144+
mechanicHandoverForCreateDto.Status = mechanicHandoverForCreateDto.IsHanded ? StatusForDto.Pending : StatusForDto.Rejected;
143145
await _mechanicHandoverDataStore.CreateMechanicHandoverAsync(mechanicHandoverForCreateDto);
144146
return RedirectToAction(nameof(PersonalIndex));
145147
}

CheckDrive.Web/CheckDrive.Web/Controllers/OperatorReviewsController.cs

+16-15
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,12 @@ public async Task<IActionResult> Index(int? pageNumber, string? searchString, Da
4949
r.Comments,
5050
Status = ((StatusForDto)r.Status) switch
5151
{
52-
StatusForDto.Pending => "Pending",
53-
StatusForDto.Completed => "Completed",
54-
StatusForDto.Rejected => "Rejected",
55-
StatusForDto.Unassigned => "Unassigned",
56-
_ => "Unknown Status"
52+
StatusForDto.Pending => "Kutilmoqda",
53+
StatusForDto.Completed => "Yakunlangan",
54+
StatusForDto.Rejected => "Rad etilgan",
55+
StatusForDto.Unassigned => "Yaratilmagan",
56+
StatusForDto.RejectedByDriver => "Haydovchi tomonidan rad etilgan",
57+
_ => "No`malum holat"
5758
}
5859
}).ToList();
5960

@@ -185,23 +186,22 @@ public async Task<IActionResult> GetCarByDriverId(int driverId)
185186
[ValidateAntiForgeryToken]
186187
public async Task<IActionResult> Create([Bind("OilAmount,Comments,Status,Date,OperatorId,DriverId,CarId,OilMarks,IsGiven")] OperatorReviewForCreateDto operatorReview)
187188
{
188-
189189
if (ModelState.IsValid)
190190
{
191191
operatorReview.Date = DateTime.Now;
192-
var car = _carDataStore.GetCarAsync(operatorReview.CarId);
192+
var car = await _carDataStore.GetCarAsync(operatorReview.CarId);
193193
var carr = new CarForUpdateDto
194194
{
195195
Id = operatorReview.CarId,
196-
Color = car.Result.Color,
197-
FuelTankCapacity = car.Result.FuelTankCapacity,
198-
ManufacturedYear = car.Result.ManufacturedYear,
199-
MeduimFuelConsumption = car.Result.MeduimFuelConsumption,
200-
Model = car.Result.Model,
201-
Number = car.Result.Number,
202-
RemainingFuel = car.Result.RemainingFuel + operatorReview.OilAmount,
196+
Color = car.Color,
197+
FuelTankCapacity = car.FuelTankCapacity,
198+
ManufacturedYear = car.ManufacturedYear,
199+
MeduimFuelConsumption = car.MeduimFuelConsumption,
200+
Model = car.Model,
201+
Number = car.Number,
202+
RemainingFuel = car.RemainingFuel + operatorReview.OilAmount,
203203
};
204-
204+
205205
double maxOilAmount = await GetMaxOilAmount(operatorReview.CarId);
206206

207207
if ((operatorReview.OilAmount < 0 && operatorReview.IsGiven == true) ||
@@ -215,6 +215,7 @@ public async Task<IActionResult> Create([Bind("OilAmount,Comments,Status,Date,Op
215215
}
216216
else
217217
{
218+
operatorReview.Status = operatorReview.IsGiven ? StatusForDto.Pending : StatusForDto.Rejected;
218219
await _carDataStore.UpdateCarAsync(operatorReview.CarId, carr);
219220
await _operatorReviewDataStore.CreateOperatorReview(operatorReview);
220221
return RedirectToAction(nameof(PersonalIndex));

CheckDrive.Web/CheckDrive.Web/Views/DoctorReviews/Create.cshtml

+3-4
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@
3535
}
3636
</div>
3737
<div class="form-check form-switch mt-3">
38-
<input asp-for="IsHealthy" class="form-check-input is-invalid" type="checkbox" role="switch" id="flexSwitchCheckDefault" value="true">
38+
<input asp-for="IsHealthy" class="form-check-input" type="checkbox" role="switch" id="flexSwitchCheckDefault" value="true">
3939
<label asp-for="IsHealthy" class="form-check-label" for="flexSwitchCheckDefault">Sog`ligi</label>
40-
<div id="checkboxError" class="text-danger mt-2"></div>
40+
<div id="checkboxError" class="text-danger d-none"></div>
4141
</div>
4242
<div class="form-group w-50">
4343
<select asp-for="DoctorId" class="form-control border border-dark d-none" asp-items="@ViewBag.Doctors"></select>
@@ -71,9 +71,8 @@
7171
checkboxError.classList.remove('d-none');
7272
}
7373
74-
form.addEventListener('submit', function (event) {
74+
form.addEventListener('submit', function () {
7575
if (!checkbox.checked) {
76-
event.preventDefault(); // Prevent form submission
7776
checkbox.classList.add('is-invalid'); // Add invalid class
7877
checkboxError.classList.remove('d-none'); // Show error message
7978
} else {

CheckDrive.Web/CheckDrive.Web/Views/MechanicHandovers/PersonalIndex.cshtml

+35
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353
<th scope="col" style="width: 20%">Boshlang'ich masofa</th>
5454
<th scope="col" style="width: 38%">Izoh</th>
5555
<th scope="col" style="width: 15%">Sana</th>
56+
<th scope="col" style="width: 15%">Holati</th>
5657
</tr>
5758
</thead>
5859
<tbody>
@@ -89,6 +90,32 @@
8990
<td>@item.Distance</td>
9091
<td>@item.Comments</td>
9192
<td>@item.Date</td>
93+
<td class="text-center">
94+
@if (item.Status == CheckDrive.ApiContracts.StatusForDto.Pending)
95+
{
96+
<span class="badge bg-pending shadow">Kutilmoqda</span>
97+
}
98+
else if (item.Status == CheckDrive.ApiContracts.StatusForDto.Unassigned)
99+
{
100+
<span class="badge bg-unassigned shadow">Yaratilmagan</span>
101+
}
102+
else if (item.Status == CheckDrive.ApiContracts.StatusForDto.Completed)
103+
{
104+
<span class="badge bg-success shadow">Yakunlangan</span>
105+
}
106+
else if (item.Status == CheckDrive.ApiContracts.StatusForDto.RejectedByDriver)
107+
{
108+
<span class="badge bg-danger shadow">Haydovchi tomonidan rad etilgan</span>
109+
}
110+
else if (item.Status == CheckDrive.ApiContracts.StatusForDto.Rejected)
111+
{
112+
<span class="badge bg-danger shadow">Rad etilgan</span>
113+
}
114+
else
115+
{
116+
<span class="badge bg-empty shadow">No`malum holat</span>
117+
}
118+
</td>
92119
</tr>
93120
}
94121
}
@@ -147,6 +174,14 @@
147174
border-radius: 5px;
148175
}
149176
177+
.bg-pending {
178+
background-color: orange;
179+
}
180+
181+
.bg-unassigned {
182+
background-color: slategray;
183+
}
184+
150185
.bg-success {
151186
background-color: #28a745;
152187
}

CheckDrive.Web/CheckDrive.Web/Views/OperatorReviews/Create.cshtml

+10-10
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
<div class="row mt-custom">
99
<div class="col-md-4 offset-md-1 mt-5">
10-
<h4>Royxatga olish</h4>
10+
<h4>Ro'yxatga olish</h4>
1111
<hr class="w-50" />
1212
<form id="operatorReviewForm" asp-action="Create" method="post">
1313
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
@@ -17,7 +17,7 @@
1717
<input type="hidden" asp-for="CarId" />
1818
<div class="form-check form-switch">
1919
<input asp-for="IsGiven" class="form-check-input" type="checkbox" role="switch" id="flexSwitchCheckDefault" value="true">
20-
<label asp-for="IsGiven" class="form-check-label" for="flexSwitchCheckDefault">@Html.DisplayNameFor(model => model.IsGiven)</label>
20+
<label asp-for="IsGiven" class="form-check-label" for="flexSwitchCheckDefault">To'ldirish</label>
2121
</div>
2222

2323
<div class="form-group w-50">
@@ -80,25 +80,25 @@
8080
<div class="form-group w-50">
8181
<select asp-for="OperatorId" class="form-control border border-dark d-none" asp-items="@ViewBag.Operators"></select>
8282
</div>
83-
<div class="form-group w-50">
84-
<label asp-for="OilAmount" class="control-label"></label>
83+
<div class="form-group mt-3 w-50">
84+
<label asp-for="OilAmount" class="control-label">Yoqilg'i miqdori</label>
8585
<input asp-for="OilAmount" class="form-control" id="OilAmount" />
8686
<span asp-validation-for="OilAmount" class="text-danger"></span>
8787
</div>
88-
<div class="form-group w-50">
89-
<label asp-for="OilMarks" class="control-label mt-2">Yoqilgi Markasi</label>
88+
<div class="form-group mt-2 w-50">
89+
<label asp-for="OilMarks" class="control-label mt-2">Yoqilg'i markasi</label>
9090
<select asp-for="OilMarks" class="form-control border border-dark" asp-items="@ViewBag.OilMarks"></select>
9191
</div>
92-
<div class="form-group w-50">
92+
<div class="form-group mt-3 w-50">
9393
<label asp-for="Comments" for="exampleFormControlTextarea1">Izoh</label>
9494
<textarea asp-for="Comments" class="form-control" rows="4"></textarea>
9595
</div>
9696
<div class="form-group mt-3 w-50">
9797
<a asp-action="PersonalIndex" class="btn btn-outline-info">
98-
<i class="fa-solid fa-arrow-left-long"></i> Back
98+
<i class="fa-solid fa-arrow-left-long"></i> Orqaga
9999
</a>
100-
<button class="btn btn-outline-success" type="submit">
101-
<i class="fa fa-plus"></i> Create
100+
<button class="btn btn-success" type="submit">
101+
<i class="fa fa-plus"></i> Yaratish
102102
</button>
103103
</div>
104104
</form>

CheckDrive.Web/CheckDrive.Web/Views/OperatorReviews/PersonalIndex.cshtml

+35-2
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757
<th class="text-center">Yoqilg`i Markasi</th>
5858
<th class="text-center">Yoqilg`i berildimi?</th>
5959
<th class="text-center comments-column">Izoh</th>
60-
<th class="text-center">Status</th>
60+
<th class="text-center">Holati</th>
6161
</tr>
6262
</thead>
6363
<tbody>
@@ -102,7 +102,32 @@
102102
}
103103
</td>
104104
<td class="text-center comments-column">@review.Comments</td>
105-
<td class="text-center">@review.Status</td>
105+
<td class="text-center">
106+
@if(review.Status == CheckDrive.ApiContracts.StatusForDto.Pending)
107+
{
108+
<span class="badge bg-pending shadow">Kutilmoqda</span>
109+
}
110+
else if (review.Status == CheckDrive.ApiContracts.StatusForDto.Unassigned)
111+
{
112+
<span class="badge bg-unassigned shadow">Yaratilmagan</span>
113+
}
114+
else if (review.Status == CheckDrive.ApiContracts.StatusForDto.Completed)
115+
{
116+
<span class="badge bg-success shadow">Yakunlangan</span>
117+
}
118+
else if (review.Status == CheckDrive.ApiContracts.StatusForDto.RejectedByDriver)
119+
{
120+
<span class="badge bg-danger shadow">Haydovchi tomonidan rad etilgan</span>
121+
}
122+
else if (review.Status == CheckDrive.ApiContracts.StatusForDto.Rejected)
123+
{
124+
<span class="badge bg-danger shadow">Rad etilgan</span>
125+
}
126+
else
127+
{
128+
<span class="badge bg-empty shadow">No`malum holat</span>
129+
}
130+
</td>
106131
</tr>
107132
}
108133
</tbody>
@@ -154,6 +179,14 @@
154179
border-radius: 5px;
155180
}
156181
182+
.bg-pending{
183+
background-color: orange;
184+
}
185+
186+
.bg-unassigned{
187+
background-color: slategray;
188+
}
189+
157190
.bg-success {
158191
background-color: #28a745;
159192
}

0 commit comments

Comments
 (0)