From f2f8571b44fbfbcb405fc965df4611820517a7e7 Mon Sep 17 00:00:00 2001 From: MahanCh Date: Sat, 19 Apr 2025 16:11:22 +0330 Subject: [PATCH] add list new design --- Company.Domain/File1/IFileRepository.cs | 5 + .../File1/IFileApplication.cs | 14 +- .../FileApplication.cs | 27 +- .../ProceedingSessionApplication.cs | 28 +- .../Repository/FileRepository.cs | 153 +- .../Repository/ProceedingSessionRepository.cs | 2 +- .../Admin/Pages/Company/FilePage/Index.cshtml | 1583 ++++++++--------- .../Pages/Company/FilePage/Index.cshtml.cs | 1218 ++++++------- .../Pages/Company/FilePage/IndexOld.cshtml | 1142 ++++++++++++ .../Pages/Company/FilePage/IndexOld.cshtml.cs | 667 +++++++ .../FilePage/ModalEmployeeDetail.cshtml | 96 + 11 files changed, 3342 insertions(+), 1593 deletions(-) create mode 100644 ServiceHost/Areas/Admin/Pages/Company/FilePage/IndexOld.cshtml create mode 100644 ServiceHost/Areas/Admin/Pages/Company/FilePage/IndexOld.cshtml.cs create mode 100644 ServiceHost/Areas/Admin/Pages/Company/FilePage/ModalEmployeeDetail.cshtml diff --git a/Company.Domain/File1/IFileRepository.cs b/Company.Domain/File1/IFileRepository.cs index 9cb15905..b1f7b352 100644 --- a/Company.Domain/File1/IFileRepository.cs +++ b/Company.Domain/File1/IFileRepository.cs @@ -25,4 +25,9 @@ public interface IFileRepository : IRepository Task> GetList(GetFileSearchModel searchModel); #endregion + Task> GetAllArchiveNo(); + Task> GetAllClassFiles(); + Task> GetClientAndLitigation(); + Task GetClientDetails(long fileId); + } \ No newline at end of file diff --git a/CompanyManagment.App.Contracts/File1/IFileApplication.cs b/CompanyManagment.App.Contracts/File1/IFileApplication.cs index e567118e..051579f8 100644 --- a/CompanyManagment.App.Contracts/File1/IFileApplication.cs +++ b/CompanyManagment.App.Contracts/File1/IFileApplication.cs @@ -35,6 +35,11 @@ public interface IFileApplication Task> GetList(GetFileSearchModel searchModel); + Task> GetAllArchiveNo(); + Task> GetAllClassFiles(); + Task> GetClientAndLitigation(); + Task GetClientDetails(long fileId); + #endregion } @@ -53,7 +58,7 @@ public class GetFileSearchModel /// /// اصیل دعوی (شامل جمع خواهان ها و خوانده ها)ء /// - public (long id, bool IsRequester) ClientOrLitigationParty { get; set; } + public long ClientOrLitigationPartyId { get; set; } /// /// شعبه هیئت تشخیص /// @@ -93,6 +98,8 @@ public class GetFileSearchModel /// public string DisputeResolutionBoardToDate{ get; set; } + public int Status { get; set; } + public int PageIndex { get; set; } } @@ -134,6 +141,11 @@ public class FileListViewModel /// وضعیت پرونده. یک به معنی غیرفعال. دو به معنی فعال. سه به معنی خروج موقت /// public int Status { get; set; } + + /// + /// درج وکالتنامه . یک یعنی ندارد . دو یعنی دارد + /// + public int HasMandate { get; set; } } public class FileListBoardViewModel diff --git a/CompanyManagment.Application/FileApplication.cs b/CompanyManagment.Application/FileApplication.cs index 64cbb6ae..2ea54e3d 100644 --- a/CompanyManagment.Application/FileApplication.cs +++ b/CompanyManagment.Application/FileApplication.cs @@ -200,10 +200,6 @@ public class FileApplication : IFileApplication return employers; } - - - - public FileViewModel GetFileDetails(FileViewModel file) { var viewModel = new FileViewModel(); @@ -526,6 +522,27 @@ public class FileApplication : IFileApplication public async Task> GetList(GetFileSearchModel searchModel) { return await _fileRepository.GetList(searchModel); - } + } + + public async Task> GetAllArchiveNo() + { + return await _fileRepository.GetAllArchiveNo(); + } + + public async Task> GetAllClassFiles() + { + return await _fileRepository.GetAllClassFiles(); + } + + public async Task> GetClientAndLitigation() + { + return await _fileRepository.GetClientAndLitigation(); + } + + public async Task GetClientDetails(long fileId) + { + return await _fileRepository.GetClientDetails(fileId); + } + #endregion } \ No newline at end of file diff --git a/CompanyManagment.Application/ProceedingSessionApplication.cs b/CompanyManagment.Application/ProceedingSessionApplication.cs index fa489ed6..08d5e2bd 100644 --- a/CompanyManagment.Application/ProceedingSessionApplication.cs +++ b/CompanyManagment.Application/ProceedingSessionApplication.cs @@ -38,24 +38,14 @@ public class ProceedingSessionApplication : IProceedingSessionApplication //var Time = new DateTime(); //Time = command.Time.ToGeorgianDateTime(); - if (string.IsNullOrWhiteSpace(command.Date) && string.IsNullOrWhiteSpace(command.Time)) + if (String.IsNullOrWhiteSpace(command.Date) && String.IsNullOrWhiteSpace(command.Time)) return operation.Succcedded(); - if (string.IsNullOrWhiteSpace(command.Date) || string.IsNullOrWhiteSpace(command.Time)) + if (String.IsNullOrWhiteSpace(command.Date) || String.IsNullOrWhiteSpace(command.Time)) return operation.Failed("تاریخ و زمان رسیدگی الزامی است"); - + var Date = new DateTime(); - - if (!command.Date.TryToGeorgianDateTime(out Date)) - { - return operation.Failed("تاریخ جلسه وارد شده نامعتبر است "); - } - - if (!TimeOnly.TryParse(command.Time, out _)) - { - return operation.Failed("ساعت جلسه وارد شده نامعتبر است"); - } - + Date = command.Date.ToGeorgianDateTime(); var proSession = new ProceedingSession(Date, command.Time, command.Board_Id); _proceedingSessionRepository.Create(proSession); @@ -104,8 +94,8 @@ public class ProceedingSessionApplication : IProceedingSessionApplication public void RemoveProceedingSessions(long boardId) { - var searchModel = new ProceedingSessionSearchModel { Board_Id = boardId }; - + var searchModel = new ProceedingSessionSearchModel { Board_Id = boardId }; + var objects = Search(searchModel); _proceedingSessionRepository.RemoveProceedingSessions(objects); @@ -243,13 +233,13 @@ public class ProceedingSessionApplication : IProceedingSessionApplication var file_PSList = new List(); foreach (var item in list) - { + { var board = _boardApplication.GetDetails(item.Board_Id); if (searchModel.Board.BoardType_Id != 0 && board.BoardType_Id != searchModel.Board.BoardType_Id) continue; - if (searchModel.Board.BoardChairman != null) + if(searchModel.Board.BoardChairman != null) { if (board.BoardChairman == null) continue; @@ -333,7 +323,7 @@ public class ProceedingSessionApplication : IProceedingSessionApplication { var pastProceedingSessions = _proceedingSessionRepository.Search(new ProceedingSessionSearchModel { Status = 1, ToDate = DateTime.Today.AddDays(-1).ToFarsi() }); - foreach (var PS in pastProceedingSessions) + foreach(var PS in pastProceedingSessions) { var proceedingSession = _proceedingSessionRepository.Get(PS.Id); proceedingSession.Edit(PS.Date.ToGeorgianDateTime(), PS.Time, PS.Board_Id, 2); diff --git a/CompanyManagment.EFCore/Repository/FileRepository.cs b/CompanyManagment.EFCore/Repository/FileRepository.cs index 6857d22e..7b3cd81b 100644 --- a/CompanyManagment.EFCore/Repository/FileRepository.cs +++ b/CompanyManagment.EFCore/Repository/FileRepository.cs @@ -1,8 +1,5 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics; +using System.Collections.Generic; using System.Linq; -using System.Threading.Tasks; using _0_Framework_b.InfraStructure; using _0_Framework_b.Application; using Company.Domain.File1; @@ -11,6 +8,7 @@ using CompanyManagment.App.Contracts.Employer; using CompanyManagment.App.Contracts.File1; using Microsoft.EntityFrameworkCore; using PersianTools.Core; +using System.Threading.Tasks; namespace CompanyManagment.EFCore.Repository; @@ -266,7 +264,7 @@ public class FileRepository : RepositoryBase, EmployeeFullName = x.FName + " " + x.LName }).FirstOrDefault(); - return result?.EmployeeFullName ?? ""; + return result?.EmployeeFullName??"-"; } public string GetEmployerFullNameById(long id) @@ -276,7 +274,7 @@ public class FileRepository : RepositoryBase, FullName = x.FullName }).FirstOrDefault(); - return result?.FullName ?? ""; + return result?.FullName??"-"; } public List GetAllEmploees() @@ -314,59 +312,6 @@ public class FileRepository : RepositoryBase, }).ToList(); } - public List GetFileList(FileSearchModel searchModel) - { - var query = _context.Files.Select(x => new FileViewModel - { - Id = x.id, - ArchiveNo = x.ArchiveNo, - ClientVisitDate = x.ClientVisitDate.ToFarsi(), - ProceederReference = x.ProceederReference, - Reqester = x.Reqester, - Summoned = x.Summoned, - Client = x.Client, - FileClass = x.FileClass, - HasMandate = x.HasMandate, - Description = x.Description, - Status = x.Status - }); - - if (searchModel.Id != 0) - { - query = query.Where(x => x.Id == searchModel.Id); - } - - //TODO if - if (searchModel.ArchiveNo != null && int.Parse(searchModel.ArchiveNo) != -1) - { - query = query.Where(x => x.ArchiveNo == int.Parse(searchModel.ArchiveNo)); - } - - if (!string.IsNullOrEmpty(searchModel.FileClass) && searchModel.FileClass != "-1") - { - query = query.Where(x => x.FileClass.Contains(searchModel.FileClass)); - } - - if (searchModel.UserId != 0) - { - if (searchModel.Client == 0) - query = query.Where(x => x.Reqester == searchModel.UserId || x.Summoned == searchModel.UserId); - - else if (searchModel.Client == 1) - query = query.Where(x => x.Reqester == searchModel.UserId); - - else - query = query.Where(x => x.Summoned == searchModel.UserId); - } - - if (searchModel.Status != 0) - { - query = query.Where(x => x.Status == searchModel.Status); - } - - return query.OrderByDescending(x => x.ArchiveNo).Skip(searchModel.PageIndex).Take(30).ToList(); - } - public async Task> GetExcelDetails() { var fileQuery = _context.Files.Include(x => x.PetitionsList).AsQueryable(); @@ -405,6 +350,8 @@ public class FileRepository : RepositoryBase, #region Search + if (searchModel.Status > 0) + fileQuery = fileQuery.Where(x => x.Status == searchModel.Status); if (searchModel.ArchiveNumber > 0) { fileQuery = fileQuery.Where(x => x.ArchiveNo == searchModel.ArchiveNumber); @@ -415,16 +362,11 @@ public class FileRepository : RepositoryBase, fileQuery = fileQuery.Where(x => x.FileClass.Contains(searchModel.FileClass)); } - if (searchModel.ClientOrLitigationParty.id > 0) + if (searchModel.ClientOrLitigationPartyId > 0) { - if (searchModel.ClientOrLitigationParty.IsRequester) - { - fileQuery = fileQuery.Where(x => x.Reqester == searchModel.ClientOrLitigationParty.id); - } - else - { - fileQuery = fileQuery.Where(x => x.Summoned == searchModel.ClientOrLitigationParty.id); - } + + fileQuery = fileQuery.Where(x => x.Reqester == searchModel.ClientOrLitigationPartyId || x.Summoned == searchModel.ClientOrLitigationPartyId); + } if (!string.IsNullOrWhiteSpace(searchModel.DiagnosisBoardBranch)) @@ -488,11 +430,13 @@ public class FileRepository : RepositoryBase, var disputeResolutionPetition = x.PetitionsList.FirstOrDefault(p => p.BoardType_Id == 2); return new FileListViewModel() { + Id = x.id, ArchiveNumber = x.ArchiveNo, FileClass = x.FileClass, Client = x.Client == 1 ? requester?.FullName : summoned?.FullName ?? "-", LitigationParty = x.Client == 1 ? summoned?.FullName : requester?.FullName ?? "-", Status = x.Status, + HasMandate = x.HasMandate, DiagnosisBoard = new FileListBoardViewModel() { BoardChairman = diagnosisBoard?.BoardChairman ?? "-", @@ -532,4 +476,77 @@ public class FileRepository : RepositoryBase, } + + public async Task> GetAllArchiveNo() + { + return await _context.Files.Select(x => x.ArchiveNo.ToString()).ToListAsync(); + } + + public async Task> GetAllClassFiles() + { + return await _context.Files.Select(x => x.FileClass).Distinct().ToListAsync(); + } + + async Task> IFileRepository.GetClientAndLitigation() + { + var files = _context.Files.AsQueryable(); + + var employees = await _context.Employees.Where(x => files.Any(f => f.Reqester == x.id)).Select(x => new EmployeeSelectListViewModel + { + Id = x.id, + EmployeeFullName = x.FName + " " + x.LName, + }).ToListAsync(); + + var employers = await _context.Employers.Where(x => files.Any(f => f.Summoned == x.id)).Select(x => new EmployeeSelectListViewModel + { + Id = x.id, + EmployeeFullName = x.FullName, + }).ToListAsync(); + + var result = employers.Concat(employees).ToList(); + + return result; + } + + public async Task GetClientDetails(long fileId) + { + var file = await _context.Files.FirstOrDefaultAsync(x => x.id == fileId); + if (file == null) + return null; + + EditEmployee result ; + if (file.Client == 1) + { + result = _context.Employees.Where(x => x.id == file.Reqester).Select(x => new EditEmployee + { + Id = x.id, + FName = x.FName, + LName = x.LName, + MclsUserName = x.MclsUserName, + MclsPassword = x.MclsPassword, + EserviceUserName = x.EserviceUserName, + EservicePassword = x.EservicePassword, + SanaUserName = x.SanaUserName, + SanaPassword = x.SanaPassword + }).FirstOrDefault(); + } + else + { + result = _context.Employers.Where(x => x.id == file.Summoned).Select(x => new EditEmployee + { + Id = x.id, + FName = x.FName, + LName = x.LName, + MclsUserName = x.MclsUserName, + MclsPassword = x.MclsPassword, + EserviceUserName = x.EserviceUserName, + EservicePassword = x.EservicePassword, + SanaUserName = x.SanaUserName, + SanaPassword = x.SanaPassword + }).FirstOrDefault(); + } + + return result; + + } } \ No newline at end of file diff --git a/CompanyManagment.EFCore/Repository/ProceedingSessionRepository.cs b/CompanyManagment.EFCore/Repository/ProceedingSessionRepository.cs index b8bbed2c..92a14316 100644 --- a/CompanyManagment.EFCore/Repository/ProceedingSessionRepository.cs +++ b/CompanyManagment.EFCore/Repository/ProceedingSessionRepository.cs @@ -6,7 +6,7 @@ using Company.Domain.ProceedingSession; using CompanyManagment.App.Contracts.ProceedingSession; using CompanyManagment.EFCore; -namespace File.EfCore.Repository; +namespace CompanyManagment.EFCore.Repository; public class ProceedingSessionRepository : RepositoryBase, IProceedingSessionRepository { diff --git a/ServiceHost/Areas/Admin/Pages/Company/FilePage/Index.cshtml b/ServiceHost/Areas/Admin/Pages/Company/FilePage/Index.cshtml index 4b2cbe69..8b90e19e 100644 --- a/ServiceHost/Areas/Admin/Pages/Company/FilePage/Index.cshtml +++ b/ServiceHost/Areas/Admin/Pages/Company/FilePage/Index.cshtml @@ -2,26 +2,18 @@ @using CompanyManagment.App.Contracts.File1 @model ServiceHost.Areas.Admin.Pages.Company.FilePage.IndexModel @{ - //string colaps = "in"; - //string act = "active"; - var i = 1; - - string[] turns = - { - "اول", "دوم", "سوم", "چهارم", "پنجم", "ششم", "هفتم", "هشتم", "نهم", "دهم" - , "یازدهم", "دوازدهم", "سیزدهم", "چهاردهم", "پانزدهم", "شانزدهم", "هفدهم", "هجدهم", "نوزدهم", "بیستم" - , "بیست و یکم", "بیست و دوم", "بیست و سوم", "بیست و چهارم", "بیست و پنجم", "بیست و ششم", "بیست و هفتم", "بیست و هشتم", "بیست و نهم", "سی ام", - "سی و یکم", "سی و دوم", "سی و سوم", "سی و چهارم", " سی و پنجم", " سی و ششم", " سی و هفتم", "سی و هشتم", " سی و نهم", " چهلم" - }; - -} - -@{ - //Layout = "~/Pages/Shared/_Layout.cshtml"; Layout = "Shared/_AdminLayout"; ViewData["title"] = "پرونده ها"; + + + + } -
- + + @@ -169,8 +313,8 @@
-
-
+
+ + +
+
+ +
+ +
+
+ @*===================================================================================================================*@ + +
+
+
+ +
+
+
+ +
+
+ +
+
+ +
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+ +
+ +
+ + +
+
+ +
+ + مشاهده همه +
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+

