repair(нема карточек)
This commit is contained in:
parent
045ddb9f6b
commit
f2445bd448
@ -11,6 +11,6 @@ namespace Contracts.ViewModels
|
||||
[DisplayName("Страна производитель")]
|
||||
public string Country { get; set; } = string.Empty;
|
||||
public int UserId { get; set; }
|
||||
public Dictionary<int, IWorkerModel>? WorkerMachines { get; set; }
|
||||
public Dictionary<int, IWorkerModel> WorkerMachines { get; set; } = new();
|
||||
}
|
||||
}
|
||||
|
@ -15,6 +15,6 @@ namespace Contracts.ViewModels
|
||||
public int UserId { get; set; }
|
||||
public int? ProductionId { get; set; }
|
||||
public string? ProductionName { get; set; }
|
||||
public Dictionary<int, IWorkerModel>? WorkerWorkshops { get; set; }
|
||||
public Dictionary<int, IWorkerModel> WorkerWorkshops { get; set; } = new();
|
||||
}
|
||||
}
|
||||
|
@ -96,11 +96,12 @@ namespace GuarantorAPP.Controllers
|
||||
return View(new MachineViewModel());
|
||||
}
|
||||
[HttpPost]
|
||||
public IActionResult CreateMachine(int id, string title, int[] workerIds)
|
||||
public IActionResult CreateMachine(int id, string title, string country, int[] workerIds)
|
||||
{
|
||||
MachineBindingModel model = new MachineBindingModel();
|
||||
model.Id = id;
|
||||
model.Title = title;
|
||||
model.Country = country;
|
||||
model.DateCreate = DateTime.Now;
|
||||
model.UserId = UserGuarantor.user!.Id;
|
||||
var workers = _data.GetWorkers(UserGuarantor.user!.Id);
|
||||
@ -207,11 +208,13 @@ namespace GuarantorAPP.Controllers
|
||||
return View(new WorkshopViewModel());
|
||||
}
|
||||
[HttpPost]
|
||||
public IActionResult CreateWorkshop(int id, string title, int[] workerIds)
|
||||
public IActionResult CreateWorkshop(int id, string title, string address, string director, int[] workerIds)
|
||||
{
|
||||
WorkshopBindingModel model = new WorkshopBindingModel();
|
||||
model.Id = id;
|
||||
model.Title = title;
|
||||
model.Address = address;
|
||||
model.Director = director;
|
||||
model.DateCreate = DateTime.Now;
|
||||
model.UserId = UserGuarantor.user!.Id;
|
||||
var workers = _data.GetWorkers(UserGuarantor.user!.Id);
|
||||
@ -220,17 +223,25 @@ namespace GuarantorAPP.Controllers
|
||||
var worker = workers!.FirstOrDefault(x => x.Id == workerIds[i])!;
|
||||
model.WorkshopWorker[workerIds[i]] = (worker);
|
||||
}
|
||||
if (model.WorkshopWorker.Count == 0)
|
||||
return RedirectToAction("IndexWorkshop");
|
||||
bool changed = false;
|
||||
if (model.WorkshopWorker.Count > 0)
|
||||
{
|
||||
if (id != 0)
|
||||
{
|
||||
_data.UpdateWorkshop(model);
|
||||
changed = _data.UpdateWorkshop(model);
|
||||
}
|
||||
else
|
||||
{
|
||||
_data.CreateWorkshop(model);
|
||||
changed = _data.CreateWorkshop(model);
|
||||
}
|
||||
}
|
||||
if (changed)
|
||||
return RedirectToAction("IndexWorkshop");
|
||||
else
|
||||
{
|
||||
ViewBag.AllWorkers = workers;
|
||||
return View(model);
|
||||
}
|
||||
}
|
||||
[HttpGet]
|
||||
public IActionResult Privacy()
|
||||
@ -285,22 +296,37 @@ namespace GuarantorAPP.Controllers
|
||||
ViewBag.EndDate = endDate;
|
||||
return View(values);
|
||||
}
|
||||
[HttpGet]
|
||||
public IActionResult WorkerProductChoose()
|
||||
{
|
||||
if (!IsLoggedIn)
|
||||
return RedirectToAction("IndexNonReg");
|
||||
var workers = _data.GetWorkers(UserId);
|
||||
return View(workers);
|
||||
}
|
||||
[HttpPost]
|
||||
public IActionResult WorkerProductChoose(List<int> selectedItems, string reportType)
|
||||
{
|
||||
string value = string.Join("/", selectedItems);
|
||||
HttpContext.Session.SetString("Workers", value);
|
||||
if (reportType.Equals("default"))
|
||||
return RedirectToAction("WorkerProductReport");
|
||||
else if (reportType.Equals("excel"))
|
||||
return RedirectToAction("");
|
||||
else
|
||||
return RedirectToAction("");
|
||||
}
|
||||
[HttpGet]
|
||||
public IActionResult WorkerProductReport()
|
||||
{
|
||||
List<WorkerProductReportViewModel> workerProductReports = new List<WorkerProductReportViewModel>
|
||||
var value = HttpContext.Session.GetString("Workers");
|
||||
if(value != null)
|
||||
{
|
||||
new WorkerProductReportViewModel
|
||||
{
|
||||
WorkerName = "Работник 1",
|
||||
Products = new List<string> { "Изделие первое", "Изделие второе" }
|
||||
},
|
||||
new WorkerProductReportViewModel
|
||||
{
|
||||
WorkerName = "Работник 2",
|
||||
Products = new List<string> { "Изделие одно", "Изделие второе" }
|
||||
List<int> rawReports = value!.Split(',').Select(x => int.Parse(x)).ToList();
|
||||
var reports = _data.GetProductReports(rawReports);
|
||||
return View(reports);
|
||||
}
|
||||
};
|
||||
return View(workerProductReports);
|
||||
return View(new List<WorkerProductReportViewModel>());
|
||||
}
|
||||
public IActionResult ReportsMenu()
|
||||
{
|
||||
|
@ -13,8 +13,9 @@ namespace GuarantorAPP
|
||||
private readonly IMachineLogic _machineLogic;
|
||||
private readonly IWorkshopLogic _workshopLogic;
|
||||
private readonly IProductionLogic _productionLogic;
|
||||
private readonly IProductLogic _productLogic;
|
||||
|
||||
public GuarantorData(ILogger logger, IGuarantorLogic guarantorLogic, IWorkerLogic workerLogic, IMachineLogic machineLogic, IWorkshopLogic workshopLogic, IProductionLogic productionLogic)
|
||||
public GuarantorData(ILogger<GuarantorData> logger, IGuarantorLogic guarantorLogic, IWorkerLogic workerLogic, IMachineLogic machineLogic, IWorkshopLogic workshopLogic, IProductionLogic productionLogic, IProductLogic productLogic)
|
||||
{
|
||||
_logger = logger;
|
||||
_guarantorLogic = guarantorLogic;
|
||||
@ -22,6 +23,7 @@ namespace GuarantorAPP
|
||||
_machineLogic = machineLogic;
|
||||
_workshopLogic = workshopLogic;
|
||||
_productionLogic = productionLogic;
|
||||
_productLogic = productLogic;
|
||||
}
|
||||
|
||||
public GuarantorViewModel? Login(string login, string password)
|
||||
@ -128,5 +130,20 @@ namespace GuarantorAPP
|
||||
}
|
||||
return machineWorkshopTimeReports;
|
||||
}
|
||||
public List<WorkerProductReportViewModel>? GetProductReports(List<int> workers)
|
||||
{
|
||||
List<WorkerProductReportViewModel> reports = new();
|
||||
foreach (int i in workers)
|
||||
{
|
||||
WorkerProductReportViewModel report = new();
|
||||
var worker = _workerLogic.ReadElement(new() { Id = i });
|
||||
report.WorkerName = worker!.Name;
|
||||
var products = _productLogic.ReadList(new() { WorkerId = i });
|
||||
if (products != null)
|
||||
report.Products = products.Select(x => x.Name).ToList();
|
||||
reports.Add(report);
|
||||
}
|
||||
return reports;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -16,11 +16,13 @@ builder.Services.AddTransient<IWorkerStorage, WorkerStorage>();
|
||||
builder.Services.AddTransient<IWorkshopStorage, WorkshopStorage>();
|
||||
builder.Services.AddTransient<IMachineStorage, MachineStorage>();
|
||||
builder.Services.AddTransient<IProductionStorage, ProductionStorage>();
|
||||
builder.Services.AddTransient<IProductStorage, ProductStorage>();
|
||||
builder.Services.AddTransient<IGuarantorLogic, GuarantorLogic>();
|
||||
builder.Services.AddTransient<IWorkerLogic, WorkerLogic>();
|
||||
builder.Services.AddTransient<IWorkshopLogic, WorkshopLogic>();
|
||||
builder.Services.AddTransient<IMachineLogic, MachineLogic>();
|
||||
builder.Services.AddTransient<IProductionLogic, ProductionLogic>();
|
||||
builder.Services.AddTransient<IProductLogic, ProductLogic>();
|
||||
builder.Services.AddTransient<GuarantorData>();
|
||||
|
||||
builder.Services.AddSession(options =>
|
||||
|
@ -42,7 +42,7 @@
|
||||
<input type="hidden" name="workerIds" value="@worker.Key" />
|
||||
@worker.Value.Name
|
||||
</td>
|
||||
<td>@worker.Value.Position</td>
|
||||
<td>@worker.Value.Specialization</td>
|
||||
<td class="worker-salary" data-salary="@worker.Value.Salary">@worker.Value.Salary</td>
|
||||
<td><button type="button" class="deleteWorker" data-worker-id="@worker.Value.Id">Удалить</button></td>
|
||||
</tr>
|
||||
@ -54,15 +54,11 @@
|
||||
<option value="">Выберите работника</option>
|
||||
@foreach (var worker in ViewBag.AllWorkers)
|
||||
{
|
||||
<option value="@worker.Id" data-salary="@worker.Salary">@worker.Name</option>
|
||||
<option value="@worker.Id" data-specialization="@worker.Specialization" data-salary="@worker.Salary">@worker.Name</option>
|
||||
}
|
||||
</select>
|
||||
<button type="button" id="addWorker" class="btn btn-secondary">Добавить работника</button>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-4">Общая зарплата:</div>
|
||||
<div class="col-8"><input type="text" id="totalSalary" name="totalSalary" readonly /></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-8"></div>
|
||||
<div class="col-4"><input type="submit" value="Сохранить" class="btn btn-primary" /></div>
|
||||
@ -73,25 +69,18 @@
|
||||
<script src="https://cdn.datatables.net/1.11.3/js/jquery.dataTables.js"></script>
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
function updateTotalSalary() {
|
||||
var totalSalary = 0;
|
||||
$('#workersTable tbody tr').each(function () {
|
||||
var salary = $(this).find('.worker-salary').data('salary');
|
||||
totalSalary += parseFloat(salary);
|
||||
});
|
||||
$('#totalSalary').val(totalSalary.toFixed(2));
|
||||
}
|
||||
|
||||
$(document).on('click', '.deleteWorker', function () {
|
||||
var row = $(this).closest('tr');
|
||||
row.remove();
|
||||
updateTotalSalary();
|
||||
});
|
||||
|
||||
$('#addWorker').click(function () {
|
||||
var selectedWorker = $('#workerSelect option:selected');
|
||||
if (selectedWorker.val()) {
|
||||
var workerId = selectedWorker.val();
|
||||
var workerName = selectedWorker.text();
|
||||
var workerSalary = selectedWorker.data('salary');
|
||||
var workerSpecialization = selectedWorker.data('specialization');
|
||||
var exists = false;
|
||||
$('#workersTable tbody tr').each(function () {
|
||||
if ($(this).data('worker-id') == workerId) {
|
||||
@ -103,27 +92,19 @@
|
||||
alert('Этот работник уже добавлен.');
|
||||
return;
|
||||
}
|
||||
|
||||
var workerName = selectedWorker.text();
|
||||
var workerSalary = selectedWorker.data('salary');
|
||||
var workerPosition = selectedWorker.data('position');
|
||||
|
||||
var newRow = `
|
||||
<tr data-worker-id="${workerId}">
|
||||
<td>
|
||||
<input type="hidden" name="workerIds" value="${workerId}" />
|
||||
${workerName}
|
||||
</td>
|
||||
<td>${workerPosition}</td>
|
||||
<td>${workerSpecialization}</td>
|
||||
<td class="worker-salary" data-salary="${workerSalary}">${workerSalary}</td>
|
||||
<td><button type="button" class="deleteWorker" data-worker-id="${workerId}">Удалить</button></td>
|
||||
</tr>
|
||||
`;
|
||||
$('#workersTable tbody').append(newRow);
|
||||
|
||||
$('#workerSelect').val('');
|
||||
|
||||
updateTotalSalary();
|
||||
} else {
|
||||
alert('Выберите работника для добавления');
|
||||
}
|
||||
|
@ -29,13 +29,6 @@
|
||||
<span id="directorError" class="text-danger"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-4">Название продукции:</div>
|
||||
<div class="col-8">
|
||||
<input type="text" name="productionName" id="productionName" value="@Model.ProductionName" />
|
||||
<span id="productionNameError" class="text-danger"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container">
|
||||
<div>Работники цеха</div>
|
||||
<div class="table-responsive-lg">
|
||||
@ -56,11 +49,9 @@
|
||||
<input type="hidden" name="workerIds" value="@worker.Key" />
|
||||
@worker.Value.Name
|
||||
</td>
|
||||
<td>@worker.Value.Position</td>
|
||||
<td>@worker.Value.Salary</td>
|
||||
<td>
|
||||
<button type="button" class="deleteWorker" data-worker-id="@worker.Value.Id">Удалить</button>
|
||||
</td>
|
||||
<td>@worker.Value.Specialization</td>
|
||||
<td class="worker-salary" data-salary="@worker.Value.Salary">@worker.Value.Salary</td>
|
||||
<td><button type="button" class="deleteWorker" data-worker-id="@worker.Value.Id">Удалить</button></td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
@ -70,15 +61,11 @@
|
||||
<option value="">Выберите работника</option>
|
||||
@foreach (var worker in ViewBag.AllWorkers)
|
||||
{
|
||||
<option value="@worker.Id">@worker.Name</option>
|
||||
<option value="@worker.Id" data-specialization="@worker.Specialization" data-salary="@worker.Salary">@worker.Name</option>
|
||||
}
|
||||
</select>
|
||||
<button type="button" id="addWorker" class="btn btn-secondary">Добавить работника</button>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-4">Общая зарплата:</div>
|
||||
<div class="col-8"><input type="text" id="totalSalary" name="totalSalary" readonly /></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-8"></div>
|
||||
<div class="col-4"><input type="submit" value="Сохранить" class="btn btn-primary" /></div>
|
||||
@ -89,19 +76,9 @@
|
||||
<script src="https://cdn.datatables.net/1.11.3/js/jquery.dataTables.js"></script>
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
function updateTotalSalary() {
|
||||
var totalSalary = 0;
|
||||
$('#workersTable tbody tr').each(function () {
|
||||
var salary = $(this).find('td:eq(2)').text();
|
||||
totalSalary += parseFloat(salary);
|
||||
});
|
||||
$('#totalSalary').val(totalSalary.toFixed(2));
|
||||
}
|
||||
|
||||
$(document).on('click', '.deleteWorker', function () {
|
||||
var row = $(this).closest('tr');
|
||||
row.remove();
|
||||
updateTotalSalary();
|
||||
});
|
||||
|
||||
$('#addWorker').click(function () {
|
||||
@ -109,10 +86,8 @@
|
||||
if (selectedWorker.val()) {
|
||||
var workerId = selectedWorker.val();
|
||||
var workerName = selectedWorker.text();
|
||||
var workerData = selectedWorker.data('worker');
|
||||
var workerPosition = workerData.Position;
|
||||
var workerSalary = workerData.Salary;
|
||||
|
||||
var workerSalary = selectedWorker.data('salary');
|
||||
var workerSpecialization = selectedWorker.data('specialization');
|
||||
var exists = false;
|
||||
$('#workersTable tbody tr').each(function () {
|
||||
if ($(this).data('worker-id') == workerId) {
|
||||
@ -120,26 +95,22 @@
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
if (exists) {
|
||||
alert('Этот работник уже добавлен.');
|
||||
return;
|
||||
}
|
||||
|
||||
var newRow = `
|
||||
<tr data-worker-id="${workerId}">
|
||||
<td>
|
||||
<input type="hidden" name="workerIds" value="${workerId}" />
|
||||
${workerName}
|
||||
</td>
|
||||
<td>${workerPosition}</td>
|
||||
<td>${workerSalary}</td>
|
||||
<td>${workerSpecialization}</td>
|
||||
<td class="worker-salary" data-salary="${workerSalary}">${workerSalary}</td>
|
||||
<td><button type="button" class="deleteWorker" data-worker-id="${workerId}">Удалить</button></td>
|
||||
</tr>
|
||||
`;
|
||||
$('#workersTable tbody').append(newRow);
|
||||
|
||||
updateTotalSalary();
|
||||
$('#workerSelect').val('');
|
||||
} else {
|
||||
alert('Выберите работника для добавления');
|
||||
|
@ -5,9 +5,9 @@
|
||||
<div class="text-center">
|
||||
<h1 class="display-4">Главное меню</h1>
|
||||
<div class="list-group">
|
||||
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="IndexDetail">Станки</a>
|
||||
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="IndexProduct">Работники</a>
|
||||
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="IndexProduction">Цеха</a>
|
||||
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="IndexWorker">Работники</a>
|
||||
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="IndexMachine">Станки</a>
|
||||
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="IndexWorkshop">Цеха</a>
|
||||
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Privacy">Личные данные</a>
|
||||
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Logout">Выйти</a>
|
||||
</div>
|
||||
|
@ -37,7 +37,7 @@
|
||||
Директор цеха
|
||||
</th>
|
||||
<th>
|
||||
Работник
|
||||
Производство
|
||||
</th>
|
||||
<th>
|
||||
Привязка производства к цеху
|
||||
@ -69,6 +69,9 @@
|
||||
<th>
|
||||
@Html.DisplayFor(modelItem => item.ProductionName)
|
||||
</th>
|
||||
<td>
|
||||
<a asp-action="WorkshopProductionAdd" asp-route-id="@item.Id" class="btn btn-primary">Привязать производство</a>
|
||||
</td>
|
||||
<td>
|
||||
<a asp-action="CreateWorkshop" asp-route-id="@item.Id" class="btn btn-primary">Изменить</a>
|
||||
</td>
|
||||
|
@ -35,15 +35,23 @@
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
function validateDates() {
|
||||
var startDate = new Date($('#startDate').val());
|
||||
var endDate = new Date($('#endDate').val());
|
||||
var today = new Date();
|
||||
var startDate = $('#startDate').val();
|
||||
var endDate = $('#endDate').val();
|
||||
var today = new Date().toISOString().split('T')[0];
|
||||
var isValid = true;
|
||||
|
||||
$('#startDateError').text('');
|
||||
$('#endDateError').text('');
|
||||
|
||||
// Проверка, что даты не превосходят сегодняшнюю дату
|
||||
if (!startDate) {
|
||||
$('#startDateError').text('Пожалуйста, выберите дату начала.');
|
||||
isValid = false;
|
||||
}
|
||||
if (!endDate) {
|
||||
$('#endDateError').text('Пожалуйста, выберите дату окончания.');
|
||||
isValid = false;
|
||||
}
|
||||
if (isValid) {
|
||||
if (startDate > today) {
|
||||
$('#startDateError').text('Дата начала не может быть больше сегодняшней даты.');
|
||||
isValid = false;
|
||||
@ -52,12 +60,10 @@
|
||||
$('#endDateError').text('Дата окончания не может быть больше сегодняшней даты.');
|
||||
isValid = false;
|
||||
}
|
||||
// Проверка, что стартовая дата не превосходит конечную дату
|
||||
if (startDate > endDate) {
|
||||
$('#endDateError').text('Дата окончания не может быть раньше даты начала.');
|
||||
isValid = false;
|
||||
}
|
||||
|
||||
return isValid;
|
||||
}
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
@model List<MachineWorkshopTimeReport>
|
||||
|
||||
@{
|
||||
ViewData["Title"] = "Machines and Workshops on Time Reports";
|
||||
ViewData["Title"] = "Отчет по станкам и цехам по дате";
|
||||
}
|
||||
|
||||
<div class="text-center">
|
||||
|
@ -5,7 +5,7 @@
|
||||
<div class="text-center">
|
||||
<h1 class="display-4">Меню создания отчетов</h1>
|
||||
<div class="list-group">
|
||||
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="WorkerProductReport">Отчет работник-изделие</a>
|
||||
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="WorkerProductChoose">Отчет работник-изделие</a>
|
||||
<a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="MachineWorkshopTimeChoose">Отчет по станкам и цехам по датам</a>
|
||||
</div>
|
||||
</div>
|
||||
|
54
Course/GuarantorAPP/Views/Home/WorkerProductChoose.cshtml
Normal file
54
Course/GuarantorAPP/Views/Home/WorkerProductChoose.cshtml
Normal file
@ -0,0 +1,54 @@
|
||||
@using Contracts.ViewModels;
|
||||
@model List<WorkerViewModel>
|
||||
|
||||
@{
|
||||
ViewData["Title"] = "Выбор работников для отчета";
|
||||
}
|
||||
|
||||
<h2>Выберите рвботников для отчета</h2>
|
||||
|
||||
<form asp-controller="Home" asp-action="WorkerProductChoose" method="post" onsubmit="return validateForm()">
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Select</th>
|
||||
<th>Name</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@for (int i = 0; i < Model.Count; i++)
|
||||
{
|
||||
<tr>
|
||||
<td>
|
||||
<input type="checkbox" name="selectedItems" value="@Model[i].Id" />
|
||||
</td>
|
||||
<td>@Model[i].Name</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
<input type="hidden" id="reportType" name="reportType" value="default" />
|
||||
<button type="submit" class="btn btn-primary" onclick="setReportType('default')">Сгенерировать отчет</button>
|
||||
<button type="submit" class="btn btn-secondary" onclick="setReportType('excel')">Сгенерировать отчет в Excel</button>
|
||||
<button type="submit" class="btn btn-secondary" onclick="setReportType('word')">Сгенерировать отчет в Word</button>
|
||||
<div id="validationMessage" style="display:none;color:red;">Пожалуйста, выберите хотя бы одного работника.</div>
|
||||
</form>
|
||||
|
||||
@section Scripts {
|
||||
<script>
|
||||
function validateForm() {
|
||||
var checkboxes = document.querySelectorAll('input[name="selectedItems"]:checked');
|
||||
if (checkboxes.length === 0) {
|
||||
document.getElementById('validationMessage').style.display = 'block';
|
||||
return false;
|
||||
} else {
|
||||
document.getElementById('validationMessage').style.display = 'none';
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
function setReportType(type) {
|
||||
document.getElementById('reportType').value = type;
|
||||
}
|
||||
</script>
|
||||
}
|
@ -3,7 +3,7 @@
|
||||
@model List<WorkerProductReportViewModel>
|
||||
|
||||
@{
|
||||
ViewData["Title"] = "Workers - Product Reports";
|
||||
ViewData["Title"] = "Отчет работник - изделие";
|
||||
}
|
||||
<div class="text-center">
|
||||
<h1 class="display-4">Список работников с отображением изделий</h1>
|
||||
|
@ -7,11 +7,11 @@
|
||||
}
|
||||
|
||||
<div class="text-center">
|
||||
<h1 class="display-4">Цех - @ViewBag.Workshop.Name</h1>
|
||||
<h1 class="display-4">Цех - @ViewBag.Workshop.Title</h1>
|
||||
</div>
|
||||
|
||||
<div class="container">
|
||||
<h1>Список цехов</h1>
|
||||
<h1>Список производств</h1>
|
||||
<div class="row">
|
||||
@foreach (var production in Model)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user