RUD
This commit is contained in:
parent
940fde0056
commit
d299065071
@ -9,7 +9,7 @@ namespace FactoryContracts.ViewModels
|
||||
public int Id { get; set; }
|
||||
|
||||
public int ClientId { get; set; }
|
||||
public int PlanProductionId { get; set; }
|
||||
public int? PlanProductionId { get; set; }
|
||||
|
||||
[DisplayName("ФИО исполнителя")]
|
||||
public string ImplementerFIO { get; set; } = string.Empty;
|
||||
|
@ -23,4 +23,8 @@
|
||||
<ProjectReference Include="..\FactoryContracts\FactoryContracts.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="Migrations\" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
@ -21,15 +21,12 @@ namespace FactoryDatabaseImplement.Implements
|
||||
|
||||
public List<ExecutionPhaseViewModel> GetFilteredList(ExecutionPhaseSearchModel model)
|
||||
{
|
||||
if (string.IsNullOrEmpty(model.ExecutionPhaseName))
|
||||
{
|
||||
return new();
|
||||
}
|
||||
|
||||
using var context = new FactoryDatabase();
|
||||
return context.ExecutionPhases
|
||||
.Include(x => x.Client)
|
||||
.Include(x => x.PlanProduction)
|
||||
.Where(x => x.ExecutionPhaseName.Contains(model.ExecutionPhaseName))
|
||||
.Where(x => x.ExecutionPhaseName.Contains(model.ExecutionPhaseName) || (x.ClientId == model.ClientId))
|
||||
.Select(x => x.GetViewModel)
|
||||
.ToList();
|
||||
}
|
||||
|
@ -59,7 +59,14 @@ namespace FactoryDatabaseImplement.Implements
|
||||
.Select(x => x.GetViewModel)
|
||||
.ToList();
|
||||
}
|
||||
return new();
|
||||
return context.PlanProductions
|
||||
.Where(x => x.ClientId == model.ClientId)
|
||||
.Include(x => x.Client)
|
||||
.Include(x => x.Workpieces)
|
||||
.ThenInclude(x => x.Workpiece)
|
||||
.ToList()
|
||||
.Select(x => x.GetViewModel)
|
||||
.ToList();
|
||||
|
||||
}
|
||||
|
||||
@ -70,7 +77,6 @@ namespace FactoryDatabaseImplement.Implements
|
||||
.Include (x => x.Client)
|
||||
.Include(x => x.Workpieces)
|
||||
.ThenInclude(x => x.Workpiece)
|
||||
.ToList()
|
||||
.Select(x =>x.GetViewModel)
|
||||
.ToList();
|
||||
}
|
||||
@ -83,8 +89,6 @@ namespace FactoryDatabaseImplement.Implements
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
context.PlanProductions.Add(newPlanProduction);
|
||||
context.SaveChanges();
|
||||
return newPlanProduction.GetViewModel;
|
||||
|
@ -23,10 +23,6 @@ namespace FactoryDatabaseImplement.Implements
|
||||
|
||||
public List<WorkpieceViewModel> GetFilteredList(WorkpieceSearchModel model)
|
||||
{
|
||||
if (string.IsNullOrEmpty(model.WorkpieceName))
|
||||
{
|
||||
return new();
|
||||
}
|
||||
using var context = new FactoryDatabase();
|
||||
if (model.DateFrom.HasValue)
|
||||
return context.Workpieces.Where(x => x.ClientId == model.ClientId).Where(x => x.DateCreate <= model.DateTo && x.DateCreate >= model.DateFrom).Select(x => x.GetViewModel).ToList();
|
||||
@ -34,7 +30,7 @@ namespace FactoryDatabaseImplement.Implements
|
||||
.Include(x => x.Client)
|
||||
.Include(x => x.Products)
|
||||
.ThenInclude(x => x.Product)
|
||||
.Where(x => x.WorkpieceName.Contains(model.WorkpieceName))
|
||||
.Where(x => x.WorkpieceName.Contains(model.WorkpieceName) || (x.ClientId == model.ClientId))
|
||||
.ToList()
|
||||
.Select(x => x.GetViewModel)
|
||||
.ToList();
|
||||
|
@ -12,7 +12,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
||||
namespace FactoryDatabaseImplement.Migrations
|
||||
{
|
||||
[DbContext(typeof(FactoryDatabase))]
|
||||
[Migration("20240524172651_InitCreate")]
|
||||
[Migration("20240528082259_InitCreate")]
|
||||
partial class InitCreate
|
||||
{
|
||||
protected override void BuildTargetModel(ModelBuilder modelBuilder)
|
||||
@ -71,7 +71,8 @@ namespace FactoryDatabaseImplement.Migrations
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<int>("PlanProductionId")
|
||||
b.Property<int?>("PlanProductionId")
|
||||
.IsRequired()
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<int>("Status")
|
||||
@ -299,6 +300,9 @@ namespace FactoryDatabaseImplement.Migrations
|
||||
b.Property<double>("Cost")
|
||||
.HasColumnType("double precision");
|
||||
|
||||
b.Property<DateTime>("DateCreate")
|
||||
.HasColumnType("timestamp without time zone");
|
||||
|
||||
b.Property<string>("Material")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
@ -79,7 +79,8 @@ namespace FactoryDatabaseImplement.Migrations
|
||||
WorkpieceName = table.Column<string>(type: "text", nullable: false),
|
||||
ClientId = table.Column<int>(type: "integer", nullable: false),
|
||||
Material = table.Column<string>(type: "text", nullable: false),
|
||||
Cost = table.Column<double>(type: "double precision", nullable: false)
|
||||
Cost = table.Column<double>(type: "double precision", nullable: false),
|
||||
DateCreate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false)
|
||||
},
|
||||
constraints: table =>
|
||||
{
|
@ -69,7 +69,8 @@ namespace FactoryDatabaseImplement.Migrations
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
||||
b.Property<int>("PlanProductionId")
|
||||
b.Property<int?>("PlanProductionId")
|
||||
.IsRequired()
|
||||
.HasColumnType("integer");
|
||||
|
||||
b.Property<int>("Status")
|
||||
@ -297,6 +298,9 @@ namespace FactoryDatabaseImplement.Migrations
|
||||
b.Property<double>("Cost")
|
||||
.HasColumnType("double precision");
|
||||
|
||||
b.Property<DateTime>("DateCreate")
|
||||
.HasColumnType("timestamp without time zone");
|
||||
|
||||
b.Property<string>("Material")
|
||||
.IsRequired()
|
||||
.HasColumnType("text");
|
||||
|
@ -15,7 +15,7 @@ namespace FactoryDatabaseImplement.Models
|
||||
public virtual Client Client { get; private set; } = new();
|
||||
|
||||
[Required]
|
||||
public int PlanProductionId { get; private set; }
|
||||
public int? PlanProductionId { get; private set; }
|
||||
public virtual PlanProduction PlanProduction { get; private set; } = new();
|
||||
|
||||
[Required]
|
||||
|
@ -59,9 +59,9 @@ namespace FactoryWorkerApp.Controllers
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public void Register(string name, string login, string email, string password1, string password2)
|
||||
public void Register(string name, string login, string email, string password, string passwordConfirm)
|
||||
{
|
||||
if (password1 == password2 && _logic.Register(new() { Email = email, Login = login, Role = ClientRole.Работник, Password = password1 }))
|
||||
if (password == passwordConfirm && _logic.Register(new() { Email = email, Login = login, Role = ClientRole.Работник, Password = password }))
|
||||
{
|
||||
Response.Redirect("Index");
|
||||
}
|
||||
@ -73,7 +73,7 @@ namespace FactoryWorkerApp.Controllers
|
||||
{
|
||||
if (Client.user != null)
|
||||
{
|
||||
var list = _logic.GetWorkpieces(Client.user.Id); ;
|
||||
var list = _logic.GetWorkpieces(Client.user.Id);
|
||||
if (list != null)
|
||||
return View(list);
|
||||
return View(new List<WorkpieceViewModel>());
|
||||
@ -250,12 +250,12 @@ namespace FactoryWorkerApp.Controllers
|
||||
var startDate = DateTime.Parse(startDateStr);
|
||||
var endDate = DateTime.Parse(endDateStr).AddDays(1);
|
||||
|
||||
var values = _logic.GetTimeReport(startDate, endDate, UserId);
|
||||
//var values = _logic.GetTimeReport(startDate, endDate, UserId);
|
||||
|
||||
ViewBag.StartDate = startDate;
|
||||
ViewBag.EndDate = endDate;
|
||||
|
||||
return View(values);
|
||||
return View();
|
||||
|
||||
|
||||
}
|
||||
@ -291,17 +291,20 @@ namespace FactoryWorkerApp.Controllers
|
||||
}
|
||||
[HttpPost]
|
||||
// доделать
|
||||
public IActionResult ExecutionPhase(int id, string title, int planId)
|
||||
public IActionResult ExecutionPhase(int id, string name, ExecutionPhaseStatus status, string impFIO, int planId)
|
||||
{
|
||||
ExecutionPhaseBindingModel model = new ExecutionPhaseBindingModel();
|
||||
model.Id = id;
|
||||
model.ExecutionPhaseName = title;
|
||||
model.ExecutionPhaseName = name;
|
||||
model.ClientId = Client.user!.Id;
|
||||
model.PlanProductionId = planId;
|
||||
if (model.PlanProductionId.HasValue)
|
||||
model.ImplementerFIO = impFIO;
|
||||
model.Status = status;
|
||||
if (id!=0)
|
||||
{
|
||||
_logic.UpdateExecutionPhase(model);
|
||||
}
|
||||
else
|
||||
_logic.CreateExecutionPhase(model);
|
||||
return RedirectToAction("ExecutionPhases");
|
||||
}
|
||||
|
@ -15,6 +15,7 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\FactoryBuisinessLogic\FactoryBuisinessLogic.csproj" />
|
||||
<ProjectReference Include="..\FactoryDatabaseImplement\FactoryDatabaseImplement.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
|
@ -1,3 +1,8 @@
|
||||
using FactoryContracts.BusinessLogicsContracts;
|
||||
using FactoryBusinessLogic.BusinessLogics;
|
||||
using FactoryBuisinessLogic.BusinessLogics;
|
||||
using FactoryContracts.StoragesContracts;
|
||||
using FactoryDatabaseImplement.Implements;
|
||||
using FactoryWorkerApp;
|
||||
|
||||
var builder = WebApplication.CreateBuilder(args);
|
||||
@ -5,6 +10,31 @@ var builder = WebApplication.CreateBuilder(args);
|
||||
// Add services to the container.
|
||||
builder.Services.AddControllersWithViews();
|
||||
|
||||
builder.Logging.SetMinimumLevel(LogLevel.Trace);
|
||||
|
||||
builder.Services.AddTransient<IClientStorage, ClientStorage>();
|
||||
builder.Services.AddTransient<IWorkpieceStorage, WorkpieceStorage>();
|
||||
builder.Services.AddTransient<IProductStorage, ProductStorage>();
|
||||
builder.Services.AddTransient<IPlanProductionStorage, PlanProductionStorage>();
|
||||
builder.Services.AddTransient<IExecutionPhaseStorage, ExecutionPhaseStorage>();
|
||||
builder.Services.AddTransient<IMachineStorage, MachineStorage>();
|
||||
|
||||
builder.Services.AddTransient<IClientLogic, ClientLogic>();
|
||||
builder.Services.AddTransient<IWorkpieceLogic, WorkpieceLogic>();
|
||||
builder.Services.AddTransient<IProductLogic, ProductLogic>();
|
||||
builder.Services.AddTransient<IPlanProductionLogic, PlanProductionLogic>();
|
||||
builder.Services.AddTransient<IExecutionPhaseLogic, ExecutionPhaseLogic>();
|
||||
builder.Services.AddTransient<IMachineLogic, MachineLogic>();
|
||||
builder.Services.AddTransient<WorkerLogic>();
|
||||
|
||||
builder.Services.AddSession(options =>
|
||||
{
|
||||
options.IdleTimeout = TimeSpan.FromMinutes(30);
|
||||
options.Cookie.HttpOnly = true;
|
||||
options.Cookie.IsEssential = true;
|
||||
});
|
||||
|
||||
|
||||
var app = builder.Build();
|
||||
|
||||
// Configure the HTTP request pipeline.
|
||||
|
@ -4,7 +4,7 @@
|
||||
@model ExecutionPhaseViewModel;
|
||||
|
||||
@{
|
||||
ViewData["Title"] = "Workpiece";
|
||||
ViewData["Title"] = "Execution Phase";
|
||||
}
|
||||
<div class="text-center">
|
||||
<h2 class="display-4">Заготовка</h2>
|
||||
@ -12,18 +12,24 @@
|
||||
<form method="post">
|
||||
<div class="row">
|
||||
<div class="col-4">План производства:</div>
|
||||
<select id="PlanProductionSelect" class="form-control">
|
||||
<div class="col-8">
|
||||
<select id="planId" class="form-control">
|
||||
<option value="">Выберите план</option>
|
||||
@foreach (var planProduction in ViewBag.AllPlans)
|
||||
{
|
||||
<option value="@planProduction.Id">@planProduction.PlanProductionName</option>
|
||||
<option value="@planProduction.Id">@planProduction.ProductionName</option>
|
||||
}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-4">Название:</div>
|
||||
<div class="col-8"><input type="text" name="name" id="name" value="@Model.ExecutionPhaseName"/></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-4">ФИО исполнителя:</div>
|
||||
<div class="col-8"><input type="text" name="impFIO" id="impFIO" value="@Model.ImplementerFIO" /></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-4">Статус:</div>
|
||||
<div class="col-8">
|
||||
|
@ -65,7 +65,10 @@
|
||||
<a asp-action="ExecutionPhase" asp-route-id="@item.Id" class="btn btn-primary">Изменить</a>
|
||||
</td>
|
||||
<td>
|
||||
<a asp-action="DeleteExecutionPhase" asp-route-id="@item.Id" class="btn btn-danger">Удалить</a>
|
||||
<form method="post">
|
||||
<input type="text" title="id" name="id" value="@item.Id" hidden="hidden" />
|
||||
<input type="submit" class="btn btn-danger" value="Удалить" />
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
|
@ -18,7 +18,7 @@
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-4">Срок выполнения:</div>
|
||||
<div class="col-8"><input asp-format="{0:yyyy-MM-dd}" id="deadline" name="deadline" value="@Model.Deadline" /></div>
|
||||
<div class="col-8"><input type="date" id="deadline" name="deadline" value="@Model.Deadline" /></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-8"></div>
|
||||
|
@ -59,7 +59,10 @@
|
||||
<a asp-action="PlanProduction" asp-route-id="@item.Id" class="btn btn-primary">Изменить</a>
|
||||
</td>
|
||||
<td>
|
||||
<a asp-action="DelePlanProduction" asp-route-id="@item.Id" class="btn btn-danger">Удалить</a>
|
||||
<form method="post">
|
||||
<input type="text" title="id" name="id" value="@item.Id" hidden="hidden" />
|
||||
<input type="submit" class="btn btn-danger" value="Удалить" />
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
|
@ -58,7 +58,10 @@
|
||||
<a asp-action="Workpiece" asp-route-id="@item.Id" class="btn btn-primary">Изменить</a>
|
||||
</td>
|
||||
<td>
|
||||
<a asp-action="DeletWorkpiece" asp-route-id="@item.Id" class="btn btn-danger">Удалить</a>
|
||||
<form method="post">
|
||||
<input type="text" title="id" name="id" value="@item.Id" hidden="hidden" />
|
||||
<input type="submit" class="btn btn-danger" value="Удалить" />
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user