لیست پرونده ها

+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +@foreach (var item in Model.viewModels) +{ + var background = ""; + var status = 0; + var activationStatus = 0; + var style = ""; + var exitStyle = ""; + if (item.HasMandate == 1) + { + background = "background-color : #eb7070;"; + } + + + + @if (item.Status != FileEnums.TEMPORARY_EXIT) + { + status = FileEnums.TEMPORARY_EXIT; + } + else + { + style = "background-color: #ffffff; border: 1px solid #000; transform: rotate(180deg);"; + exitStyle = "background-color: #e4b801"; + status = FileEnums.ACTIVE; + } + + + + + + @if (item.Client == 1) + { + + } + else + { + + } + + + + + + + + + + + + + + + + @{ + i++; + } + + + +} + + +
## بایگانی کلاسه پرونده حقیقی / حقوقی تاریخ ثبت دادخواست نوبت رسیدگی مدارک تحقیق نوبت رسیدگی دادنامه تشخیص تاریخ ثبت دادخواست نوبت رسیدگی مدارک تحقیق نوبت رسیدگی دادنامه حل اختلاف عملیات
+

@i

+
+ + + + + + + + + + + + +
+ + + +
+

@i

+
+ + +
+
+

@item.ArchiveNo

+
+

@(item.FileClass ?? "-")

