diff --git a/Areas/Inventory/Models/RequestModel.cs b/Areas/Inventory/Models/RequestModel.cs index 15de668..66b6628 100644 --- a/Areas/Inventory/Models/RequestModel.cs +++ b/Areas/Inventory/Models/RequestModel.cs @@ -7,7 +7,8 @@ namespace PSTW_CentralSystem.Areas.Inventory.Models public class RequestModel { [Key] - public int requestId { get; set; } + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public int requestID { get; set; } public int ProductId { get; set; } [ForeignKey("ProductId")] public virtual ProductModel? Product { get; set; } diff --git a/Areas/Inventory/Views/ItemMovement/ItemMovementUser.cshtml b/Areas/Inventory/Views/ItemMovement/ItemMovementUser.cshtml index cfe8dc8..b43a6b1 100644 --- a/Areas/Inventory/Views/ItemMovement/ItemMovementUser.cshtml +++ b/Areas/Inventory/Views/ItemMovement/ItemMovementUser.cshtml @@ -472,7 +472,8 @@
- + +

Start

User: {{ movement.toUserName }}

diff --git a/Areas/Inventory/Views/ItemMovement/ItemRequest.cshtml b/Areas/Inventory/Views/ItemMovement/ItemRequest.cshtml index c3af828..f81ab99 100644 --- a/Areas/Inventory/Views/ItemMovement/ItemRequest.cshtml +++ b/Areas/Inventory/Views/ItemMovement/ItemRequest.cshtml @@ -191,7 +191,7 @@ const app = Vue.createApp({ data() { return { - requestId : null, + requestID : null, userId : null, stationId : "", productId : "", @@ -288,11 +288,12 @@ UserId: this.userId, ProductCategory: this.productCategory, RequestQuantity: this.quantity, - remark: this.remark || '', + remarkUser: this.remark || '', + remarkMasterInv: '', status: this.status, requestDate: this.requestDate, - approvalDate: this.approvalDate ? this.approvalDate : null, - document: this.document + approvalDate: null, + Document: this.document }; $('.modal').modal('hide'); @@ -330,7 +331,7 @@ "columns": [ { "title": "Request ID", - "data": "requestId", + "data": "requestID", "createdCell": function (td, cellData, rowData, row, col) { // Assign a unique ID to the element $(td).attr('id', `qr${cellData}`); @@ -399,14 +400,14 @@ }, { "title": "Delete", - "data": "requestId", + "data": "requestID", "render": function (data) { var deleteButton = ``; return deleteButton; }, "className": "align-middle", // "title": "Delete", - // "data": "requestId", + // "data": "requestID", // "render": function (data, type, row) { // if (row.status === "Approved" || row.status === "Rejected") { // return ``; @@ -425,7 +426,7 @@ "columns": [ { "title": "Request ID", - "data": "requestId", + "data": "requestID", "createdCell": function (td, cellData, rowData, row, col) { // Assign a unique ID to the element $(td).attr('id', `qr${cellData}`); @@ -506,8 +507,8 @@ $('#requestDatatable tbody').off('click', '.delete-btn'); $('#requestDatatable tbody').on('click', '.delete-btn', function () { - const requestId = $(this).data('id'); - self.deleteRequestItem(requestId); + const requestID = $(this).data('id'); + self.deleteRequestItem(requestID); }); @@ -623,12 +624,12 @@ this.loading = false; }, - async deleteRequestItem(requestId) { + async deleteRequestItem(requestID) { if (!confirm("Are you sure you want to delete this request?")) { return false; } try { - const response = await fetch(`/InvMainAPI/DeleteRequest/${requestId}`, { + const response = await fetch(`/InvMainAPI/DeleteRequest/${requestID}`, { method: 'DELETE', headers: { 'Content-Type': 'application/json', @@ -641,10 +642,10 @@ if ($.fn.dataTable.isDataTable('#requestDatatable')) { const table = $('#requestDatatable').DataTable(); - table.row($(`.delete-btn[data-id="${requestId}"]`).closest('tr')).remove().draw(); + table.row($(`.delete-btn[data-id="${requestID}"]`).closest('tr')).remove().draw(); } - this.request = this.request.filter(req => req.requestId !== requestId); + this.request = this.request.filter(req => req.requestID !== requestID); } else { alert(result.message); } diff --git a/Controllers/API/Inventory/InvMainAPI.cs b/Controllers/API/Inventory/InvMainAPI.cs index 623f9f3..cd4bfbd 100644 --- a/Controllers/API/Inventory/InvMainAPI.cs +++ b/Controllers/API/Inventory/InvMainAPI.cs @@ -852,13 +852,13 @@ namespace PSTW_CentralSystem.Controllers.API.Inventory { return BadRequest(ModelState); } - try { + var findUniqueCode = _centralDbContext.Products.FirstOrDefault(r => r.ProductId == request.ProductId); + var findUniqueUser = _centralDbContext.Users.FirstOrDefault(r => r.Id == request.UserId); + if (!string.IsNullOrEmpty(request.Document)) { - var findUniqueCode = _centralDbContext.Products.FirstOrDefault(r => r.ProductId == request.ProductId); - var findUniqueUser = _centralDbContext.Users.FirstOrDefault(r => r.Id == request.UserId); var bytes = Convert.FromBase64String(request.Document); string filePath = ""; @@ -891,7 +891,20 @@ namespace PSTW_CentralSystem.Controllers.API.Inventory .Where(r => r.UserId == request.UserId) .ToListAsync(); - return Json(updatedList); + return Json(updatedList.Select(i => new + { + i.ProductId, + i.UserId, + i.status, + i.StationId, + i.RequestQuantity, + i.requestDate, + i.ProductCategory, + i.Document, + i.approvalDate, + i.remarkMasterInv, + i.remarkUser, + })); } catch (Exception ex) { @@ -929,7 +942,7 @@ namespace PSTW_CentralSystem.Controllers.API.Inventory return Json(requests.Select(i => new { - i.requestId, + i.requestID, i.ProductId, productName = i.Product?.ProductName, i.UserId, @@ -971,7 +984,7 @@ namespace PSTW_CentralSystem.Controllers.API.Inventory var itemRequestList = await _centralDbContext.Requests.Include(i => i.Product).Include(i => i.User).ToListAsync(); return Json(itemRequestList.Select(i => new { - i.requestId, + i.requestID, productName = i.Product?.ProductName, i.ProductId, userName = i.User?.FullName, diff --git a/Migrations/20250306041117_UpdateRequestTable.Designer.cs b/Migrations/20250306041117_UpdateRequestTable.Designer.cs new file mode 100644 index 0000000..45d8e31 --- /dev/null +++ b/Migrations/20250306041117_UpdateRequestTable.Designer.cs @@ -0,0 +1,1053 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using PSTW_CentralSystem.DBContext; + +#nullable disable + +namespace PSTW_CentralSystem.Migrations +{ + [DbContext(typeof(CentralSystemContext))] + [Migration("20250306041117_UpdateRequestTable")] + partial class UpdateRequestTable + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "8.0.11") + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("ClaimType") + .HasColumnType("longtext"); + + b.Property("ClaimValue") + .HasColumnType("longtext"); + + b.Property("RoleId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetRoleClaims", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("ClaimType") + .HasColumnType("longtext"); + + b.Property("ClaimValue") + .HasColumnType("longtext"); + + b.Property("UserId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserClaims", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.Property("LoginProvider") + .HasColumnType("varchar(255)"); + + b.Property("ProviderKey") + .HasColumnType("varchar(255)"); + + b.Property("ProviderDisplayName") + .HasColumnType("longtext"); + + b.Property("UserId") + .HasColumnType("int"); + + b.HasKey("LoginProvider", "ProviderKey"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserLogins", (string)null); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + { + b.Property("UserId") + .HasColumnType("int"); + + b.Property("RoleId") + .HasColumnType("int"); + + b.HasKey("UserId", "RoleId"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetUserRoles", (string)null); + + b.HasData( + new + { + UserId = 1, + RoleId = 1 + }, + new + { + UserId = 2, + RoleId = 2 + }); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.Property("UserId") + .HasColumnType("int"); + + b.Property("LoginProvider") + .HasColumnType("varchar(255)"); + + b.Property("Name") + .HasColumnType("varchar(255)"); + + b.Property("Value") + .HasColumnType("longtext"); + + b.HasKey("UserId", "LoginProvider", "Name"); + + b.ToTable("AspNetUserTokens", (string)null); + }); + + modelBuilder.Entity("PSTW_CentralSystem.Areas.Inventory.Models.InventoryMasterModel", b => + { + b.Property("StoreId") + .HasColumnType("int"); + + b.Property("UserId") + .HasColumnType("int"); + + b.HasKey("StoreId"); + + b.HasIndex("UserId") + .IsUnique(); + + b.ToTable("InventoryMasters"); + }); + + modelBuilder.Entity("PSTW_CentralSystem.Areas.Inventory.Models.ItemModel", b => + { + b.Property("ItemID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("ItemID")); + + b.Property("CompanyId") + .HasColumnType("int"); + + b.Property("ConvertPrice") + .HasColumnType("float"); + + b.Property("CreatedByUserId") + .HasColumnType("int"); + + b.Property("Currency") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("CurrencyRate") + .HasColumnType("float"); + + b.Property("DODate") + .HasColumnType("datetime(6)"); + + b.Property("DONo") + .HasColumnType("longtext"); + + b.Property("DefaultPrice") + .HasColumnType("float"); + + b.Property("DepartmentId") + .HasColumnType("int"); + + b.Property("EndWDate") + .HasColumnType("datetime(6)"); + + b.Property("InvoiceDate") + .HasColumnType("datetime(6)"); + + b.Property("InvoiceNo") + .HasColumnType("longtext"); + + b.Property("ItemStatus") + .HasColumnType("int") + .HasComment("1 = In stock; 2 = Item Moving; 3 = Item Out; 4 = Item Broken; 5 = Item Lost; 6 = Item Stolen; 7 = Item Damaged; 8 = Item Discarded; 9 = Item Destroyed; 10 = Item Finished;"); + + b.Property("MovementId") + .HasColumnType("int"); + + b.Property("PONo") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("PartNumber") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("ProductId") + .HasColumnType("int"); + + b.Property("PurchaseDate") + .HasColumnType("datetime(6)"); + + b.Property("Quantity") + .HasColumnType("int"); + + b.Property("SerialNumber") + .HasColumnType("longtext"); + + b.Property("Supplier") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("TeamType") + .HasColumnType("longtext"); + + b.Property("UniqueID") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("Warranty") + .HasColumnType("int"); + + b.HasKey("ItemID"); + + b.HasIndex("CompanyId"); + + b.HasIndex("CreatedByUserId"); + + b.HasIndex("DepartmentId"); + + b.HasIndex("MovementId"); + + b.HasIndex("ProductId"); + + b.ToTable("Items"); + }); + + modelBuilder.Entity("PSTW_CentralSystem.Areas.Inventory.Models.ItemMovementModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("Action") + .HasColumnType("longtext") + .HasComment("Register, StockIn, Stock Out"); + + b.Property("ConsignmentNote") + .HasColumnType("longtext"); + + b.Property("Date") + .HasColumnType("datetime(6)"); + + b.Property("ItemId") + .HasColumnType("int"); + + b.Property("LastStation") + .HasColumnType("int"); + + b.Property("LastStore") + .HasColumnType("int"); + + b.Property("LastUser") + .HasColumnType("int"); + + b.Property("LatestStatus") + .HasColumnType("longtext") + .HasComment("Repair, Calibration, Faulty, Ready To Deploy, On Delivery"); + + b.Property("MovementComplete") + .HasColumnType("tinyint(1)"); + + b.Property("Quantity") + .HasColumnType("int"); + + b.Property("Remark") + .HasColumnType("longtext"); + + b.Property("ToOther") + .HasColumnType("longtext") + .HasComment("Repair, Calibration, Faulty, Ready To Deploy, On Delivery"); + + b.Property("ToStation") + .HasColumnType("int"); + + b.Property("ToStore") + .HasColumnType("int"); + + b.Property("ToUser") + .HasColumnType("int"); + + b.Property("receiveDate") + .HasColumnType("datetime(6)"); + + b.Property("sendDate") + .HasColumnType("datetime(6)"); + + b.HasKey("Id"); + + b.HasIndex("ItemId"); + + b.HasIndex("LastStation"); + + b.HasIndex("LastStore"); + + b.HasIndex("LastUser"); + + b.HasIndex("ToStation"); + + b.HasIndex("ToStore"); + + b.HasIndex("ToUser"); + + b.ToTable("ItemMovements"); + }); + + modelBuilder.Entity("PSTW_CentralSystem.Areas.Inventory.Models.ManufacturerModel", b => + { + b.Property("ManufacturerId") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("ManufacturerId")); + + b.Property("ManufacturerName") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("ManufacturerId"); + + b.ToTable("Manufacturers"); + }); + + modelBuilder.Entity("PSTW_CentralSystem.Areas.Inventory.Models.ProductModel", b => + { + b.Property("ProductId") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("ProductId")); + + b.Property("Category") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("ImageProduct") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("ManufacturerId") + .HasColumnType("int"); + + b.Property("ModelNo") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("ProductName") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("ProductShortName") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("QuantityProduct") + .HasColumnType("int"); + + b.HasKey("ProductId"); + + b.HasIndex("ManufacturerId"); + + b.ToTable("Products"); + }); + + modelBuilder.Entity("PSTW_CentralSystem.Areas.Inventory.Models.RequestModel", b => + { + b.Property("requestID") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("requestID")); + + b.Property("Document") + .HasColumnType("longtext"); + + b.Property("ProductCategory") + .HasColumnType("longtext"); + + b.Property("ProductId") + .HasColumnType("int"); + + b.Property("RequestQuantity") + .HasColumnType("int"); + + b.Property("StationId") + .HasColumnType("int"); + + b.Property("UserId") + .HasColumnType("int"); + + b.Property("approvalDate") + .HasColumnType("datetime(6)"); + + b.Property("remarkMasterInv") + .HasColumnType("longtext"); + + b.Property("remarkUser") + .HasColumnType("longtext"); + + b.Property("requestDate") + .HasColumnType("datetime(6)"); + + b.Property("status") + .HasColumnType("longtext"); + + b.HasKey("requestID"); + + b.HasIndex("ProductId"); + + b.HasIndex("StationId"); + + b.HasIndex("UserId"); + + b.ToTable("request"); + }); + + modelBuilder.Entity("PSTW_CentralSystem.Areas.Inventory.Models.StationModel", b => + { + b.Property("StationId") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("StationId")); + + b.Property("DepartmentId") + .HasColumnType("int"); + + b.Property("StationName") + .HasColumnType("longtext"); + + b.Property("StationPicID") + .HasColumnType("int"); + + b.HasKey("StationId"); + + b.HasIndex("DepartmentId"); + + b.HasIndex("StationPicID"); + + b.ToTable("Stations"); + }); + + modelBuilder.Entity("PSTW_CentralSystem.Areas.Inventory.Models.StoreModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("CompanyId") + .HasColumnType("int"); + + b.Property("StoreName") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("Id"); + + b.HasIndex("CompanyId"); + + b.ToTable("Stores"); + }); + + modelBuilder.Entity("PSTW_CentralSystem.Areas.Inventory.Models.SupplierModel", b => + { + b.Property("SupplierId") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("SupplierId")); + + b.Property("SupplierAddress") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("SupplierCompName") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("SupplierEmail") + .HasColumnType("longtext"); + + b.Property("SupplierPIC") + .HasColumnType("longtext"); + + b.Property("SupplierPhoneNo") + .HasColumnType("longtext"); + + b.HasKey("SupplierId"); + + b.ToTable("Suppliers"); + }); + + modelBuilder.Entity("PSTW_CentralSystem.Models.CompanyModel", b => + { + b.Property("CompanyId") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CompanyId")); + + b.Property("CompanyName") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("CompanyId"); + + b.ToTable("Companies"); + }); + + modelBuilder.Entity("PSTW_CentralSystem.Models.DepartmentModel", b => + { + b.Property("DepartmentId") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("DepartmentId")); + + b.Property("CompanyId") + .HasColumnType("int"); + + b.Property("DepartmentCode") + .IsRequired() + .HasColumnType("longtext"); + + b.Property("DepartmentName") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("DepartmentId"); + + b.HasIndex("CompanyId"); + + b.ToTable("Departments"); + }); + + modelBuilder.Entity("PSTW_CentralSystem.Models.ModuleSettingModel", b => + { + b.Property("SettingId") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("SettingId")); + + b.Property("AllowedUserType") + .HasColumnType("longtext"); + + b.Property("Description") + .HasColumnType("longtext"); + + b.Property("MethodAllowedUserType") + .HasColumnType("json"); + + b.Property("ModuleName") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)"); + + b.Property("ModuleStatus") + .HasColumnType("int"); + + b.HasKey("SettingId"); + + b.ToTable("ModuleSettings"); + }); + + modelBuilder.Entity("PSTW_CentralSystem.Models.RoleModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasColumnType("longtext"); + + b.Property("Description") + .HasColumnType("longtext"); + + b.Property("Name") + .HasMaxLength(256) + .HasColumnType("varchar(256)"); + + b.Property("NormalizedName") + .HasMaxLength(256) + .HasColumnType("varchar(256)"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedName") + .IsUnique() + .HasDatabaseName("RoleNameIndex"); + + b.ToTable("AspNetRoles", (string)null); + + b.HasData( + new + { + Id = 1, + Description = "Can access all pages", + Name = "SuperAdmin", + NormalizedName = "SUPERADMIN" + }, + new + { + Id = 2, + Description = "Can access some admin pages", + Name = "SystemAdmin", + NormalizedName = "SYSTEMADMIN" + }, + new + { + Id = 3, + Description = "Can access operation pages", + Name = "Engineer", + NormalizedName = "ENGINEER" + }, + new + { + Id = 4, + Description = "Can access data viewer pages", + Name = "Observer", + NormalizedName = "OBSERVER" + }, + new + { + Id = 5, + Description = "Handle inventory module", + Name = "Inventory Master", + NormalizedName = "INVENTORY MASTER" + }, + new + { + Id = 6, + Description = "Involve in inventory transaction", + Name = "Finance", + NormalizedName = "FINANCE" + }); + }); + + modelBuilder.Entity("PSTW_CentralSystem.Models.UserModel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); + + b.Property("AccessFailedCount") + .HasColumnType("int"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken() + .HasColumnType("longtext"); + + b.Property("Email") + .HasMaxLength(256) + .HasColumnType("varchar(256)"); + + b.Property("EmailConfirmed") + .HasColumnType("tinyint(1)"); + + b.Property("FullName") + .HasColumnType("longtext"); + + b.Property("LockoutEnabled") + .HasColumnType("tinyint(1)"); + + b.Property("LockoutEnd") + .HasColumnType("datetime(6)"); + + b.Property("NormalizedEmail") + .HasMaxLength(256) + .HasColumnType("varchar(256)"); + + b.Property("NormalizedUserName") + .HasMaxLength(256) + .HasColumnType("varchar(256)"); + + b.Property("PasswordHash") + .HasColumnType("longtext"); + + b.Property("PhoneNumber") + .HasColumnType("longtext"); + + b.Property("PhoneNumberConfirmed") + .HasColumnType("tinyint(1)"); + + b.Property("SecurityStamp") + .HasColumnType("longtext"); + + b.Property("TwoFactorEnabled") + .HasColumnType("tinyint(1)"); + + b.Property("UserInfoStatus") + .HasColumnType("int"); + + b.Property("UserName") + .HasMaxLength(256) + .HasColumnType("varchar(256)"); + + b.Property("departmentId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedEmail") + .HasDatabaseName("EmailIndex"); + + b.HasIndex("NormalizedUserName") + .IsUnique() + .HasDatabaseName("UserNameIndex"); + + b.HasIndex("departmentId"); + + b.ToTable("AspNetUsers", (string)null); + + b.HasData( + new + { + Id = 1, + AccessFailedCount = 0, + ConcurrencyStamp = "d801514b-2c36-4df7-9bb5-1c7e351ed27e", + Email = "admin@pstw.com.my", + EmailConfirmed = true, + FullName = "MAAdmin", + LockoutEnabled = false, + NormalizedEmail = "ADMIN@PSTW.COM.MY", + NormalizedUserName = "ADMIN@PSTW.COM.MY", + PasswordHash = "AQAAAAIAAYagAAAAEBSoDiGEYlobLgzVcffYwvTtm1WnXpqrBBT1yYP+kruV4OTtizW7Sel94qAfqUjGcw==", + PhoneNumberConfirmed = false, + SecurityStamp = "6132b0af-6a7f-4f38-8959-d049ed486e8f", + TwoFactorEnabled = false, + UserInfoStatus = 1, + UserName = "admin@pstw.com.my" + }, + new + { + Id = 2, + AccessFailedCount = 0, + ConcurrencyStamp = "14f11e89-bb92-49dd-a8df-ec5b0d49df2d", + Email = "sysadmin@pstw.com.my", + EmailConfirmed = true, + FullName = "SysAdmin", + LockoutEnabled = false, + NormalizedEmail = "SYSADMIN@PSTW.COM.MY", + NormalizedUserName = "SYSADMIN@PSTW.COM.MY", + PasswordHash = "AQAAAAIAAYagAAAAEEvcS1SY+9pxZKH/P1l4TaodgW3SFSRfcZ+PnjB3MiMmEUSyYoo64AQtX0bOxFSX2g==", + PhoneNumberConfirmed = false, + SecurityStamp = "6dca2498-5150-4369-9923-6f19a48258d4", + TwoFactorEnabled = false, + UserInfoStatus = 1, + UserName = "sysadmin@pstw.com.my" + }); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.HasOne("PSTW_CentralSystem.Models.RoleModel", null) + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.HasOne("PSTW_CentralSystem.Models.UserModel", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.HasOne("PSTW_CentralSystem.Models.UserModel", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + { + b.HasOne("PSTW_CentralSystem.Models.RoleModel", null) + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("PSTW_CentralSystem.Models.UserModel", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.HasOne("PSTW_CentralSystem.Models.UserModel", null) + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + }); + + modelBuilder.Entity("PSTW_CentralSystem.Areas.Inventory.Models.InventoryMasterModel", b => + { + b.HasOne("PSTW_CentralSystem.Areas.Inventory.Models.StoreModel", "Store") + .WithMany() + .HasForeignKey("StoreId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("PSTW_CentralSystem.Models.UserModel", "User") + .WithOne("Store") + .HasForeignKey("PSTW_CentralSystem.Areas.Inventory.Models.InventoryMasterModel", "UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Store"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("PSTW_CentralSystem.Areas.Inventory.Models.ItemModel", b => + { + b.HasOne("PSTW_CentralSystem.Models.CompanyModel", "Company") + .WithMany() + .HasForeignKey("CompanyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("PSTW_CentralSystem.Models.UserModel", "CreatedBy") + .WithMany() + .HasForeignKey("CreatedByUserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("PSTW_CentralSystem.Models.DepartmentModel", "Department") + .WithMany() + .HasForeignKey("DepartmentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("PSTW_CentralSystem.Areas.Inventory.Models.ItemMovementModel", "Movement") + .WithMany() + .HasForeignKey("MovementId"); + + b.HasOne("PSTW_CentralSystem.Areas.Inventory.Models.ProductModel", "Product") + .WithMany("Items") + .HasForeignKey("ProductId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Company"); + + b.Navigation("CreatedBy"); + + b.Navigation("Department"); + + b.Navigation("Movement"); + + b.Navigation("Product"); + }); + + modelBuilder.Entity("PSTW_CentralSystem.Areas.Inventory.Models.ItemMovementModel", b => + { + b.HasOne("PSTW_CentralSystem.Areas.Inventory.Models.ItemModel", "Item") + .WithMany() + .HasForeignKey("ItemId"); + + b.HasOne("PSTW_CentralSystem.Areas.Inventory.Models.StationModel", "FromStation") + .WithMany() + .HasForeignKey("LastStation"); + + b.HasOne("PSTW_CentralSystem.Areas.Inventory.Models.StoreModel", "FromStore") + .WithMany() + .HasForeignKey("LastStore"); + + b.HasOne("PSTW_CentralSystem.Models.UserModel", "FromUser") + .WithMany() + .HasForeignKey("LastUser"); + + b.HasOne("PSTW_CentralSystem.Areas.Inventory.Models.StationModel", "NextStation") + .WithMany() + .HasForeignKey("ToStation"); + + b.HasOne("PSTW_CentralSystem.Areas.Inventory.Models.StoreModel", "NextStore") + .WithMany() + .HasForeignKey("ToStore"); + + b.HasOne("PSTW_CentralSystem.Models.UserModel", "NextUser") + .WithMany() + .HasForeignKey("ToUser"); + + b.Navigation("FromStation"); + + b.Navigation("FromStore"); + + b.Navigation("FromUser"); + + b.Navigation("Item"); + + b.Navigation("NextStation"); + + b.Navigation("NextStore"); + + b.Navigation("NextUser"); + }); + + modelBuilder.Entity("PSTW_CentralSystem.Areas.Inventory.Models.ProductModel", b => + { + b.HasOne("PSTW_CentralSystem.Areas.Inventory.Models.ManufacturerModel", "Manufacturer") + .WithMany() + .HasForeignKey("ManufacturerId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Manufacturer"); + }); + + modelBuilder.Entity("PSTW_CentralSystem.Areas.Inventory.Models.RequestModel", b => + { + b.HasOne("PSTW_CentralSystem.Areas.Inventory.Models.ProductModel", "Product") + .WithMany() + .HasForeignKey("ProductId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("PSTW_CentralSystem.Areas.Inventory.Models.StationModel", "Station") + .WithMany() + .HasForeignKey("StationId"); + + b.HasOne("PSTW_CentralSystem.Models.UserModel", "User") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Product"); + + b.Navigation("Station"); + + b.Navigation("User"); + }); + + modelBuilder.Entity("PSTW_CentralSystem.Areas.Inventory.Models.StationModel", b => + { + b.HasOne("PSTW_CentralSystem.Models.DepartmentModel", "Department") + .WithMany() + .HasForeignKey("DepartmentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("PSTW_CentralSystem.Models.UserModel", "StationPic") + .WithMany() + .HasForeignKey("StationPicID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Department"); + + b.Navigation("StationPic"); + }); + + modelBuilder.Entity("PSTW_CentralSystem.Areas.Inventory.Models.StoreModel", b => + { + b.HasOne("PSTW_CentralSystem.Models.CompanyModel", "Company") + .WithMany() + .HasForeignKey("CompanyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Company"); + }); + + modelBuilder.Entity("PSTW_CentralSystem.Models.DepartmentModel", b => + { + b.HasOne("PSTW_CentralSystem.Models.CompanyModel", "Company") + .WithMany("Departments") + .HasForeignKey("CompanyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Company"); + }); + + modelBuilder.Entity("PSTW_CentralSystem.Models.UserModel", b => + { + b.HasOne("PSTW_CentralSystem.Models.DepartmentModel", "Department") + .WithMany() + .HasForeignKey("departmentId"); + + b.Navigation("Department"); + }); + + modelBuilder.Entity("PSTW_CentralSystem.Areas.Inventory.Models.ProductModel", b => + { + b.Navigation("Items"); + }); + + modelBuilder.Entity("PSTW_CentralSystem.Models.CompanyModel", b => + { + b.Navigation("Departments"); + }); + + modelBuilder.Entity("PSTW_CentralSystem.Models.UserModel", b => + { + b.Navigation("Store"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Migrations/20250306041117_UpdateRequestTable.cs b/Migrations/20250306041117_UpdateRequestTable.cs new file mode 100644 index 0000000..7a47b7e --- /dev/null +++ b/Migrations/20250306041117_UpdateRequestTable.cs @@ -0,0 +1,63 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace PSTW_CentralSystem.Migrations +{ + /// + public partial class UpdateRequestTable : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.RenameColumn( + name: "requestId", + table: "request", + newName: "requestID"); + + migrationBuilder.AlterColumn( + name: "requestID", + table: "request", + nullable: false) + .Annotation("SqlServer:Identity", "1, 1"); // Auto Increment + + migrationBuilder.AddPrimaryKey("PK_request", "request", "requestID"); + migrationBuilder.UpdateData( + table: "AspNetUsers", + keyColumn: "Id", + keyValue: 1, + columns: new[] { "ConcurrencyStamp", "PasswordHash", "SecurityStamp" }, + values: new object[] { "d801514b-2c36-4df7-9bb5-1c7e351ed27e", "AQAAAAIAAYagAAAAEBSoDiGEYlobLgzVcffYwvTtm1WnXpqrBBT1yYP+kruV4OTtizW7Sel94qAfqUjGcw==", "6132b0af-6a7f-4f38-8959-d049ed486e8f" }); + + migrationBuilder.UpdateData( + table: "AspNetUsers", + keyColumn: "Id", + keyValue: 2, + columns: new[] { "ConcurrencyStamp", "PasswordHash", "SecurityStamp" }, + values: new object[] { "14f11e89-bb92-49dd-a8df-ec5b0d49df2d", "AQAAAAIAAYagAAAAEEvcS1SY+9pxZKH/P1l4TaodgW3SFSRfcZ+PnjB3MiMmEUSyYoo64AQtX0bOxFSX2g==", "6dca2498-5150-4369-9923-6f19a48258d4" }); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.RenameColumn( + name: "requestID", + table: "request", + newName: "requestId"); + + migrationBuilder.UpdateData( + table: "AspNetUsers", + keyColumn: "Id", + keyValue: 1, + columns: new[] { "ConcurrencyStamp", "PasswordHash", "SecurityStamp" }, + values: new object[] { "402e8e19-59a4-4fae-8ffe-4d935bcb1104", "AQAAAAIAAYagAAAAEM22wL5Kx9mwPIJilJAgzudLHg+HduDhJaq+BjD3jh5bqPzi+OnTzAEN49l1IeBqcw==", "4a127c4f-3199-4037-8c02-0a21b750351b" }); + + migrationBuilder.UpdateData( + table: "AspNetUsers", + keyColumn: "Id", + keyValue: 2, + columns: new[] { "ConcurrencyStamp", "PasswordHash", "SecurityStamp" }, + values: new object[] { "05ebfe99-3f46-43b8-9aaa-e01c5bb31a86", "AQAAAAIAAYagAAAAEF3NUsfCVQ3KOv0uND7ech54XBz7+ffJ5x1YYuN0eaBciYQ/K2Jlah/KQR19ykaHbQ==", "42178537-99cc-4701-a488-8f1c0e774855" }); + } + } +} diff --git a/Migrations/CentralSystemContextModelSnapshot.cs b/Migrations/CentralSystemContextModelSnapshot.cs index 3654f57..a1a96b6 100644 --- a/Migrations/CentralSystemContextModelSnapshot.cs +++ b/Migrations/CentralSystemContextModelSnapshot.cs @@ -150,7 +150,7 @@ namespace PSTW_CentralSystem.Migrations b.HasIndex("UserId") .IsUnique(); - b.ToTable("InventoryMasters", (string)null); + b.ToTable("InventoryMasters"); }); modelBuilder.Entity("PSTW_CentralSystem.Areas.Inventory.Models.ItemModel", b => @@ -251,7 +251,7 @@ namespace PSTW_CentralSystem.Migrations b.HasIndex("ProductId"); - b.ToTable("Items", (string)null); + b.ToTable("Items"); }); modelBuilder.Entity("PSTW_CentralSystem.Areas.Inventory.Models.ItemMovementModel", b => @@ -332,7 +332,7 @@ namespace PSTW_CentralSystem.Migrations b.HasIndex("ToUser"); - b.ToTable("ItemMovements", (string)null); + b.ToTable("ItemMovements"); }); modelBuilder.Entity("PSTW_CentralSystem.Areas.Inventory.Models.ManufacturerModel", b => @@ -349,7 +349,7 @@ namespace PSTW_CentralSystem.Migrations b.HasKey("ManufacturerId"); - b.ToTable("Manufacturers", (string)null); + b.ToTable("Manufacturers"); }); modelBuilder.Entity("PSTW_CentralSystem.Areas.Inventory.Models.ProductModel", b => @@ -390,16 +390,16 @@ namespace PSTW_CentralSystem.Migrations b.HasIndex("ManufacturerId"); - b.ToTable("Products", (string)null); + b.ToTable("Products"); }); modelBuilder.Entity("PSTW_CentralSystem.Areas.Inventory.Models.RequestModel", b => { - b.Property("requestId") + b.Property("requestID") .ValueGeneratedOnAdd() .HasColumnType("int"); - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("requestId")); + MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("requestID")); b.Property("Document") .HasColumnType("longtext"); @@ -434,7 +434,7 @@ namespace PSTW_CentralSystem.Migrations b.Property("status") .HasColumnType("longtext"); - b.HasKey("requestId"); + b.HasKey("requestID"); b.HasIndex("ProductId"); @@ -442,7 +442,7 @@ namespace PSTW_CentralSystem.Migrations b.HasIndex("UserId"); - b.ToTable("request", (string)null); + b.ToTable("request"); }); modelBuilder.Entity("PSTW_CentralSystem.Areas.Inventory.Models.StationModel", b => @@ -468,7 +468,7 @@ namespace PSTW_CentralSystem.Migrations b.HasIndex("StationPicID"); - b.ToTable("Stations", (string)null); + b.ToTable("Stations"); }); modelBuilder.Entity("PSTW_CentralSystem.Areas.Inventory.Models.StoreModel", b => @@ -490,7 +490,7 @@ namespace PSTW_CentralSystem.Migrations b.HasIndex("CompanyId"); - b.ToTable("Stores", (string)null); + b.ToTable("Stores"); }); modelBuilder.Entity("PSTW_CentralSystem.Areas.Inventory.Models.SupplierModel", b => @@ -520,7 +520,7 @@ namespace PSTW_CentralSystem.Migrations b.HasKey("SupplierId"); - b.ToTable("Suppliers", (string)null); + b.ToTable("Suppliers"); }); modelBuilder.Entity("PSTW_CentralSystem.Models.CompanyModel", b => @@ -537,7 +537,7 @@ namespace PSTW_CentralSystem.Migrations b.HasKey("CompanyId"); - b.ToTable("Companies", (string)null); + b.ToTable("Companies"); }); modelBuilder.Entity("PSTW_CentralSystem.Models.DepartmentModel", b => @@ -563,7 +563,7 @@ namespace PSTW_CentralSystem.Migrations b.HasIndex("CompanyId"); - b.ToTable("Departments", (string)null); + b.ToTable("Departments"); }); modelBuilder.Entity("PSTW_CentralSystem.Models.ModuleSettingModel", b => @@ -593,7 +593,7 @@ namespace PSTW_CentralSystem.Migrations b.HasKey("SettingId"); - b.ToTable("ModuleSettings", (string)null); + b.ToTable("ModuleSettings"); }); modelBuilder.Entity("PSTW_CentralSystem.Models.RoleModel", b => @@ -754,16 +754,16 @@ namespace PSTW_CentralSystem.Migrations { Id = 1, AccessFailedCount = 0, - ConcurrencyStamp = "402e8e19-59a4-4fae-8ffe-4d935bcb1104", + ConcurrencyStamp = "d801514b-2c36-4df7-9bb5-1c7e351ed27e", Email = "admin@pstw.com.my", EmailConfirmed = true, FullName = "MAAdmin", LockoutEnabled = false, NormalizedEmail = "ADMIN@PSTW.COM.MY", NormalizedUserName = "ADMIN@PSTW.COM.MY", - PasswordHash = "AQAAAAIAAYagAAAAEM22wL5Kx9mwPIJilJAgzudLHg+HduDhJaq+BjD3jh5bqPzi+OnTzAEN49l1IeBqcw==", + PasswordHash = "AQAAAAIAAYagAAAAEBSoDiGEYlobLgzVcffYwvTtm1WnXpqrBBT1yYP+kruV4OTtizW7Sel94qAfqUjGcw==", PhoneNumberConfirmed = false, - SecurityStamp = "4a127c4f-3199-4037-8c02-0a21b750351b", + SecurityStamp = "6132b0af-6a7f-4f38-8959-d049ed486e8f", TwoFactorEnabled = false, UserInfoStatus = 1, UserName = "admin@pstw.com.my" @@ -772,16 +772,16 @@ namespace PSTW_CentralSystem.Migrations { Id = 2, AccessFailedCount = 0, - ConcurrencyStamp = "05ebfe99-3f46-43b8-9aaa-e01c5bb31a86", + ConcurrencyStamp = "14f11e89-bb92-49dd-a8df-ec5b0d49df2d", Email = "sysadmin@pstw.com.my", EmailConfirmed = true, FullName = "SysAdmin", LockoutEnabled = false, NormalizedEmail = "SYSADMIN@PSTW.COM.MY", NormalizedUserName = "SYSADMIN@PSTW.COM.MY", - PasswordHash = "AQAAAAIAAYagAAAAEF3NUsfCVQ3KOv0uND7ech54XBz7+ffJ5x1YYuN0eaBciYQ/K2Jlah/KQR19ykaHbQ==", + PasswordHash = "AQAAAAIAAYagAAAAEEvcS1SY+9pxZKH/P1l4TaodgW3SFSRfcZ+PnjB3MiMmEUSyYoo64AQtX0bOxFSX2g==", PhoneNumberConfirmed = false, - SecurityStamp = "42178537-99cc-4701-a488-8f1c0e774855", + SecurityStamp = "6dca2498-5150-4369-9923-6f19a48258d4", TwoFactorEnabled = false, UserInfoStatus = 1, UserName = "sysadmin@pstw.com.my"