+
+ + + + + + + + + +
+
+

+ @(item.ReqesterFullname ?? "-") +

+ + @(item.ReqesterFullname ?? "-") + +
+
+
+

+ @(item.SummonedFullname ?? "-") +

+ + @(item.SummonedFullname ?? "-") + +
+
+
+ + + + + + + + + +
+
+

+ @(item.SummonedFullname ?? "-") +

+ + @(item.SummonedFullname ?? "-") + +
+
+
+

+ @(item.ReqesterFullname ?? "-") +

+ + @(item.ReqesterFullname ?? "-") + +
+
+
+

@item.DiagnosisBoard.DisputeResolutionPetitionDate

+
+ @if (item.DiagnosisBoard.Id != 0 && item.FirstDiagnosisPS.Id != 0) + { + + + + + + + + + + + + +
+

@(item.FirstDiagnosisPS.Date ?? "-")

+
+

نوبت اول

+
+

@item.DiagnosisBoard.Branch - @item.DiagnosisBoard.BoardChairman

+
+ } + else + { + + + + + + + + + + + + +
-
-
-
+ } +
+ + @if (item.DiagnosisEvidenceId == 0) + { + style = "background-color: #fff; border-color: #009688; color: #009688 !important"; + } + else + { + style = "background-color: #009688; border-color: #009688;"; + } + + + + + + + + @if (item.DiagnosisMasterPetitionId == 0) + { + style = "background-color: #fff; border-color: #ff7700; color: #ff7700 !important"; + } + else + { + style = "background-color: #ff7700; border-color: #ff7700;"; + } + + + + + + @if (item.DiagnosisBoard.Id != 0 && item.LastDiagnosisPS.Id != 0) + { + + + + + + + + + + + + +
+

@(item.LastDiagnosisPS.Date ?? "-")

+
+

نوبت @turns[item.DiagnosisPsCount]

+
+

@item.DiagnosisBoard.Branch - @item.DiagnosisBoard.BoardChairman

+
+ } + else + { + + + + + + + + + + + + +
-
-
-
+ } +
+ + + + + + + + + + + + +
+

@(item.DiagnosisPetition.PetitionIssuanceDate ?? "-")

+
+

@(item.DiagnosisPetition.TotalPenalty ?? "-")

+
+ @*@if(item.DiagnosisPetition.PetitionIssuanceDate != null) + {*@ + + + + @*}*@ +
+
+

@(item.DisputeResolutionBoard.DisputeResolutionPetitionDate ?? "-")

+
+ @if (item.DisputeResolutionBoard.Id != 0 && item.FirstDisputeResolutionPS.Id != 0) + { + + + + + + + + + + + + +
+

@(item.FirstDisputeResolutionPS.Date ?? "-")

+
+

نوبت اول

+
+

@item.DisputeResolutionBoard.Branch - @item.DisputeResolutionBoard.BoardChairman

+
+ } + else + { + + + + + + + + + + + + +
-
-
-
+ } +
+ + @if (item.DisputeResolutionEvidenceId == 0) + { + style = "background-color: #fff; border-color: #009688; color: #009688 !important"; + } + else + { + style = "background-color: #009688; border-color: #009688;"; + } + + + + + + + @if (item.DisputeResolutionMasterPetitionId == 0) + { + style = "background-color: #fff; border-color: #ff7700; color: #ff7700 !important"; + } + else + { + style = "background-color: #ff7700; border-color: #ff7700;"; + } + + + + + + @if (item.DisputeResolutionBoard.Id != 0 && item.LastDisputeResolutionPS.Id != 0) + { + + + + + + + + + + + + +
+

@(item.LastDisputeResolutionPS.Date ?? "-")

+
+

نوبت @turns[item.DisputeResolutionPsCount]

+
+

@item.DisputeResolutionBoard.Branch - @item.DisputeResolutionBoard.BoardChairman

+
+ } + else + { + + + + + + + + + + + + +
-
-
-
+ } +
+ + + + + + + + + + + + +
+

@(item.DisputeResolutionPetition.PetitionIssuanceDate ?? "-")

+
+

@(item.DisputeResolutionPetition.TotalPenalty ?? "-")

+
+ @*@if(item.DisputeResolutionPetition.PetitionIssuanceDate != null) + {*@ + + + + @*}*@ +
+
+ + + + + + + + + + + + +
+ + + +
+ + + +
+ @if (item.Status == FileEnums.DEACTIVE) + { + style = "background-color: #fff; border-color: #ef5350; color: #ef5350 !important"; + status = FileEnums.ACTIVE; + } + else + { + style = "background-color: #ef5350; border-color: #ef5350;"; + status = FileEnums.DEACTIVE; + } + + + +
+
+
+
+
+
+
+ +
+ + +@section Script { + + + + + + + +} \ No newline at end of file diff --git a/ServiceHost/Areas/Admin/Pages/Company/FilePage/IndexOld.cshtml.cs b/ServiceHost/Areas/Admin/Pages/Company/FilePage/IndexOld.cshtml.cs new file mode 100644 index 00000000..cd84da5f --- /dev/null +++ b/ServiceHost/Areas/Admin/Pages/Company/FilePage/IndexOld.cshtml.cs @@ -0,0 +1,667 @@ +using _0_Framework.Application; +using CompanyManagement.Infrastructure.Excel.CaseManagement; +using CompanyManagment.App.Contracts.Board; +using CompanyManagment.App.Contracts.Contact2; +using CompanyManagment.App.Contracts.Evidence; +using CompanyManagment.App.Contracts.EvidenceDetail; +using CompanyManagment.App.Contracts.File1; +using CompanyManagment.App.Contracts.FileTiming; +using CompanyManagment.App.Contracts.FileTitle; +using CompanyManagment.App.Contracts.MasterPenaltyTitle; +using CompanyManagment.App.Contracts.MasterPetition; +using CompanyManagment.App.Contracts.MasterWorkHistory; +using CompanyManagment.App.Contracts.PenaltyTitle; +using CompanyManagment.App.Contracts.Petition; +using CompanyManagment.App.Contracts.ProceedingSession; +using CompanyManagment.App.Contracts.WorkHistory; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using ArchiveNo_FileClass_UserIdList = CompanyManagment.App.Contracts.File1.ArchiveNo_FileClass_UserIdList; +using Users = CompanyManagment.App.Contracts.File1.Users; +//using CompanyManagment.App.Contracts.FileAlert; + +namespace ServiceHost.Areas.Admin.Pages.Company.FilePage; + +public class IndexOldModel : PageModel +{ + private readonly IBoardApplication _boardApplication; + private readonly IContactApplication2 _contactApplication; + private readonly IEvidenceApplication _evidenceApplication; + private readonly IEvidenceDetailApplication _evidenceDetailApplication; + + private readonly IFileApplication _fileApplication; + private readonly IFileTimingApplication _fileTimingApplication; + private readonly IFileTitleApplication _fileTitleApplication; + private readonly IMasterPenaltyTitleApplication _masterPenaltyTitleApplication; + private readonly IMasterPetitionApplication _masterPetitionApplication; + private readonly IMasterWorkHistoryApplication _masterWorkHistoryApplication; + private readonly IPenaltyTitleApplication _penaltyTitleApplication; + private readonly IPetitionApplication _petitionApplication; + private readonly IProceedingSessionApplication _proceedingSessionApplication; + private readonly IWorkHistoryApplication _workHistoryApplication; + public FileSearchModel fileSearchModel; + public List viewModels; + + + public IndexOldModel( + IFileApplication fileApplication, + IBoardApplication boardApplication, + IPetitionApplication petitionApplication, + IWorkHistoryApplication workHistoryApplication, + IPenaltyTitleApplication penaltyTitleApplication, + IProceedingSessionApplication proceedingSessionApplication, + IMasterPetitionApplication masterPetitionApplication, + IMasterWorkHistoryApplication masterWorkHistoryApplication, + IMasterPenaltyTitleApplication masterPenaltyTitleApplication, + IEvidenceApplication evidenceApplication, + IEvidenceDetailApplication evidenceDetailApplication, + IFileTitleApplication fileTitleApplication, + IFileTimingApplication fileTimingApplication, + IContactApplication2 contactApplication + ) + { + _fileApplication = fileApplication; + _boardApplication = boardApplication; + _petitionApplication = petitionApplication; + _workHistoryApplication = workHistoryApplication; + _penaltyTitleApplication = penaltyTitleApplication; + _proceedingSessionApplication = proceedingSessionApplication; + _masterPetitionApplication = masterPetitionApplication; + _masterWorkHistoryApplication = masterWorkHistoryApplication; + _masterPenaltyTitleApplication = masterPenaltyTitleApplication; + _evidenceApplication = evidenceApplication; + _evidenceDetailApplication = evidenceDetailApplication; + _fileTitleApplication = fileTitleApplication; + _fileTimingApplication = fileTimingApplication; + _contactApplication = contactApplication; + } + + public void OnGet(FileSearchModel fileSearchModel) + { + var files = new List(); + + if (fileSearchModel.diagnosisBoard == null) + fileSearchModel.diagnosisBoard = new BoardSearchModel(); + + if (fileSearchModel.diagnosisProceedingSession == null) + fileSearchModel.diagnosisProceedingSession = new ProceedingSessionSearchModel(); + + if (fileSearchModel.disputeResolutionBoard == null) + fileSearchModel.disputeResolutionBoard = new BoardSearchModel(); + + if (fileSearchModel.disputeResolutionProceedingSession == null) + fileSearchModel.disputeResolutionProceedingSession = + new ProceedingSessionSearchModel(); + + + var allFiles = _fileApplication.Search(new FileSearchModel()); + + if (this.fileSearchModel == null) + { + this.fileSearchModel = new FileSearchModel + { + ArchiveNo_FileClass_UserIdList = allFiles.Select(x => new ArchiveNo_FileClass_UserIdList + { + ArchiveNo = x.ArchiveNo.ToString(), + FileClass = x.FileClass, + UserId = x.Client == 1 ? x.Reqester : x.Summoned + }).ToList(), + UsersList = _fileApplication.GetAllEmploees().Select(x => new Users + { Id = x.Id, FullName = x.EmployeeFullName, RequesterOrSummoned = 1 }).ToList() + }; + + this.fileSearchModel.UsersList.AddRange(_fileApplication.GetAllEmployers() + .Select(x => new Users { Id = x.Id, FullName = x.FullName, RequesterOrSummoned = 2 }).ToList()); + } + else + { + this.fileSearchModel.ArchiveNo_FileClass_UserIdList = allFiles.Select(x => + new ArchiveNo_FileClass_UserIdList + { + ArchiveNo = x.ArchiveNo.ToString(), FileClass = x.FileClass, + UserId = x.Client == 1 ? x.Reqester : x.Summoned + }).ToList(); + this.fileSearchModel.UsersList = _fileApplication.GetAllEmploees().Select(x => + new Users { Id = x.Id, FullName = x.EmployeeFullName, RequesterOrSummoned = 1 }).ToList(); + this.fileSearchModel.UsersList.AddRange(_fileApplication.GetAllEmployers() + .Select(x => new Users { Id = x.Id, FullName = x.FullName, RequesterOrSummoned = 2 }).ToList()); + } + + if (!fileSearchModel.IsSearch) + files = _fileApplication.Search(fileSearchModel).Take(50).ToList(); + else + files = _fileApplication.Search(fileSearchModel).ToList(); + + files.ForEach(f => f.ReqesterFullname = _fileApplication.GetEmployeeFullNameById(f.Reqester)); + files.ForEach(f => f.SummonedFullname = _fileApplication.GetEmployerFullNameById(f.Summoned)); + + viewModels = files; + + var i = 0; + foreach (var file in files.ToList()) + { + var tempViewModel = new FileViewModel(); + tempViewModel = _fileApplication.GetFileDetails(file); + + if (fileSearchModel.IsSearch) + { + if (_fileApplication.FilterFileDetails(tempViewModel, fileSearchModel)) + { + viewModels[i] = tempViewModel; + i++; + } + else + { + viewModels.RemoveAt(i); + } + } + } + } + + public IActionResult OnGetCreateFile() + { + var archiveNo = _fileApplication.FindLastArchiveNumber(); + + var createFile = new CreateFile + { + ArchiveNo = archiveNo + 1, + Employees = _fileApplication.GetAllEmploees(false), + Employers = _fileApplication.GetAllEmployers(false), + Contacts = _contactApplication.GetAllContact() + }; + + + return Partial("./CreateFile", createFile); + } + + public IActionResult OnPostCreateFile(CreateFile command) + { + var result = _fileApplication.Create(command); + + return new JsonResult(result); + } + + public IActionResult OnGetEditFile(long id = -1) + { + if (id == -1) + { + var file = _fileApplication.Search(new FileSearchModel()).FirstOrDefault(); + if (file != null) id = file.Id; + } + + var editFile = _fileApplication.GetDetails(id); + var diagnosisBoard = + _boardApplication.GetDetails(editFile.Id, 1) + ?? new EditBoard { File_Id = editFile.Id, BoardType_Id = 1 }; + + var diagnosisPS = new List { new() }; + if (diagnosisBoard.Id != 0) + { + var PsSearchModel = new ProceedingSessionSearchModel { Board_Id = diagnosisBoard.Id, Status = 0 }; + diagnosisPS = _proceedingSessionApplication.Search(PsSearchModel); + + if (diagnosisPS.Count == 0) + diagnosisPS.Add(new EditProceedingSession()); + } + //diagnosisPS = + // diagnosisPS.Count != 0 + // ? diagnosisPS + // : new List { new EditProceedingSession() }; + + var diagnosisPetition = _petitionApplication.GetDetails(editFile.Id, 1); + + var disputeResolutionBoard = + _boardApplication.GetDetails(editFile.Id, 2) + ?? new EditBoard { File_Id = editFile.Id, BoardType_Id = 2 }; + + var disputeResolutionPS = new List { new() }; + if (disputeResolutionBoard.Id != 0) + { + var PsSearchModel = new ProceedingSessionSearchModel { Board_Id = disputeResolutionBoard.Id }; + disputeResolutionPS = _proceedingSessionApplication.Search(PsSearchModel); + + if (disputeResolutionPS.Count == 0) + disputeResolutionPS.Add(new EditProceedingSession()); + } + //disputeResolutionPS = + // disputeResolutionPS.Count != 0 + // ? disputeResolutionPS + // : new List { new EditProceedingSession() }; + + var disputeResolutionPetition = _petitionApplication.GetDetails(editFile.Id, 2); + + editFile.createDiagnosisBoard = diagnosisBoard; + editFile.createDiagnosisPS = diagnosisPS; + editFile.createDiagnosisPetition = diagnosisPetition; + + editFile.createDisputeResolutionBoard = disputeResolutionBoard; + editFile.createDisputeResolutionPS = disputeResolutionPS; + editFile.createDisputeResolutionPetition = disputeResolutionPetition; + editFile.Employees = _fileApplication.GetAllEmploees(); + editFile.Employers = _fileApplication.GetAllEmployers(); + + return Partial("Edit", editFile); + } + + public IActionResult OnPostEditFile(EditFile command) + { + var result = _fileApplication.Edit(command); + + if (!result.IsSuccedded) + return new JsonResult(result); + + if ( + command.createDiagnosisBoard.BoardChairman != null + || command.createDiagnosisBoard.Branch != null + || command.createDiagnosisBoard.DisputeResolutionPetitionDate != null + || command.createDiagnosisBoard.ExpertReport != null + ) + { + if (command.createDiagnosisBoard.Id == 0) + result = _boardApplication.Create(command.createDiagnosisBoard); + else + result = _boardApplication.Edit(command.createDiagnosisBoard); + + if (!result.IsSuccedded) + return new JsonResult(result); + + if (command.createDiagnosisPS != null) + result = _proceedingSessionApplication.CreateProceedingSessions( + command.createDiagnosisPS, + result.SendId + ); + + if (!result.IsSuccedded) + return new JsonResult(result); + } + + if ( + command.createDisputeResolutionBoard.BoardChairman != null + || command.createDisputeResolutionBoard.Branch != null + || command.createDisputeResolutionBoard.DisputeResolutionPetitionDate != null + || command.createDisputeResolutionBoard.ExpertReport != null + ) + { + if (command.createDisputeResolutionBoard.Id == 0) + result = _boardApplication.Create(command.createDisputeResolutionBoard); + else + result = _boardApplication.Edit(command.createDisputeResolutionBoard); + + if (!result.IsSuccedded) + return new JsonResult(result); + + if (command.createDisputeResolutionPS != null) + result = _proceedingSessionApplication.CreateProceedingSessions( + command.createDisputeResolutionPS, + result.SendId + ); + + if (!result.IsSuccedded) + return new JsonResult(result); + } + + return new JsonResult(result); + } + + public IActionResult OnGetCreateOrEditPetition(long fileId, int boardTypeId) + { + var file = _fileApplication.GetDetails(fileId); + + var petition = _petitionApplication.GetDetails(fileId, boardTypeId) ?? new EditPetition(); + var workHistories = _workHistoryApplication.Search(petition.Id); + workHistories = + workHistories.Count != 0 + ? workHistories + : new List { new() }; + + var PenaltyTitles = _penaltyTitleApplication.Search(petition.Id); + PenaltyTitles = + PenaltyTitles.Count != 0 + ? PenaltyTitles + : new List { new() }; + + petition.File_Id = fileId; + petition.BoardType_Id = boardTypeId; + petition.FileData = file; + petition.CreateWorkHistory = workHistories; + petition.CreatePenaltyTitle = PenaltyTitles; + + return Partial("./CreateOrEditPetition", petition); + } + + public IActionResult OnPostCreateOrEditPetition(EditPetition command) + { + var petitionResult = new OperationResult(); + + if (command.Id == 0) + petitionResult = _petitionApplication.Create(command); + else + petitionResult = _petitionApplication.Edit(command); + + if (!petitionResult.IsSuccedded) + return new JsonResult(petitionResult); + + var workResult = _workHistoryApplication.CreateWorkHistories( + command.CreateWorkHistory, + petitionResult.SendId + ); + + if (!workResult.IsSuccedded) + return new JsonResult(workResult); + + var penaltyResult = _penaltyTitleApplication.CreatePenaltyTitles( + command.CreatePenaltyTitle, + petitionResult.SendId + ); + + if (!penaltyResult.IsSuccedded) + return new JsonResult(penaltyResult); + + return new JsonResult(penaltyResult); + } + + public IActionResult OnGetCreateOrEditMasterPetition(long fileId, int boardTypeId) + { + var file = _fileApplication.GetDetails(fileId); + + var masterPetition = _masterPetitionApplication.GetDetails(fileId, boardTypeId) ?? new EditMasterPetition(); + var workHistories = _masterWorkHistoryApplication.Search(masterPetition.Id); + workHistories = + workHistories.Count != 0 + ? workHistories + : new List { new() }; + + var PenaltyTitles = _masterPenaltyTitleApplication.Search(masterPetition.Id); + PenaltyTitles = + PenaltyTitles.Count != 0 + ? PenaltyTitles + : new List { new() }; + + masterPetition.File_Id = fileId; + masterPetition.BoardType_Id = boardTypeId; + masterPetition.FileData = file; + masterPetition.CreateMasterWorkHistory = workHistories; + masterPetition.CreateMasterPenaltyTitle = PenaltyTitles; + + return Partial("./CreateOrEditMasterPetition", masterPetition); + } + + public IActionResult OnPostCreateOrEditMasterPetition(EditMasterPetition command) + { + var masterPetitionResult = new OperationResult(); + //if (!ModelState.IsValid) + //{ + // return BadRequest(); + + //} + + //var result = _fileApplication.Edit(command.FileData); + + //if (!result.IsSuccedded) + // return new JsonResult(result); + + if (command.Id == 0) + masterPetitionResult = _masterPetitionApplication.Create(command); + else + masterPetitionResult = _masterPetitionApplication.Edit(command); + + if (!masterPetitionResult.IsSuccedded) + return new JsonResult(masterPetitionResult); + + var workResult = _masterWorkHistoryApplication.CreateMasterWorkHistories( + command.CreateMasterWorkHistory, + masterPetitionResult.SendId + ); + + if (!workResult.IsSuccedded) + return new JsonResult(workResult); + + var penaltyResult = _masterPenaltyTitleApplication.CreateMasterPenaltyTitles( + command.CreateMasterPenaltyTitle, + masterPetitionResult.SendId + ); + + if (!penaltyResult.IsSuccedded) + return new JsonResult(penaltyResult); + + return new JsonResult(penaltyResult); + } + + public IActionResult OnGetCreateOrEditEvidence(long fileId, int boardTypeId) + { + var file = _fileApplication.GetDetails(fileId); + + var evidence = _evidenceApplication.GetDetails(fileId, boardTypeId) ?? new EditEvidence(); + var evidenceDetails = _evidenceDetailApplication.Search(evidence.Id); + evidenceDetails = + evidenceDetails.Count != 0 + ? evidenceDetails + : new List { new() }; + + + evidence.File_Id = fileId; + evidence.BoardType_Id = boardTypeId; + evidence.FileData = file; + evidence.CreateEvidenceDetail = evidenceDetails; + + return Partial("./CreateOrEditEvidence", evidence); + } + + public IActionResult OnPostCreateOrEditEvidence(EditEvidence command) + { + var evidenceResult = new OperationResult(); + //if (!ModelState.IsValid) + //{ + // return BadRequest(); + + //} + + //var result = _fileApplication.Edit(command.FileData); + + //if (!result.IsSuccedded) + // return new JsonResult(result); + + if (command.Id == 0) + evidenceResult = _evidenceApplication.Create(command); + else + evidenceResult = _evidenceApplication.Edit(command); + + if (!evidenceResult.IsSuccedded) + return new JsonResult(evidenceResult); + + var evidenceDetail = _evidenceDetailApplication.CreateEvidenceDetail( + command.CreateEvidenceDetail, + evidenceResult.SendId + ); + + if (!evidenceDetail.IsSuccedded) + return new JsonResult(evidenceDetail); + + return new JsonResult(evidenceDetail); + } + + public IActionResult OnGetCreateOrEditFileTitle(string type) + { + var EditFileTitle = new EditFileTitle(); + EditFileTitle.FileTitlesList = _fileTitleApplication.Search(new FileTitleSearchModel { Type = type }); + + return Partial("./CreateOrEditFileTitle", EditFileTitle); + } + + public IActionResult OnPostCreateOrEditFileTitle(EditFileTitle command) + { + var result = new OperationResult(); + + if (_fileTitleApplication.Search(new FileTitleSearchModel { Title = command.Title, Type = command.Type }) + .Count != 0) + { + result.Failed("این عنوان قبلا ثبت شده است"); + } + else + { + if (command.Id == 0) + { + result = _fileTitleApplication.Create(command); + } + + else + { + var fileTitle = _fileTitleApplication.Search(new FileTitleSearchModel { Id = command.Id }) + .FirstOrDefault(); + fileTitle.Title = command.Title; + result = _fileTitleApplication.Edit(fileTitle); + } + } + + var res = new + { + result, + type = command.Type + }; + + return new JsonResult(res); + } + + public IActionResult OnGetCreateOrEditFileTiming(string type) + { + var FileTimings = _fileTimingApplication.Search(new FileTimingSearchModel()); + + if (FileTimings.Count == 0) + FileTimings = Enumerable.Repeat(new EditFileTiming(), 6).ToList(); + + return Partial("./CreateOrEditFileTiming", FileTimings); + } + + public IActionResult OnPostCreateOrEditFileTiming(List command) + { + var result = new OperationResult(); + + foreach (var item in command) + if (item.Id == 0) + _fileTimingApplication.Create(item); + + else + _fileTimingApplication.Edit(item); + + return new JsonResult(result.Succcedded()); + } + + public IActionResult OnGetFileSummary(long id) + { + var summary = _fileApplication.GetFileSummary(id); + + return Partial("FileSummary", summary); + } + + public JsonResult OnPostCheckUniqueArchiveNo(string archiveNo) + { + var sModel = new FileSearchModel { ArchiveNo = archiveNo }; + var vModel = _fileApplication.Search(sModel); + + return new JsonResult( + new + { + stat = vModel.Count() == 0 ? true : false, + message = vModel == null ? "" : "شماره بایگانی تکراری است" + } + ); + } + + public JsonResult OnPostCheckUniqueFileClass(string fileClass) + { + var sModel = new FileSearchModel { FileClass = fileClass }; + var vModel = _fileApplication.Search(sModel); + + return new JsonResult( + new + { + stat = vModel.Count() == 0 ? true : false, + message = vModel == null ? "" : "کلاسه پرونده تکراری است" + } + ); + } + + public JsonResult OnPostRemoveMasterPetition(long id) + { + _masterPenaltyTitleApplication.RemoveMasterPenaltyTitles(id); + _masterWorkHistoryApplication.RemoveMasterWorkHistories(id); + var result = _masterPetitionApplication.Remove(id); + + return new JsonResult(result); + } + + public JsonResult OnGetGetFileTitles(string type) + { + var fileTitlesList = new List(); + + if (type == "contact") + fileTitlesList = _contactApplication.GetAllContact().Select(x => x.NameContact).ToList(); + + else + fileTitlesList = _fileTitleApplication.Search(new FileTitleSearchModel { Type = type }).Select(x => x.Title) + .ToList(); + + + return new JsonResult(fileTitlesList); + } + + public JsonResult OnPostRemoveFileTitle(long id) + { + var result = _fileTitleApplication.Remove(id); + + return new JsonResult(result); + } + + public JsonResult OnPostRemoveEvidence(long id) + { + _evidenceDetailApplication.RemoveEvidenceDetails(id); + var result = _evidenceApplication.Remove(id); + + return new JsonResult(result); + } + + public JsonResult OnPostSetFileStatus(long id, int status) + { + var result = new OperationResult(); + var file = _fileApplication.GetDetails(id); + file.Status = status; + result = _fileApplication.Edit(file); + + switch (file.Status) + { + case 1: + + //file.Status = 2; + //result = _fileApplication.Edit(file); + result.Message = "پرونده با موفقیت فعال شد"; + break; + + case 2: + //file.Status = 1; + //result = _fileApplication.Edit(file); + result.Message = "پرونده با موفقیت غیرفعال شد"; + break; + + case 3: + //file.Status = 1; + //result = _fileApplication.Edit(file); + result.Message = "پرونده با موفقیت از بایگانی خارج شد"; + break; + } + + return new JsonResult(result); + } + + #region Mahan + + public async Task OnGetExcelFileDetails() + { + var data = await _fileApplication.GetExcelDetails(); + var excelBytes = CaseManagementExcelGenerator.GenerateCheckoutTempExcelInfo(data); + return File(excelBytes, + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + $"پرونده.xlsx"); + } + + #endregion +} \ No newline at end of file diff --git a/ServiceHost/Areas/Admin/Pages/Company/FilePage/ModalEmployeeDetail.cshtml b/ServiceHost/Areas/Admin/Pages/Company/FilePage/ModalEmployeeDetail.cshtml new file mode 100644 index 00000000..818fa860 --- /dev/null +++ b/ServiceHost/Areas/Admin/Pages/Company/FilePage/ModalEmployeeDetail.cshtml @@ -0,0 +1,96 @@ +@model CompanyManagment.App.Contracts.Employee.EditEmployee + + + \ No newline at end of file