Compare commits

..

11 Commits

Author SHA1 Message Date
5fa49a4988 change main pages 2025-06-01 18:23:51 +03:30
MahanCh
99e807fa23 fix step4 bug 2025-05-20 17:45:43 +03:30
MahanCh
2ce17dcac9 change some styles 2025-05-19 18:04:47 +03:30
MahanCh
233c1a3aa9 merge from master 2025-05-19 18:04:36 +03:30
MahanCh
37cd07c2b8 fix conflict 2025-05-18 17:54:55 +03:30
MahanCh
6201492879 change step4 2025-05-18 17:52:33 +03:30
SamSys
489528d076 new version of Register 2025-05-14 21:24:06 +03:30
MahanCh
3a6f87eaca fix some register financial bugs 2025-05-07 22:45:42 +03:30
MahanCh
ec277629fb fix register financial problems 2025-05-04 20:58:45 +03:30
MahanCh
faeb297f5c fix register problems 2025-04-28 15:49:56 +03:30
MahanCh
c3457881b0 add register part 2025-04-23 23:22:26 +03:30
407 changed files with 56057 additions and 146942 deletions

View File

@@ -12,65 +12,65 @@ namespace _0_Framework.Application;
public class AuthHelper : IAuthHelper public class AuthHelper : IAuthHelper
{ {
private readonly IHttpContextAccessor _contextAccessor; private readonly IHttpContextAccessor _contextAccessor;
public AuthHelper(IHttpContextAccessor contextAccessor)
{
_contextAccessor = contextAccessor;
}
public AuthHelper(IHttpContextAccessor contextAccessor) public AuthViewModel CurrentAccountInfo()
{ {
_contextAccessor = contextAccessor; var result = new AuthViewModel();
} if (!IsAuthenticated())
return result;
public AuthViewModel CurrentAccountInfo() var claims = _contextAccessor.HttpContext.User.Claims.ToList();
{ result.Id = long.Parse(claims.FirstOrDefault(x => x.Type == "AccountId").Value);
var result = new AuthViewModel(); result.Username = claims.FirstOrDefault(x => x.Type == "Username")?.Value;
if (!IsAuthenticated()) result.ProfilePhoto = claims.FirstOrDefault(x => x.Type == "ProfilePhoto")?.Value;
return result; result.RoleId = long.Parse(claims.FirstOrDefault(x => x.Type == ClaimTypes.Role)?.Value);
result.Fullname = claims.FirstOrDefault(x => x.Type == ClaimTypes.Name)?.Value;
var claims = _contextAccessor.HttpContext.User.Claims.ToList(); result.Role = claims.FirstOrDefault(x => x.Type == "RoleName")?.Value;
result.Id = long.Parse(claims.FirstOrDefault(x => x.Type == "AccountId").Value); result.ClientAriaPermission =claims.FirstOrDefault(x => x.Type == "ClientAriaPermission").Value;
result.Username = claims.FirstOrDefault(x => x.Type == "Username")?.Value; result.AdminAreaPermission = claims.FirstOrDefault(x => x.Type == "AdminAreaPermission").Value;
result.ProfilePhoto = claims.FirstOrDefault(x => x.Type == "ProfilePhoto")?.Value; result.PositionValue = !string.IsNullOrWhiteSpace(claims.FirstOrDefault(x => x.Type == "PositionValue")?.Value) ? int.Parse(claims.FirstOrDefault(x => x.Type == "PositionValue")?.Value) : 0;
result.RoleId = long.Parse(claims.FirstOrDefault(x => x.Type == ClaimTypes.Role)?.Value); result.WorkshopList = Tools.DeserializeFromBsonList<WorkshopClaim>(claims.FirstOrDefault(x => x is { Type: "workshopList" })?.Value);
result.Fullname = claims.FirstOrDefault(x => x.Type == ClaimTypes.Name)?.Value; result.WorkshopSlug = claims.FirstOrDefault(x => x is { Type: "WorkshopSlug" }).Value;
result.Role = claims.FirstOrDefault(x => x.Type == "RoleName")?.Value; result.Mobile = claims.FirstOrDefault(x => x is { Type: "Mobile" }).Value;
result.ClientAriaPermission = claims.FirstOrDefault(x => x.Type == "ClientAriaPermission").Value;
result.AdminAreaPermission = claims.FirstOrDefault(x => x.Type == "AdminAreaPermission").Value;
result.PositionValue = !string.IsNullOrWhiteSpace(claims.FirstOrDefault(x => x.Type == "PositionValue")?.Value) ? int.Parse(claims.FirstOrDefault(x => x.Type == "PositionValue")?.Value) : 0;
result.WorkshopList = Tools.DeserializeFromBsonList<WorkshopClaim>(claims.FirstOrDefault(x => x is { Type: "workshopList" })?.Value);
result.WorkshopSlug = claims.FirstOrDefault(x => x is { Type: "WorkshopSlug" }).Value;
result.Mobile = claims.FirstOrDefault(x => x is { Type: "Mobile" }).Value;
result.SubAccountId = long.Parse(claims.FirstOrDefault(x => x.Type == "SubAccountId").Value); result.SubAccountId = long.Parse(claims.FirstOrDefault(x => x.Type == "SubAccountId").Value);
result.WorkshopName = claims.FirstOrDefault(x => x is { Type: "WorkshopName" })?.Value; result.WorkshopName = claims.FirstOrDefault(x => x is { Type: "WorkshopName" })?.Value;
return result; return result;
} }
public List<int> GetPermissions() public List<int> GetPermissions()
{ {
if (!IsAuthenticated()) if (!IsAuthenticated())
return new List<int>(); return new List<int>();
var permissions = _contextAccessor.HttpContext.User.Claims.FirstOrDefault(x => x.Type == "permissions") var permissions = _contextAccessor.HttpContext.User.Claims.FirstOrDefault(x => x.Type == "permissions")
?.Value; ?.Value;
return Tools.DeserializeFromBsonList<int>(permissions); //Mahan return Tools.DeserializeFromBsonList<int>(permissions); //Mahan
} }
public long CurrentAccountId() public long CurrentAccountId()
{ {
return IsAuthenticated() return IsAuthenticated()
? long.Parse(_contextAccessor.HttpContext.User.Claims.First(x => x.Type == "AccountId")?.Value) ? long.Parse(_contextAccessor.HttpContext.User.Claims.First(x => x.Type == "AccountId")?.Value)
: 0; : 0;
} }
public long CurrentSubAccountId() public long CurrentSubAccountId()
{ {
return IsAuthenticated() return IsAuthenticated()
? long.Parse(_contextAccessor.HttpContext.User.Claims.First(x => x.Type == "SubAccountId")?.Value) ? long.Parse(_contextAccessor.HttpContext.User.Claims.First(x => x.Type == "SubAccountId")?.Value)
: 0; : 0;
} }
public string CurrentAccountMobile() public string CurrentAccountMobile()
{ {
return IsAuthenticated() return IsAuthenticated()
? _contextAccessor.HttpContext.User.Claims.First(x => x.Type == "Mobile")?.Value ? _contextAccessor.HttpContext.User.Claims.First(x => x.Type == "Mobile")?.Value
: ""; : "";
} }
#region Vafa #region Vafa
@@ -111,166 +111,160 @@ public class AuthHelper : IAuthHelper
} }
public string GetWorkshopSlug() public string GetWorkshopSlug()
{ {
return CurrentAccountInfo().ClientAriaPermission == "true" return CurrentAccountInfo().ClientAriaPermission == "true"
? _contextAccessor.HttpContext.User.Claims.First(x => x.Type == "WorkshopSlug")?.Value ? _contextAccessor.HttpContext.User.Claims.First(x => x.Type == "WorkshopSlug")?.Value
: ""; : "";
} }
public string GetWorkshopName() public string GetWorkshopName()
{ {
var workshopName = _contextAccessor.HttpContext.User.Claims.FirstOrDefault(x => x.Type == "ClientAriaPermission")?.Value == "true"; var workshopName = _contextAccessor.HttpContext.User.Claims.FirstOrDefault(x => x.Type == "ClientAriaPermission")?.Value == "true";
if (workshopName) if (workshopName)
{ {
return _contextAccessor.HttpContext.User.Claims.First(x => x.Type == "WorkshopName")?.Value; return _contextAccessor.HttpContext.User.Claims.First(x => x.Type == "WorkshopName")?.Value;
} }
return ""; return "";
} }
#endregion #endregion
public string CurrentAccountRole() public string CurrentAccountRole()
{ {
if (IsAuthenticated()) if (IsAuthenticated())
return _contextAccessor.HttpContext.User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.Role)?.Value; return _contextAccessor.HttpContext.User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.Role)?.Value;
return null; return null;
} }
public bool IsAuthenticated() public bool IsAuthenticated()
{ {
return _contextAccessor.HttpContext.User.Identity.IsAuthenticated; return _contextAccessor.HttpContext.User.Identity.IsAuthenticated;
//var claims = _contextAccessor.HttpContext.User.Claims.ToList(); //var claims = _contextAccessor.HttpContext.User.Claims.ToList();
//if (claims.Count > 0) //if (claims.Count > 0)
// return true; // return true;
//return false; //return false;
//return claims.Count > 0; //return claims.Count > 0;
} }
public void Signin(AuthViewModel account) public void Signin(AuthViewModel account)
{ {
#region MahanChanges #region MahanChanges
if (account.Id == 322) var permissions = account.Permissions is { Count: > 0 } ? Tools.SerializeToBson(account.Permissions) : "";
account.Permissions.AddRange([3060301, 30603, 30604, 30605]); var workshopBson = account.WorkshopList is { Count: > 0 } ? Tools.SerializeToBson(account.WorkshopList) : "";
var slug = account.WorkshopSlug ?? "";
var permissions = account.Permissions is { Count: > 0 } ? Tools.SerializeToBson(account.Permissions) : ""; #endregion
var claims = new List<Claim>
{
var workshopBson = account.WorkshopList is { Count: > 0 } ? Tools.SerializeToBson(account.WorkshopList) : ""; new Claim("AccountId", account.Id.ToString()),
var slug = account.WorkshopSlug ?? ""; new Claim(ClaimTypes.Name, account.Fullname),
new Claim(ClaimTypes.Role, account.RoleId.ToString()),
#endregion new Claim("Username", account.Username), // Or Use ClaimTypes.NameIdentifier
var claims = new List<Claim>
{
new Claim("AccountId", account.Id.ToString()),
new Claim(ClaimTypes.Name, account.Fullname),
new Claim(ClaimTypes.Role, account.RoleId.ToString()),
new Claim("Username", account.Username), // Or Use ClaimTypes.NameIdentifier
new Claim("permissions", permissions), new Claim("permissions", permissions),
new Claim("Mobile", account.Mobile), new Claim("Mobile", account.Mobile),
new Claim("ProfilePhoto", account.ProfilePhoto ), new Claim("ProfilePhoto", account.ProfilePhoto ),
new Claim("RoleName", account.RoleName), new Claim("RoleName", account.RoleName),
new Claim("SubAccountId", account.SubAccountId.ToString()), new Claim("SubAccountId", account.SubAccountId.ToString()),
new Claim("AdminAreaPermission", account.AdminAreaPermission.ToString()), new Claim("AdminAreaPermission", account.AdminAreaPermission.ToString()),
new Claim("ClientAriaPermission", account.ClientAriaPermission.ToString()), new Claim("ClientAriaPermission", account.ClientAriaPermission.ToString()),
new Claim("IsCamera", "false"), new Claim("IsCamera", "false"),
new Claim("PositionValue",account.PositionValue.ToString()), new Claim("PositionValue",account.PositionValue.ToString()),
//mahanChanges //mahanChanges
new("workshopList",workshopBson), new("workshopList",workshopBson),
new("WorkshopSlug",slug), new("WorkshopSlug",slug),
new("WorkshopName",account.WorkshopName??"") new("WorkshopName",account.WorkshopName??"")
}; };
var claimsIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme); var claimsIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);
var authProperties = new AuthenticationProperties var authProperties = new AuthenticationProperties
{ {
ExpiresUtc = DateTimeOffset.UtcNow.AddDays(1) ExpiresUtc = DateTimeOffset.UtcNow.AddDays(1)
}; };
_contextAccessor.HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, _contextAccessor.HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme,
new ClaimsPrincipal(claimsIdentity), new ClaimsPrincipal(claimsIdentity),
authProperties); authProperties);
} }
#region Camera #region Camera
public void CameraSignIn(CameraAuthViewModel account) public void CameraSignIn(CameraAuthViewModel account)
{ {
var claims = new List<Claim> var claims = new List<Claim>
{ {
new Claim("AccountId", account.Id.ToString()), new Claim("AccountId", account.Id.ToString()),
new Claim("Username", account.Username), // Or Use ClaimTypes.NameIdentifier new Claim("Username", account.Username), // Or Use ClaimTypes.NameIdentifier
new Claim("WorkshopId", account.WorkshopId.ToString()), new Claim("WorkshopId", account.WorkshopId.ToString()),
new Claim("WorkshopName", account.WorkshopName), new Claim("WorkshopName", account.WorkshopName),
new Claim("Mobile", account.Mobile), new Claim("Mobile", account.Mobile),
new Claim("AccountId", account.AccountId.ToString()), new Claim("AccountId", account.AccountId.ToString()),
new Claim("IsActiveString", account.IsActiveString), new Claim("IsActiveString", account.IsActiveString),
new Claim("IsCamera", "true"), new Claim("IsCamera", "true"),
}; };
var claimsIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme); var claimsIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);
var authProperties = new AuthenticationProperties var authProperties = new AuthenticationProperties
{ {
//ExpiresUtc = DateTimeOffset.UtcNow.AddDays(30) //ExpiresUtc = DateTimeOffset.UtcNow.AddDays(30)
ExpiresUtc = new DateTimeOffset(year: 2100, month: 1, day: 1, hour: 0, minute: 0, second: 0, offset: TimeSpan.Zero) ExpiresUtc = new DateTimeOffset(year: 2100, month: 1, day: 1, hour: 0, minute: 0, second: 0, offset: TimeSpan.Zero)
}; };
_contextAccessor.HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, _contextAccessor.HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme,
new ClaimsPrincipal(claimsIdentity), new ClaimsPrincipal(claimsIdentity),
authProperties); authProperties);
} }
public CameraAuthViewModel CameraAccountInfo() public CameraAuthViewModel CameraAccountInfo()
{ {
var result = new CameraAuthViewModel(); var result = new CameraAuthViewModel();
if (!IsAuthenticated()) if (!IsAuthenticated())
return result; return result;
var claims = _contextAccessor.HttpContext.User.Claims.ToList(); var claims = _contextAccessor.HttpContext.User.Claims.ToList();
result.Id = long.Parse(claims.FirstOrDefault(x => x.Type == "AccountId").Value); result.Id = long.Parse(claims.FirstOrDefault(x => x.Type == "AccountId").Value);
result.Username = claims.FirstOrDefault(x => x.Type == "Username")?.Value; result.Username = claims.FirstOrDefault(x => x.Type == "Username")?.Value;
result.WorkshopId = long.Parse(claims.FirstOrDefault(x => x.Type == "WorkshopId")?.Value); result.WorkshopId = long.Parse(claims.FirstOrDefault(x => x.Type == "WorkshopId")?.Value);
result.WorkshopName = claims.FirstOrDefault(x => x.Type == "WorkshopName").Value; result.WorkshopName = claims.FirstOrDefault(x => x.Type == "WorkshopName").Value;
result.Mobile = claims.FirstOrDefault(x => x.Type == "Mobile").Value; result.Mobile = claims.FirstOrDefault(x => x.Type == "Mobile").Value;
result.AccountId = long.Parse(claims.FirstOrDefault(x => x.Type == "AccountId")?.Value); result.AccountId = long.Parse(claims.FirstOrDefault(x => x.Type == "AccountId")?.Value);
result.IsActiveString = claims.FirstOrDefault(x => x.Type == "IsActiveString").Value; result.IsActiveString = claims.FirstOrDefault(x => x.Type == "IsActiveString").Value;
return result; return result;
} }
#endregion #endregion
public void SignOut() public void SignOut()
{ {
_contextAccessor.HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme); _contextAccessor.HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme);
} }
#region Pooya #region Pooya
public (long Id, UserType userType, long roleId) GetUserTypeWithId() public (long Id, UserType userType, long roleId) GetUserTypeWithId()
{ {
if (!IsAuthenticated()) if (!IsAuthenticated())
return (0, UserType.Anonymous, 0); return (0, UserType.Anonymous, 0);
var claims = _contextAccessor.HttpContext.User.Claims.ToList(); var claims = _contextAccessor.HttpContext.User.Claims.ToList();
var subAccountId = long.Parse(claims.FirstOrDefault(x => x.Type == "SubAccountId")?.Value ?? "0"); var subAccountId = long.Parse(claims.FirstOrDefault(x => x.Type == "SubAccountId")?.Value ?? "0");
if (subAccountId > 0) if (subAccountId > 0)
return (subAccountId, UserType.SubAccount, 0); return (subAccountId, UserType.SubAccount, 0);
var id = long.Parse(_contextAccessor.HttpContext.User.Claims.First(x => x.Type == "AccountId")?.Value); var id = long.Parse(_contextAccessor.HttpContext.User.Claims.First(x => x.Type == "AccountId")?.Value);
if (claims.FirstOrDefault(x => x.Type == "AdminAreaPermission")?.Value == "true") if (claims.FirstOrDefault(x => x.Type == "AdminAreaPermission")?.Value == "true")
{ {
var roleId = long.Parse(claims.FirstOrDefault(x => x.Type == ClaimTypes.Role)?.Value ?? "0"); var roleId = long.Parse(claims.FirstOrDefault(x => x.Type == ClaimTypes.Role)?.Value ?? "0");
return (id, UserType.Admin, roleId); return (id, UserType.Admin, roleId);
} }
return (id, UserType.Client, 0); return (id, UserType.Client, 0);
} }
#endregion #endregion
} }

View File

@@ -4,5 +4,5 @@ public enum IsActive
{ {
False, False,
True, True,
None
} }

View File

@@ -51,11 +51,4 @@ public class OperationResult<T>
Message = message; Message = message;
return this; return this;
} }
public OperationResult<T> Failed(string message, T data)
{
IsSuccedded = false;
Message = message;
Data = data;
return this;
}
} }

View File

@@ -385,27 +385,11 @@
/// </summary> /// </summary>
public const int SetWorkshopWorkingHoursPermissionCode = 10606; public const int SetWorkshopWorkingHoursPermissionCode = 10606;
#region حساب کاربری دوربین
/// <summary> /// <summary>
/// تنظیمات حساب کاربری دوربین /// تنظیمات حساب کاربری دوربین
/// </summary> /// </summary>
public const int CameraAccountSettingsPermissionCode = 10607; public const int CameraAccountSettingsPermissionCode = 10607;
/// <summary>
/// فعال/غیرفعال اکانت دوربین
/// </summary>
public const int CameraAccountActivationBtnPermissionCode = 1060701;
/// <summary>
/// ویرایش اکانت دوربین
/// </summary>
public const int CameraAccountEditPermissionCode = 1060702;
#endregion
#endregion #endregion
#region کارپوشه #region کارپوشه
@@ -760,22 +744,6 @@
Code = CameraAccountSettingsPermissionCode, Code = CameraAccountSettingsPermissionCode,
ParentId = RollCallOperationsPermissionCode ParentId = RollCallOperationsPermissionCode
}; };
public static SubAccountPermissionDto CameraAccountActivationBtn { get; } = new()
{
Id = CameraAccountActivationBtnPermissionCode,
Name = "فعال/غیرفعال حساب کاربری دوربین",
Code = CameraAccountActivationBtnPermissionCode,
ParentId = CameraAccountSettingsPermissionCode
};
public static SubAccountPermissionDto CameraAccountEdit { get; } = new()
{
Id = CameraAccountEditPermissionCode,
Name = "ویراش حساب کاربری دوربین",
Code = CameraAccountEditPermissionCode,
ParentId = CameraAccountSettingsPermissionCode
};
#endregion #endregion
#region کارپوشه,ParentId = WorkFlowOperationsPermissionCode #region کارپوشه,ParentId = WorkFlowOperationsPermissionCode

View File

@@ -41,6 +41,23 @@ public static class Tools
return Regex.IsMatch(mobileNo, "^((09))(\\d{9})$"); return Regex.IsMatch(mobileNo, "^((09))(\\d{9})$");
} }
/// <summary>
/// تاریخ شروع و تعداد ماه را میگیرد و تاریخ پایان قراردا را بر میگرداند
/// </summary>
/// <param name="startDate"></param>
/// <param name="monthPlus"></param>
/// <returns></returns>
public static (DateTime endDateGr, string endDateFa) FindEndOfContract(string startDate, string monthPlus)
{
int startYear = Convert.ToInt32(startDate.Substring(0, 4));
int startMonth = Convert.ToInt32(startDate.Substring(5, 2));
int startDay = Convert.ToInt32(startDate.Substring(8, 2));
var start = new PersianDateTime(startYear, startMonth, startDay);
var end = (start.AddMonths(Convert.ToInt32(monthPlus))).AddDays(-1);
return ($"{end}".ToGeorgianDateTime(), $"{end}");
}
/// <summary> /// <summary>
/// دریافت روزهای کارکرد پرسنل در لیست بیمه ماه مشخص شده /// دریافت روزهای کارکرد پرسنل در لیست بیمه ماه مشخص شده
@@ -1396,73 +1413,6 @@ public static class Tools
return false; return false;
return true; return true;
} }
/// <summary>
/// چک میکند که در دو شیفت استاتیک تداخل زمانی وجود دارد یا خیر
/// چک میکند که آیا ساعات وارد شده ولید هستند یا خیر
/// </summary>
/// <param name="start1"></param>
/// <param name="end1"></param>
/// <param name="start2"></param>
/// <param name="end2"></param>
/// <returns></returns>
public static bool InterferenceTime(string start1, string end1, string start2, string end2)
{
if (!CheckValidHm(start1))
return true;
if (!CheckValidHm(end1))
return true;
if (!CheckValidHm(start2))
return true;
if (!CheckValidHm(end2))
return true;
//اگه دو شیفت نبود
if (string.IsNullOrWhiteSpace(start1) || string.IsNullOrWhiteSpace(start2))
return false;
try
{
var start1Gr = Convert.ToDateTime(start1);
var end1Gr = Convert.ToDateTime(end1);
if (end1Gr < start1Gr)
end1Gr = end1Gr.AddDays(1);
var start2Gr = Convert.ToDateTime(start2);
var end2Gr = Convert.ToDateTime(end2);
start2Gr = new DateTime(end1Gr.Year, end1Gr.Month, end1Gr.Day, start2Gr.Hour, start2Gr.Minute,
start2Gr.Second);
end2Gr = new DateTime(end1Gr.Year, end1Gr.Month, end1Gr.Day, end2Gr.Hour, end2Gr.Minute,
end2Gr.Second);
if (end2Gr < start2Gr)
end2Gr = end2Gr.AddDays(1);
var diff = (end1Gr - start1Gr).Add((end2Gr - start2Gr));
if (diff > new TimeSpan(24,0,0))
return true;
if (start2Gr <= end1Gr)
return true;
return false;
}
catch (Exception)
{
return true;
}
}
public static DateTime FindFirstDayOfMonthGr(this DateTime date) public static DateTime FindFirstDayOfMonthGr(this DateTime date)
{ {
var pc = new PersianCalendar(); var pc = new PersianCalendar();

View File

@@ -1,9 +0,0 @@
namespace AccountManagement.Application.Contracts.Account;
public class AccountSelectListViewModel
{
public long Id { get; set; }
public string Name { get; set; }
public long RoleId { get; set; }
}

View File

@@ -41,8 +41,6 @@ public interface IAccountApplication
List<AccountViewModel> GetAccountsByPositionId(long positionId); List<AccountViewModel> GetAccountsByPositionId(long positionId);
List<AccountViewModel> GetAccountEqualToLowerPositionValue(); List<AccountViewModel> GetAccountEqualToLowerPositionValue();
Task<List<AccountSelectListViewModel>> GetAdminSelectList();
OperationResult ReLogin(); OperationResult ReLogin();
#endregion #endregion

View File

@@ -4,13 +4,12 @@ using System.Collections.Generic;
namespace AccountManagement.Application.Contracts.Media namespace AccountManagement.Application.Contracts.Media
{ {
public interface IMediaApplication public interface IMediaApplication
{ {
MediaViewModel Get(long id); MediaViewModel Get(long id);
OperationResult UploadFile(IFormFile file, string fileLabel, string relativePath, int maximumFileLength, OperationResult UploadFile(IFormFile file, string fileLabel, string relativePath, int maximumFileLength, List<string> allowedExtensions);
List<string> allowedExtensions, string category); OperationResult MoveFile(long mediaId, string newRelativePath);
OperationResult MoveFile(long mediaId, string newRelativePath); OperationResult DeleteFile(long mediaId);
OperationResult DeleteFile(long mediaId); List<MediaViewModel> GetRange(IEnumerable<long> select);
List<MediaViewModel> GetRange(IEnumerable<long> select); }
} }
}

View File

@@ -15,6 +15,6 @@ namespace AccountManagement.Application.Contracts.SubAccount
public string PhoneNumber { get; set; } public string PhoneNumber { get; set; }
public string Username { get; set; } public string Username { get; set; }
public string ProfilePhoto { get; set; } public string ProfilePhoto { get; set; }
//public List<long> WorkshopIds { get; set; } public List<long> WorkshopIds { get; set; }
} }
} }

View File

@@ -8,6 +8,5 @@ namespace AccountManagement.Application.Contracts.SubAccount
public string Title { get; set; } public string Title { get; set; }
public long AccountId { get; set; } public long AccountId { get; set; }
public List<int> Permissions { get; set; } public List<int> Permissions { get; set; }
public List<long> WorkshopIds { get; set; }
} }
} }

View File

@@ -13,7 +13,7 @@ namespace AccountManagement.Application.Contracts.SubAccount
public string PhoneNumber { get; set; } public string PhoneNumber { get; set; }
public string RePassword { get; set; } public string RePassword { get; set; }
public long SubAccountRoleId { get; set; } public long SubAccountRoleId { get; set; }
//public List<long> WorkshopIds { get; set; } public List<long> WorkshopIds { get; set; }
} }

View File

@@ -7,6 +7,5 @@ namespace AccountManagement.Application.Contracts.SubAccount
public long Id { get; set; } public long Id { get; set; }
public string Title { get; set; } public string Title { get; set; }
public List<int> Permissions { get; set; } public List<int> Permissions { get; set; }
public List<long> WorkshopIds { get; set; }
} }
} }

View File

@@ -21,5 +21,4 @@ public class EditTask:CreateTask
public List<AccountViewModel> AssignsLists { get; set; } public List<AccountViewModel> AssignsLists { get; set; }
public bool HasTicket { get; set; } public bool HasTicket { get; set; }
public long TaskScheduleId { get; set; } public long TaskScheduleId { get; set; }
public bool HasRequest { get; set; }
} }

View File

@@ -48,7 +48,6 @@ public class TaskViewModel
public bool CanDelete { get; set; } public bool CanDelete { get; set; }
public bool CanAssign { get; set; } public bool CanAssign { get; set; }
public bool CanCheckRequests { get; set; } public bool CanCheckRequests { get; set; }
public bool HasRequest { get; set; }
public AssignViewModel AssignedReceiverViewModel { get; set; } public AssignViewModel AssignedReceiverViewModel { get; set; }
public TaskScheduleType ScheduleType { get; set; } public TaskScheduleType ScheduleType { get; set; }

View File

@@ -15,8 +15,6 @@ public class TaskScheduleDetailsViewModel
public string ContractingPartyName { get; set; } public string ContractingPartyName { get; set; }
public string Title { get; set; } public string Title { get; set; }
public string Description { get; set; } public string Description { get; set; }
public string Count { get; set; }
public string FirstEndTaskDate { get; set; }
public List<MediaViewModel> Medias { get; set; } public List<MediaViewModel> Medias { get; set; }
} }

View File

@@ -308,7 +308,7 @@ public class AccountApplication : IAccountApplication
{ {
Slug = _passwordHasher.SlugHasher(x.WorkshopId), Slug = _passwordHasher.SlugHasher(x.WorkshopId),
Name = x.WorkshopName, Name = x.WorkshopName,
PersonnelCount = x.PersonnelCount, PersonnelCount = 0,
Id = x.WorkshopId Id = x.WorkshopId
}).ToList(); }).ToList();
@@ -627,10 +627,7 @@ public class AccountApplication : IAccountApplication
} }
public async Task<List<AccountSelectListViewModel>> GetAdminSelectList()
{
return await _accountRepository.GetAdminSelectList();
}
#endregion #endregion
#region Pooya #region Pooya

View File

@@ -9,113 +9,147 @@ using Microsoft.AspNetCore.Http;
namespace AccountManagement.Application namespace AccountManagement.Application
{ {
public class MediaApplication : IMediaApplication public class MediaApplication:IMediaApplication
{ {
private const string _basePath = "Medias"; private const string _basePath = "Medias";
private readonly IMediaRepository _mediaRepository; private readonly IMediaRepository _mediaRepository;
public MediaApplication(IMediaRepository mediaRepository) public MediaApplication(IMediaRepository mediaRepository)
{ {
_mediaRepository = mediaRepository; _mediaRepository = mediaRepository;
} }
/// <summary> /// <summary>
/// دریافت فایل و نوشتن آن در مسیر داده شده، و ثبت مدیا /// دریافت فایل و نوشتن آن در مسیر داده شده، و ثبت مدیا
/// </summary> /// </summary>
/// <param name="file">فایل</param> /// <param name="file">فایل</param>
/// <param name="fileLabel">برچسب فایل که در نام فایل ظاهر می شود</param> /// <param name="fileLabel">برچسب فایل که در نام فایل ظاهر می شود</param>
/// <param name="relativePath">مسیر فایل</param> /// <param name="relativePath">مسیر فایل</param>
/// <param name="maximumFileLength">حداکثر حجم فایل به مگابایت</param> /// <param name="allowedExtensions">[.png,.jpg,.jpeg] پسوند های مجاز مثلا </param>
/// <param name="allowedExtensions">[.png,.jpg,.jpeg] پسوند های مجاز مثلا </param> /// <param name="maximumFileLength">حداکثر حجم فایل به مگابایت</param>
/// <param name="category"></param> /// <returns></returns>
/// <returns></returns> public OperationResult UploadFile(IFormFile file, string fileLabel, string relativePath,int maximumFileLength,List<string> allowedExtensions)
public OperationResult UploadFile(IFormFile file, string fileLabel, string relativePath, int maximumFileLength, {
List<string> allowedExtensions, string category) OperationResult op = new();
{ var path = Path.Combine(_basePath, relativePath);
return _mediaRepository.UploadFile(file, fileLabel, relativePath, maximumFileLength, allowedExtensions, category); var fileExtension = Path.GetExtension(file.FileName);
}
if (file == null || file.Length == 0)
return op.Failed("خطای سیستمی");
if (file.Length > (maximumFileLength * 1024 * 1024))
return op.Failed($"حجم فایل نمی تواند بیشتر از " +
$"{maximumFileLength}" +
$"مگابایت باشد");
if (!allowedExtensions.Contains(fileExtension.ToLower()))
{
var operationMessage = ":فرمت فایل باید یکی از موارد زیر باشد";
operationMessage += "\n";
operationMessage += string.Join(" ", allowedExtensions);
return op.Failed(operationMessage);
}
/// <summary> Directory.CreateDirectory(path);
/// حذف فایل
/// </summary>
public OperationResult DeleteFile(long mediaId)
{
OperationResult op = new();
var media = _mediaRepository.Get(mediaId);
if (media == null)
return op.Failed("رکورد مورد نظر یافت نشد");
try
{
if (File.Exists(media.Path))
File.Delete(media.Path);
else
return op.Failed("فایل یافت نشد");
}
catch
{
return op.Failed("خطایی در حذف فایل رخ داده است");
}
_mediaRepository.Remove(media.id); var extension = Path.GetExtension(file.FileName);
_mediaRepository.SaveChanges();
return op.Succcedded();
}
/// <summary> var uniqueFileName = $"{fileLabel}-{DateTime.Now.Ticks}{extension}";
/// جابجا کردن فایل var filePath = Path.Combine(path, uniqueFileName);
/// </summary> using (var fileStream = new FileStream(filePath, FileMode.CreateNew))
public OperationResult MoveFile(long mediaId, string newRelativePath) {
{ file.CopyTo(fileStream);
OperationResult op = new(); }
var media = _mediaRepository.Get(mediaId); var mediaEntity = new Media(filePath, extension, "فایل", "EmployeeDocuments");
var oldPath = media.Path; _mediaRepository.Create(mediaEntity);
var path = Path.Combine(_basePath, newRelativePath); _mediaRepository.SaveChanges();
Directory.CreateDirectory(path);
string filepath = Path.Combine(path, Path.GetFileName(oldPath)); return op.Succcedded(mediaEntity.id);
try
{
File.Move(oldPath, filepath);
}
catch
{
return op.Failed("در جابجایی فایل خطایی رخ داده است");
}
media.Edit(filepath, media.Type, media.Category); }
_mediaRepository.SaveChanges();
return op.Succcedded();
}
public MediaViewModel Get(long id)
{
var media = _mediaRepository.Get(id);
if (media == null)
return new();
return new MediaViewModel()
{
Category = media.Category,
Path = media.Path,
Id = media.id,
Type = media.Type
};
}
public List<MediaViewModel> GetRange(IEnumerable<long> ids) /// <summary>
{ /// حذف فایل
var medias = _mediaRepository.GetRange(ids); /// </summary>
return medias.Select(x => new MediaViewModel() public OperationResult DeleteFile(long mediaId)
{ {
Category = x.Category, OperationResult op = new();
Path = x.Path, var media = _mediaRepository.Get(mediaId);
Id = x.id, if (media == null)
Type = x.Type, return op.Failed("رکورد مورد نظر یافت نشد");
}).ToList(); try
} {
if (File.Exists(media.Path))
File.Delete(media.Path);
else
return op.Failed("فایل یافت نشد");
}
catch
{
return op.Failed("خطایی در حذف فایل رخ داده است");
}
} _mediaRepository.Remove(media.id);
_mediaRepository.SaveChanges();
return op.Succcedded();
}
/// <summary>
/// جابجا کردن فایل
/// </summary>
public OperationResult MoveFile(long mediaId, string newRelativePath)
{
OperationResult op = new();
var media = _mediaRepository.Get(mediaId);
var oldPath = media.Path;
var path = Path.Combine(_basePath, newRelativePath);
Directory.CreateDirectory(path);
string filepath = Path.Combine(path, Path.GetFileName(oldPath));
try
{
File.Move(oldPath, filepath);
}
catch
{
return op.Failed("در جابجایی فایل خطایی رخ داده است");
}
media.Edit(filepath, media.Type, media.Category);
_mediaRepository.SaveChanges();
return op.Succcedded();
}
public MediaViewModel Get(long id)
{
var media = _mediaRepository.Get(id);
if (media == null)
return new();
return new MediaViewModel()
{
Category = media.Category,
Path = media.Path,
Id = media.id,
Type = media.Type
};
}
public List<MediaViewModel> GetRange(IEnumerable<long> ids)
{
var medias = _mediaRepository.GetRange(ids);
return medias.Select(x=>new MediaViewModel()
{
Category = x.Category,
Path = x.Path,
Id = x.id,
Type = x.Type,
}).ToList();
}
}
} }

View File

@@ -113,12 +113,12 @@ namespace AccountManagement.Application
if (cmd.PhoneNumber.Length != 11) if (cmd.PhoneNumber.Length != 11)
return op.Failed("شماره تلفن همراه نامعتبر است"); return op.Failed("شماره تلفن همراه نامعتبر است");
//if (!cmd.WorkshopIds.Any()) if (!cmd.WorkshopIds.Any())
// return op.Failed("حداقل یک کارگاه را انتخاب کنید"); return op.Failed("حداقل یک کارگاه را انتخاب کنید");
//if (!cmd.WorkshopIds.All(x => accountWorkshopsList.Contains(x))) if (!cmd.WorkshopIds.All(x => accountWorkshopsList.Contains(x)))
// return op.Failed("خطای سیستمی"); return op.Failed("خطای سیستمی");
if (cmd.SubAccountRoleId == 0 || !_subAccountRoleRepository.Exists(x => cmd.SubAccountRoleId == x.id)) if (cmd.SubAccountRoleId == 0 || !_subAccountRoleRepository.Exists(x => cmd.SubAccountRoleId == x.id))
@@ -131,10 +131,6 @@ namespace AccountManagement.Application
_cameraAccountRepository.Exists(x => x.Username == cmd.Username)) _cameraAccountRepository.Exists(x => x.Username == cmd.Username))
return op.Failed("نام کاربری نمی تواند تکراری باشد"); return op.Failed("نام کاربری نمی تواند تکراری باشد");
var role = _subAccountRoleRepository.Get(cmd.SubAccountRoleId);
var workshopId = role.RoleWorkshops.Select(x => x.WorkshopId).ToList();
var entity = new SubAccount(cmd.AccountId, cmd.SubAccountRoleId, cmd.NationalCode, cmd.FName, cmd.LName, cmd.PhoneNumber, cmd.Username, _passwordHasher.Hash(cmd.Password), var entity = new SubAccount(cmd.AccountId, cmd.SubAccountRoleId, cmd.NationalCode, cmd.FName, cmd.LName, cmd.PhoneNumber, cmd.Username, _passwordHasher.Hash(cmd.Password),
cmd.ProfilePhoto); cmd.ProfilePhoto);
@@ -146,7 +142,7 @@ namespace AccountManagement.Application
_subAccountRepository.SaveChanges(); _subAccountRepository.SaveChanges();
var workshops = workshopId.Select(x => new WorkshopSubAccount(x, entity.id)); var workshops = cmd.WorkshopIds.Select(x => new WorkshopSubAccount(x, entity.id));
foreach (var w in workshops) foreach (var w in workshops)
_workshopSubAccountRepository.Create(w); _workshopSubAccountRepository.Create(w);
@@ -179,22 +175,22 @@ namespace AccountManagement.Application
//if (!cmd.WorkshopIds.All(x => accountWorkshopsList.Contains(x))) if (!cmd.WorkshopIds.All(x => accountWorkshopsList.Contains(x)))
// return op.Failed("خطای سیستمی"); return op.Failed("خطای سیستمی");
if (cmd.SubAccountRoleId == 0 || !_subAccountRoleRepository.Exists(x => cmd.SubAccountRoleId == x.id)) if (cmd.SubAccountRoleId == 0 || !_subAccountRoleRepository.Exists(x => cmd.SubAccountRoleId == x.id))
return op.Failed("نقش مورد نظر وجود ندارد"); return op.Failed("نقش مورد نظر وجود ندارد");
//var workshopSubAccounts = _workshopSubAccountRepository.GetWorkshopsSubAccountEntityBySubAccountId(entity.id); var workshopSubAccounts = _workshopSubAccountRepository.GetWorkshopsSubAccountEntityBySubAccountId(entity.id);
//foreach (var workshopSubAccount in workshopSubAccounts) foreach (var workshopSubAccount in workshopSubAccounts)
// _workshopSubAccountRepository.Remove(workshopSubAccount); _workshopSubAccountRepository.Remove(workshopSubAccount);
//var workshops = cmd.WorkshopIds.Select(x => new WorkshopSubAccount(x, entity.id)); var workshops = cmd.WorkshopIds.Select(x => new WorkshopSubAccount(x, entity.id));
//foreach (var w in workshops) foreach (var w in workshops)
// _workshopSubAccountRepository.Create(w); _workshopSubAccountRepository.Create(w);
entity.Edit(cmd.SubAccountRoleId, cmd.NationalCode, cmd.FName, cmd.LName, cmd.ProfilePhoto); entity.Edit(cmd.SubAccountRoleId, cmd.NationalCode, cmd.FName, cmd.LName, cmd.ProfilePhoto);
_workshopSubAccountRepository.SaveChanges(); _workshopSubAccountRepository.SaveChanges();
@@ -231,8 +227,7 @@ namespace AccountManagement.Application
{ {
Id = entity.id, Id = entity.id,
Title = entity.Title, Title = entity.Title,
Permissions = entity.RolePermissions.Select(x => x.PermissionCode).ToList(), Permissions = entity.RolePermissions.Select(x => x.PermissionCode).ToList()
WorkshopIds = entity.RoleWorkshops.Select(x=>x.WorkshopId).ToList()
}; };
} }
@@ -246,7 +241,7 @@ namespace AccountManagement.Application
OperationResult op = new(); OperationResult op = new();
if (_subAccountRoleRepository.Exists(x => x.AccountId == command.AccountId && x.Title.Trim() == command.Title.Trim())) if (_subAccountRoleRepository.Exists(x => x.AccountId == command.AccountId && x.Title.Trim() == command.Title.Trim()))
return op.Failed("یک نقش با این عنوان وجود دارد"); return op.Failed("یک نقش با این عنوان وجود دارد");
var role = new SubAccountRole(command.Title, command.Permissions, command.AccountId,command.WorkshopIds); var role = new SubAccountRole(command.Title, command.Permissions, command.AccountId);
_subAccountRoleRepository.Create(role); _subAccountRoleRepository.Create(role);
_subAccountRoleRepository.SaveChanges(); _subAccountRoleRepository.SaveChanges();
return op.Succcedded(role.id); return op.Succcedded(role.id);
@@ -259,26 +254,8 @@ namespace AccountManagement.Application
var entity = _subAccountRoleRepository.Get(cmd.Id); var entity = _subAccountRoleRepository.Get(cmd.Id);
if (entity == null) if (entity == null)
return op.Failed(ApplicationMessages.RecordNotFound); return op.Failed(ApplicationMessages.RecordNotFound);
entity.Edit(cmd.Title, cmd.Permissions,cmd.WorkshopIds); entity.Edit(cmd.Title, cmd.Permissions);
_subAccountRoleRepository.SaveChanges();
var subAccountRoles = _subAccountRepository.GetBySubAccountRole(cmd.Id);
foreach (var subAccount in subAccountRoles)
{
var workshopSubAccounts = _workshopSubAccountRepository.GetWorkshopsSubAccountEntityBySubAccountId(subAccount.id);
foreach (var workshopSubAccount in workshopSubAccounts)
_workshopSubAccountRepository.Remove(workshopSubAccount);
var workshops = cmd.WorkshopIds.Select(x => new WorkshopSubAccount(x, subAccount.id));
foreach (var w in workshops)
_workshopSubAccountRepository.Create(w);
}
_subAccountRoleRepository.SaveChanges();
_workshopSubAccountRepository.SaveChanges();
return op.Succcedded(); return op.Succcedded();
} }
public OperationResult AssignRoleToSubAccount(AssignSubAccountRole command) public OperationResult AssignRoleToSubAccount(AssignSubAccountRole command)

View File

@@ -597,7 +597,7 @@ public class TaskApplication : ITaskApplication
} }
assign.AcceptTimeRequest(); assign.AcceptTimeRequest();
message = string.IsNullOrWhiteSpace(message) ? "درخواست شما مورد تایید قرار گرفت" : message; message = string.IsNullOrWhiteSpace(message) ? "درخواست شما مورد تایید قرار گرفت" : message;
var messageEntity = new TaskMessage(message, "تایید درخواست مهلت", assign.id); var messageEntity = new TaskMessage(message, "تایید درخواست مهلت", assign.id);
@@ -622,7 +622,6 @@ public class TaskApplication : ITaskApplication
{ {
return operation.Failed("چنین وظیفه ای درخواستی برای مهلت ندارد"); return operation.Failed("چنین وظیفه ای درخواستی برای مهلت ندارد");
} }
assign.RejectTimeRequest(); assign.RejectTimeRequest();
if (assign.EndTaskDate.Date <= DateTime.Now.Date) if (assign.EndTaskDate.Date <= DateTime.Now.Date)
{ {

View File

@@ -27,8 +27,6 @@ namespace AccountManagement.Domain.AccountAgg
List<AccountViewModel> GetAccountEqualToLowerPositionValue(); List<AccountViewModel> GetAccountEqualToLowerPositionValue();
AccountViewModel GetAccountViewModel(long id); AccountViewModel GetAccountViewModel(long id);
List<AccountViewModel> GetAccountsDeactivePositionValue(long Positionid); List<AccountViewModel> GetAccountsDeactivePositionValue(long Positionid);
Task<List<AccountSelectListViewModel>> GetAdminSelectList();
#endregion #endregion
List<AccountViewModel> GetAdminAccountsNew(); List<AccountViewModel> GetAdminAccountsNew();

View File

@@ -71,16 +71,14 @@ public class Assign : EntityBase
public void AcceptTimeRequest() public void AcceptTimeRequest()
{ {
ClearRequests(); TimeRequest = false;
TimeRequest = false;
AcceptedTimeRequest++; AcceptedTimeRequest++;
EndTaskDate = RequestDate < DateTime.Today ? DateTime.Today : RequestDate.Value; EndTaskDate = RequestDate < DateTime.Today ? DateTime.Today : RequestDate.Value;
} }
public void RejectTimeRequest() public void RejectTimeRequest()
{ {
ClearRequests(); TimeRequest = false;
TimeRequest = false;
TimeRequestDescription = null; TimeRequestDescription = null;
RequestDate = null; RequestDate = null;
} }
@@ -94,36 +92,31 @@ public class Assign : EntityBase
} }
public void AcceptCancelRequest() public void AcceptCancelRequest()
{ {
ClearRequests(); IsCanceledRequest = false;
IsCanceledRequest = false;
IsCancel = true; IsCancel = true;
} }
public void RejectCancel() public void RejectCancel()
{ {
ClearRequests(); CancelDescription = null;
CancelDescription = null;
IsCanceledRequest = false; IsCanceledRequest = false;
} }
public void CompleteRequest(string? doneDescription) public void CompleteRequest(string? doneDescription)
{ {
ClearRequests(); DoneDescription = doneDescription;
DoneDescription = doneDescription;
IsDoneRequest = true; IsDoneRequest = true;
} }
public void RejectCompleteRequest() public void RejectCompleteRequest()
{ {
ClearRequests(); IsDoneRequest = false;
IsDoneRequest = false;
DoneDescription = null; DoneDescription = null;
} }
public void Completed() public void Completed()
{ {
ClearRequests(); IsDoneRequest = false;
IsDoneRequest = false;
IsDone = true; IsDone = true;
} }
@@ -135,13 +128,6 @@ public class Assign : EntityBase
TimeRequest = false; TimeRequest = false;
} }
public void ClearRequests()
{
IsDoneRequest = false;
IsCanceledRequest = false;
TimeRequest = false;
}
public void InsertNewData(DateTime endTaskDate,bool timeRequest,int acceptedTimeRequest,DateTime? requestDate, string timeRequestDescription, bool isCanceledRequest, public void InsertNewData(DateTime endTaskDate,bool timeRequest,int acceptedTimeRequest,DateTime? requestDate, string timeRequestDescription, bool isCanceledRequest,
bool isCancel,string cancelDescription,bool isDone,bool isDoneRequest,string? doneDescription) bool isCancel,string cancelDescription,bool isDone,bool isDoneRequest,string? doneDescription)
{ {

View File

@@ -1,15 +1,12 @@
using System.Collections.Generic; using System.Collections.Generic;
using _0_Framework.Application;
using _0_Framework.Domain; using _0_Framework.Domain;
using AccountManagement.Application.Contracts.Media; using AccountManagement.Application.Contracts.Media;
using Microsoft.AspNetCore.Http;
namespace AccountManagement.Domain.MediaAgg; namespace AccountManagement.Domain.MediaAgg;
public interface IMediaRepository : IRepository<long, Media> public interface IMediaRepository:IRepository<long,Media>
{ {
public string BasePath { get; protected set; }
void CreateMediaWithTaskMedia(long taskId, long mediaId); void CreateMediaWithTaskMedia(long taskId, long mediaId);
List<MediaViewModel> GetMediaByTaskId(long taskId); List<MediaViewModel> GetMediaByTaskId(long taskId);
void Remove(long id); void Remove(long id);
@@ -26,6 +23,4 @@ public interface IMediaRepository : IRepository<long, Media>
#endregion #endregion
OperationResult UploadFile(IFormFile file, string fileLabel, string relativePath, int maximumFileLength,
List<string> allowedExtensions, string category);
} }

View File

@@ -2,7 +2,6 @@
using _0_Framework.Domain; using _0_Framework.Domain;
using AccountManagement.Application.Contracts.SubAccount; using AccountManagement.Application.Contracts.SubAccount;
using System.Collections.Generic; using System.Collections.Generic;
using System.Collections.Specialized;
namespace AccountManagement.Domain.SubAccountAgg namespace AccountManagement.Domain.SubAccountAgg
{ {
@@ -14,6 +13,5 @@ namespace AccountManagement.Domain.SubAccountAgg
SubAccount GetDetails(long subAccountId); SubAccount GetDetails(long subAccountId);
SubAccount GetBy(string commandUsername); SubAccount GetBy(string commandUsername);
SubAccountViewModel GetByVerifyCodeAndPhoneNumber(string code, string phone); SubAccountViewModel GetByVerifyCodeAndPhoneNumber(string code, string phone);
List<SubAccount> GetBySubAccountRole(long subAccountRoleId);
} }
} }

View File

@@ -13,21 +13,17 @@ namespace AccountManagement.Domain.SubAccountRoleAgg
public List<SubAccountRolePermission> RolePermissions { get; private set; } public List<SubAccountRolePermission> RolePermissions { get; private set; }
public List<SubAccount> SubAccounts { get; private set; } public List<SubAccount> SubAccounts { get; private set; }
public List<SubAccountRoleWorkshop> RoleWorkshops { get; set; }
private SubAccountRole() private SubAccountRole()
{ {
} }
public SubAccountRole(string title, List<int> permissions, long accountId, List<long> workshopIds) public SubAccountRole(string title, List<int> permissions, long accountId)
{ {
Title = title; Title = title;
RolePermissions = permissions.Select(x => new SubAccountRolePermission(x, id)).ToList(); RolePermissions = permissions.Select(x => new SubAccountRolePermission(x, id)).ToList();
AccountId = accountId; AccountId = accountId;
RoleWorkshops = workshopIds.Select(x => new SubAccountRoleWorkshop(x, id)).ToList();
} }
public void ChangeTitle(string title) public void ChangeTitle(string title)
{ {
Title = title; Title = title;
@@ -36,12 +32,10 @@ namespace AccountManagement.Domain.SubAccountRoleAgg
{ {
RolePermissions.AddRange(permissionIds.Select(x => new SubAccountRolePermission(x, id))); RolePermissions.AddRange(permissionIds.Select(x => new SubAccountRolePermission(x, id)));
} }
public void Edit(string title, List<int> permissions,List<long> workshopIds) public void Edit(string title, List<int> permissions)
{ {
Title = title; Title = title;
RolePermissions = permissions.Select(x => new SubAccountRolePermission(x, id)).ToList(); RolePermissions = permissions.Select(x => new SubAccountRolePermission(x, id)).ToList();
RoleWorkshops = workshopIds.Select(x => new SubAccountRoleWorkshop(x, id)).ToList(); }
}
}
}
} }

View File

@@ -1,16 +0,0 @@
using _0_Framework.Domain;
namespace AccountManagement.Domain.SubAccountRoleAgg;
public class SubAccountRoleWorkshop:EntityBase
{
public SubAccountRoleWorkshop(long workshopId, long subAccountId)
{
WorkshopId = workshopId;
SubAccountId = subAccountId;
}
public long WorkshopId { get; set; }
public long SubAccountId { get; set; }
public SubAccountRole SubAccountRole { get; set; }
}

View File

@@ -16,7 +16,7 @@ public class TaskSchedule:EntityBase
UnitType = unitType; UnitType = unitType;
UnitNumber = unitNumber; UnitNumber = unitNumber;
LastEndTaskDate = lastEndTaskDate; LastEndTaskDate = lastEndTaskDate;
IsActive = IsActive.True; IsActive = IsActive.False;
} }
public string Count { get; private set; } public string Count { get; private set; }
public TaskScheduleType Type { get; private set; } public TaskScheduleType Type { get; private set; }

View File

@@ -21,10 +21,6 @@ namespace AccountMangement.Infrastructure.EFCore.Mappings
opt.WithOwner(x => x.SubAccountRole); opt.WithOwner(x => x.SubAccountRole);
}); });
builder.OwnsMany(x => x.RoleWorkshops, roleWorkshop =>
{
roleWorkshop.WithOwner(x => x.SubAccountRole).HasForeignKey(x => x.SubAccountId);
});
} }
} }
} }

View File

@@ -1,43 +0,0 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace AccountMangement.Infrastructure.EFCore.Migrations
{
/// <inheritdoc />
public partial class addworkshoptosubAccountRole : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "SubAccountRoleWorkshop",
columns: table => new
{
id = table.Column<long>(type: "bigint", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
SubAccountId = table.Column<long>(type: "bigint", nullable: false),
WorkshopId = table.Column<long>(type: "bigint", nullable: false),
CreationDate = table.Column<DateTime>(type: "datetime2", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_SubAccountRoleWorkshop", x => new { x.SubAccountId, x.id });
table.ForeignKey(
name: "FK_SubAccountRoleWorkshop_SubAccountRoles_SubAccountId",
column: x => x.SubAccountId,
principalTable: "SubAccountRoles",
principalColumn: "id",
onDelete: ReferentialAction.Cascade);
});
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "SubAccountRoleWorkshop");
}
}
}

View File

@@ -1078,33 +1078,6 @@ namespace AccountMangement.Infrastructure.EFCore.Migrations
modelBuilder.Entity("AccountManagement.Domain.SubAccountRoleAgg.SubAccountRole", b => modelBuilder.Entity("AccountManagement.Domain.SubAccountRoleAgg.SubAccountRole", b =>
{ {
b.OwnsMany("AccountManagement.Domain.SubAccountRoleAgg.SubAccountRoleWorkshop", "RoleWorkshops", b1 =>
{
b1.Property<long>("SubAccountId")
.HasColumnType("bigint");
b1.Property<long>("id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property<long>("id"));
b1.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b1.Property<long>("WorkshopId")
.HasColumnType("bigint");
b1.HasKey("SubAccountId", "id");
b1.ToTable("SubAccountRoleWorkshop");
b1.WithOwner("SubAccountRole")
.HasForeignKey("SubAccountId");
b1.Navigation("SubAccountRole");
});
b.OwnsMany("AccountManagement.Domain.SubAccountRoleAgg.SubAccountRolePermission", "RolePermissions", b1 => b.OwnsMany("AccountManagement.Domain.SubAccountRoleAgg.SubAccountRolePermission", "RolePermissions", b1 =>
{ {
b1.Property<long>("id") b1.Property<long>("id")
@@ -1132,8 +1105,6 @@ namespace AccountMangement.Infrastructure.EFCore.Migrations
}); });
b.Navigation("RolePermissions"); b.Navigation("RolePermissions");
b.Navigation("RoleWorkshops");
}); });
modelBuilder.Entity("AccountManagement.Domain.TaskAgg.Tasks", b => modelBuilder.Entity("AccountManagement.Domain.TaskAgg.Tasks", b =>

View File

@@ -312,17 +312,6 @@ public class AccountRepository : RepositoryBase<long, Account>, IAccountReposito
IsActiveString = x.IsActive ? "true" : "false", IsActiveString = x.IsActive ? "true" : "false",
}).ToList(); }).ToList();
} }
public async Task<List<AccountSelectListViewModel>> GetAdminSelectList()
{
return await _context.Accounts.Where(x => x.AdminAreaPermission == "true").Select(x => new AccountSelectListViewModel()
{
Id = x.id,
Name = x.Fullname,
RoleId = x.RoleId
}).ToListAsync();
}
//public List<AccountViewModel> GetAdminAccounts() //public List<AccountViewModel> GetAdminAccounts()
//{ //{
// return _context.Accounts.Where(x=>x.AdminAreaPermission == "true" && x.IsActiveString == "true").Select(x => new AccountViewModel() // return _context.Accounts.Where(x=>x.AdminAreaPermission == "true" && x.IsActiveString == "true").Select(x => new AccountViewModel()

View File

@@ -1,8 +1,5 @@
using System; using System.Collections.Generic;
using System.Collections.Generic;
using System.IO;
using System.Linq; using System.Linq;
using _0_Framework.Application;
using _0_Framework.InfraStructure; using _0_Framework.InfraStructure;
using AccountManagement.Application.Contracts.Media; using AccountManagement.Application.Contracts.Media;
using AccountManagement.Domain.AdminResponseMediaAgg; using AccountManagement.Domain.AdminResponseMediaAgg;
@@ -10,35 +7,27 @@ using AccountManagement.Domain.ClientResponseMediaAgg;
using AccountManagement.Domain.MediaAgg; using AccountManagement.Domain.MediaAgg;
using AccountManagement.Domain.TaskMediaAgg; using AccountManagement.Domain.TaskMediaAgg;
using AccountManagement.Domain.TicketMediasAgg; using AccountManagement.Domain.TicketMediasAgg;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace AccountMangement.Infrastructure.EFCore.Repository; namespace AccountMangement.Infrastructure.EFCore.Repository;
public class MediaRepository : RepositoryBase<long, Media>, IMediaRepository public class MediaRepository:RepositoryBase<long,Media>,IMediaRepository
{ {
private const string _basePath = "Storage/Medias";
public string BasePath { get; set; }
private readonly AccountContext _accountContext; private readonly AccountContext _accountContext;
public MediaRepository(AccountContext taskManagerContext, IWebHostEnvironment webHostEnvironment) : base(taskManagerContext) public MediaRepository( AccountContext taskManagerContext) : base(taskManagerContext)
{ {
_accountContext = taskManagerContext; _accountContext = taskManagerContext;
BasePath = webHostEnvironment.ContentRootPath + "/Storage";
} }
//ساخت جدول واسط بین مدیا و نسک //ساخت جدول واسط بین مدیا و نسک
//نکته: این متد ذخیره انجام نمیدهد //نکته: این متد ذخیره انجام نمیدهد
public void CreateMediaWithTaskMedia(long taskId, long mediaId) public void CreateMediaWithTaskMedia(long taskId, long mediaId)
{ {
var Taskmedias = new TaskMedia(taskId, mediaId); var Taskmedias = new TaskMedia(taskId,mediaId);
_accountContext.Add(Taskmedias); _accountContext.Add(Taskmedias);
} }
public void Remove(long id) public void Remove(long id)
{ {
var media = Get(id); var media = Get(id);
Remove(media); Remove(media);
} }
@@ -88,48 +77,6 @@ public class MediaRepository : RepositoryBase<long, Media>, IMediaRepository
{ {
return _accountContext.Medias.Where(x => mediaIds.Contains(x.id)).ToList(); return _accountContext.Medias.Where(x => mediaIds.Contains(x.id)).ToList();
} }
public OperationResult UploadFile(IFormFile file, string fileLabel, string relativePath, int maximumFileLength,
List<string> allowedExtensions, string category)
{
OperationResult op = new();
var path = Path.Combine(_basePath, relativePath);
var fileExtension = Path.GetExtension(file.FileName);
if (file == null || file.Length == 0)
return op.Failed("خطای سیستمی");
if (file.Length > (maximumFileLength * 1024 * 1024))
return op.Failed($"حجم فایل نمی تواند بیشتر از " +
$"{maximumFileLength}" +
$"مگابایت باشد");
if (!allowedExtensions.Contains(fileExtension.ToLower()))
{
var operationMessage = ":فرمت فایل باید یکی از موارد زیر باشد";
operationMessage += "\n";
operationMessage += string.Join(" ", allowedExtensions);
return op.Failed(operationMessage);
}
Directory.CreateDirectory(path);
var extension = Path.GetExtension(file.FileName);
var uniqueFileName = $"{fileLabel}-{DateTime.Now.Ticks}{extension}";
var filePath = Path.Combine(path, uniqueFileName);
using (var fileStream = new FileStream(filePath, FileMode.CreateNew))
{
file.CopyTo(fileStream);
}
var mediaEntity = new Media(filePath, extension, "فایل", category);
Create(mediaEntity);
SaveChanges();
return op.Succcedded(mediaEntity.id);
}
} }
#endregion #endregion

View File

@@ -77,10 +77,5 @@ namespace AccountMangement.Infrastructure.EFCore.Repository
Username = entity.Username Username = entity.Username
}; };
} }
public List<SubAccount> GetBySubAccountRole(long subAccountRoleId)
{
return _context.SubAccounts.Where(x => x.SubAccountRoleId == subAccountRoleId).ToList();
}
} }
} }

View File

@@ -106,16 +106,14 @@ public class TaskRepository : RepositoryBase<long, Tasks>, ITaskRepository
{ {
res.EndTaskDate = _accountContext.Assigns.First(a => a.TaskId == res.Id && a.AssignedId == userId) res.EndTaskDate = _accountContext.Assigns.First(a => a.TaskId == res.Id && a.AssignedId == userId)
.EndTaskDate.ToFarsi(); .EndTaskDate.ToFarsi();
var userAssign = res.AssignViewModels.First(x => x.AssignedId == userId);
res.AssignViewModels = res.AssignViewModels.Where(x => x.AssignedId == userId).ToList(); res.AssignViewModels = res.AssignViewModels.Where(x => x.AssignedId == userId).ToList();
res.IsDone = userAssign.IsDone; res.IsDone = res.AssignViewModels.First(x => x.AssignedId == userId).IsDone;
res.IsCancel = userAssign.IsCancel; res.IsCancel = res.AssignViewModels.First(x => x.AssignedId == userId).IsCancel;
res.HasRequest = userAssign.IsCanceledRequest || userAssign.TimeRequest ||
userAssign.IsDoneRequest;
} }
if (res.TaskScheduleId > 0) if (res.TaskScheduleId>0)
{ {
var taskSchedule = _accountContext.TaskSchedules.FirstOrDefault(x => x.id == res.TaskScheduleId); var taskSchedule = _accountContext.TaskSchedules.FirstOrDefault(x => x.id == res.TaskScheduleId);
@@ -123,7 +121,7 @@ public class TaskRepository : RepositoryBase<long, Tasks>, ITaskRepository
res.ScheduleType = taskSchedule.Type; res.ScheduleType = taskSchedule.Type;
res.ScheduleCount = taskSchedule.Count; res.ScheduleCount = taskSchedule.Count;
res.ScheduleUnitNumber = taskSchedule.UnitNumber; res.ScheduleUnitNumber = taskSchedule.UnitNumber;
} }
//_accountContext.Tasks.Where(x => x.id == TaskId).Select(x => new EditTask() //_accountContext.Tasks.Where(x => x.id == TaskId).Select(x => new EditTask()
@@ -162,6 +160,8 @@ public class TaskRepository : RepositoryBase<long, Tasks>, ITaskRepository
Remove(task); Remove(task);
} }
public List<TaskViewModel> GetRequestedTasks(TaskSearchModel searchModel) public List<TaskViewModel> GetRequestedTasks(TaskSearchModel searchModel)
{ {
var accountId = long.Parse(_contextAccessor.HttpContext.User.FindFirst("AccountId").Value); var accountId = long.Parse(_contextAccessor.HttpContext.User.FindFirst("AccountId").Value);
@@ -900,7 +900,7 @@ public class TaskRepository : RepositoryBase<long, Tasks>, ITaskRepository
AcceptedTimeRequest = x.AcceptedTimeRequest, AcceptedTimeRequest = x.AcceptedTimeRequest,
IsCancelRequest = x.IsCancelRequest, IsCancelRequest = x.IsCancelRequest,
ContractingPartyName = x.ContractingPartyName, ContractingPartyName = x.ContractingPartyName,
Color = x.IsDone ? "green" : SetTasksColors(x.EndTaskDateGE, x.IsCancel,false), Color = x.IsDone ? "green" : SetTasksColors(x.EndTaskDateGE, x.IsCancel),
MediaCount = x.MediaCount, MediaCount = x.MediaCount,
HasAttachment = x.MediaCount > 0, HasAttachment = x.MediaCount > 0,
SelfName = x.SelfName, SelfName = x.SelfName,
@@ -1229,7 +1229,7 @@ public class TaskRepository : RepositoryBase<long, Tasks>, ITaskRepository
AcceptedTimeRequest = x.AcceptedTimeRequest, AcceptedTimeRequest = x.AcceptedTimeRequest,
IsCancelRequest = x.IsCancelRequest, IsCancelRequest = x.IsCancelRequest,
ContractingPartyName = x.ContractingPartyName, ContractingPartyName = x.ContractingPartyName,
Color = x.IsDone ? "green" : SetTasksColors(x.EndTaskDateGE, x.IsCancel, false), Color = x.IsDone ? "green" : SetTasksColors(x.EndTaskDateGE, x.IsCancel),
MediaCount = x.MediaCount, MediaCount = x.MediaCount,
HasAttachment = x.MediaCount > 0, HasAttachment = x.MediaCount > 0,
SelfName = x.SelfName, SelfName = x.SelfName,
@@ -1788,7 +1788,7 @@ public class TaskRepository : RepositoryBase<long, Tasks>, ITaskRepository
AcceptedTimeRequest = x.AcceptedTimeRequest, AcceptedTimeRequest = x.AcceptedTimeRequest,
IsCancelRequest = x.IsCancelRequest, IsCancelRequest = x.IsCancelRequest,
ContractingPartyName = x.ContractingPartyName, ContractingPartyName = x.ContractingPartyName,
Color = x.IsDone ? "green" : SetTasksColors(x.EndTaskDateGE, x.IsCancel, false), Color = x.IsDone ? "green" : SetTasksColors(x.EndTaskDateGE, x.IsCancel),
MediaCount = x.MediaCount, MediaCount = x.MediaCount,
HasAttachment = x.MediaCount > 0, HasAttachment = x.MediaCount > 0,
SelfName = x.SelfName, SelfName = x.SelfName,
@@ -1866,7 +1866,7 @@ public class TaskRepository : RepositoryBase<long, Tasks>, ITaskRepository
.Include(x => x.Task).ThenInclude(x => x.TaskSchedule) .Include(x => x.Task).ThenInclude(x => x.TaskSchedule)
.Where(x => .Where(x =>
x.Task.IsActiveString == "true" && x.Task.SenderId == accountId x.Task.IsActiveString == "true" && x.Task.SenderId == accountId
&& x.Task.TaskScheduleId != null && x.Task.TaskScheduleId > 0 && (!x.IsCanceledRequest && !x.TimeRequest && !x.IsDoneRequest) && x.Task.TaskSchedule.IsActive== IsActive.True); && x.Task.TaskScheduleId != null && x.Task.TaskScheduleId > 0 && (!x.IsCanceledRequest && !x.TimeRequest && !x.IsDoneRequest) && x.Task.TaskSchedule.IsActive == IsActive.True);
if (!string.IsNullOrWhiteSpace(searchModel.GeneralSearch)) if (!string.IsNullOrWhiteSpace(searchModel.GeneralSearch))
{ {
raw = raw.Where(x => raw = raw.Where(x =>
@@ -2056,7 +2056,7 @@ public class TaskRepository : RepositoryBase<long, Tasks>, ITaskRepository
TaskScheduleId = x.TaskScheduleId TaskScheduleId = x.TaskScheduleId
}).ToList(); }).ToList();
final = final.Select(x => new TaskViewModel() final = final.Select(x => new TaskViewModel()
@@ -2082,7 +2082,7 @@ public class TaskRepository : RepositoryBase<long, Tasks>, ITaskRepository
AcceptedTimeRequest = x.AcceptedTimeRequest, AcceptedTimeRequest = x.AcceptedTimeRequest,
IsCancelRequest = x.IsCancelRequest, IsCancelRequest = x.IsCancelRequest,
ContractingPartyName = x.ContractingPartyName, ContractingPartyName = x.ContractingPartyName,
Color = x.IsDone ? "green" : SetTasksColors(x.EndTaskDateGE, x.IsCancel, false), Color = x.IsDone ? "green" : SetTasksColors(x.EndTaskDateGE, x.IsCancel),
MediaCount = x.MediaCount, MediaCount = x.MediaCount,
HasAttachment = x.MediaCount > 0, HasAttachment = x.MediaCount > 0,
SelfName = x.SelfName, SelfName = x.SelfName,
@@ -2095,7 +2095,7 @@ public class TaskRepository : RepositoryBase<long, Tasks>, ITaskRepository
ScheduleUnitType = x.ScheduleUnitType, ScheduleUnitType = x.ScheduleUnitType,
TaskScheduleId = x.TaskScheduleId TaskScheduleId = x.TaskScheduleId
}).ToList(); }).ToList();
final = final.Select(x => new TaskViewModel() final = final.Select(x => new TaskViewModel()
{ {
@@ -2149,15 +2149,12 @@ public class TaskRepository : RepositoryBase<long, Tasks>, ITaskRepository
ScheduleUnitType = x.ScheduleUnitType, ScheduleUnitType = x.ScheduleUnitType,
TaskScheduleId = x.TaskScheduleId TaskScheduleId = x.TaskScheduleId
}).ToList(); }).ToList();
return final; return final;
} }
public string SetTasksColors(DateTime date, bool isCancel,bool hasRequest) public string SetTasksColors(DateTime date, bool isCancel)
{ {
if (hasRequest)
return "red";
if (isCancel) if (isCancel)
{ {
//return "brown"; //return "brown";
@@ -2393,7 +2390,7 @@ public class TaskRepository : RepositoryBase<long, Tasks>, ITaskRepository
public List<Tasks> GetTasksByTaskScheduleId(long taskScheduleId) public List<Tasks> GetTasksByTaskScheduleId(long taskScheduleId)
{ {
return _accountContext.Tasks.Include(x => x.Assigns).Where(x => x.TaskScheduleId != null && x.TaskScheduleId == taskScheduleId).ToList(); return _accountContext.Tasks.Include(x=>x.Assigns).Where(x => x.TaskScheduleId != null && x.TaskScheduleId == taskScheduleId).ToList();
} }
@@ -2661,7 +2658,7 @@ public class TaskRepository : RepositoryBase<long, Tasks>, ITaskRepository
AcceptedTimeRequest = x.AcceptedTimeRequest, AcceptedTimeRequest = x.AcceptedTimeRequest,
IsCancelRequest = x.IsCancelRequest, IsCancelRequest = x.IsCancelRequest,
ContractingPartyName = x.ContractingPartyName, ContractingPartyName = x.ContractingPartyName,
Color = x.IsDone ? "green" : SetTasksColors(x.EndTaskDateGE, x.IsCancel, false), Color = x.IsDone ? "green" : SetTasksColors(x.EndTaskDateGE, x.IsCancel),
MediaCount = x.MediaCount, MediaCount = x.MediaCount,
HasAttachment = x.MediaCount > 0, HasAttachment = x.MediaCount > 0,
SelfName = x.SelfName, SelfName = x.SelfName,
@@ -2725,7 +2722,6 @@ public class TaskRepository : RepositoryBase<long, Tasks>, ITaskRepository
{ {
var accountId = long.Parse(_contextAccessor.HttpContext.User.FindFirst("AccountId").Value); var accountId = long.Parse(_contextAccessor.HttpContext.User.FindFirst("AccountId").Value);
var positionValue = int.Parse(_contextAccessor.HttpContext.User.FindFirst("PositionValue").Value); var positionValue = int.Parse(_contextAccessor.HttpContext.User.FindFirst("PositionValue").Value);
var today = DateTime.Today;
var emptyAcc = new AccountViewModel() var emptyAcc = new AccountViewModel()
{ {
Fullname = "-", Fullname = "-",
@@ -2735,7 +2731,7 @@ public class TaskRepository : RepositoryBase<long, Tasks>, ITaskRepository
var raw = _accountContext.Assigns.Include(x => x.Task).ThenInclude(x => x.TaskMedias) var raw = _accountContext.Assigns.Include(x => x.Task).ThenInclude(x => x.TaskMedias)
.ThenInclude(x => x.Media) .ThenInclude(x => x.Media)
.Where(x => .Where(x =>
x.Task.IsActiveString == "true" && x.AssignedId == accountId && x.Task.TicketId == null &&!x.IsDoneRequest && !x.IsCanceledRequest); x.Task.IsActiveString == "true" && x.AssignedId == accountId && (!x.IsCanceledRequest && !x.TimeRequest && !x.IsDoneRequest) && x.Task.TicketId == null);
if (!string.IsNullOrWhiteSpace(searchModel.GeneralSearch)) if (!string.IsNullOrWhiteSpace(searchModel.GeneralSearch))
{ {
raw = raw.Where(x => raw = raw.Where(x =>
@@ -2768,7 +2764,6 @@ public class TaskRepository : RepositoryBase<long, Tasks>, ITaskRepository
MediaCount = _accountContext.TaskMedias.Count(m => m.TaskId == x.Task.id), MediaCount = _accountContext.TaskMedias.Count(m => m.TaskId == x.Task.id),
Description = x.Task.Description, Description = x.Task.Description,
IsDoneRequest = x.IsDoneRequest, IsDoneRequest = x.IsDoneRequest,
}); });
if (!string.IsNullOrWhiteSpace(searchModel.GeneralSearch)) if (!string.IsNullOrWhiteSpace(searchModel.GeneralSearch))
{ {
@@ -2807,8 +2802,7 @@ public class TaskRepository : RepositoryBase<long, Tasks>, ITaskRepository
ContractingPartyName = x.ContractingPartyName, ContractingPartyName = x.ContractingPartyName,
MediaCount = x.MediaCount, MediaCount = x.MediaCount,
Description = x.Description, Description = x.Description,
IsDoneRequest = x.IsDoneRequest, IsDoneRequest = x.IsDoneRequest
HasRequest = x.IsCancelRequest || x.RequestTime || x.IsDoneRequest
}); });
if (!string.IsNullOrWhiteSpace(searchModel.StartDate) && !string.IsNullOrWhiteSpace(searchModel.EndDate)) if (!string.IsNullOrWhiteSpace(searchModel.StartDate) && !string.IsNullOrWhiteSpace(searchModel.EndDate))
{ {
@@ -2877,10 +2871,8 @@ public class TaskRepository : RepositoryBase<long, Tasks>, ITaskRepository
} }
var orderResult = result.OrderBy(x => x.IsDone || x.IsCancel) var orderResult = result.OrderByDescending(x => x.IsCancel ? 0 : 1).ThenBy(x => x.IsDone ? 1 : 0)
.ThenByDescending(x => x.EndTaskDateGE <= today.AddDays(1) && !x.RequestTime) .ThenBy(x => x.EndTaskDateGE);
.ThenByDescending(x => x.RequestTime)
.ThenBy(x => x.EndTaskDateGE); // مرتب‌سازی داخلی بر اساس تاریخ
var final = orderResult.Skip(searchModel.PageIndex).Take(30).ToList(); var final = orderResult.Skip(searchModel.PageIndex).Take(30).ToList();
@@ -2914,7 +2906,7 @@ public class TaskRepository : RepositoryBase<long, Tasks>, ITaskRepository
MediaCount = x.MediaCount, MediaCount = x.MediaCount,
SelfName = x.SelfName, SelfName = x.SelfName,
Description = x.Description, Description = x.Description,
IsDoneRequest = x.IsDoneRequest, IsDoneRequest = x.IsDoneRequest
}).ToList(); }).ToList();
@@ -2942,7 +2934,7 @@ public class TaskRepository : RepositoryBase<long, Tasks>, ITaskRepository
AcceptedTimeRequest = x.AcceptedTimeRequest, AcceptedTimeRequest = x.AcceptedTimeRequest,
IsCancelRequest = x.IsCancelRequest, IsCancelRequest = x.IsCancelRequest,
ContractingPartyName = x.ContractingPartyName, ContractingPartyName = x.ContractingPartyName,
Color = x.IsDone ? "green" : SetTasksColors(x.EndTaskDateGE, x.IsCancel,x.RequestTime), Color = x.IsDone ? "green" : SetTasksColors(x.EndTaskDateGE, x.IsCancel),
MediaCount = x.MediaCount, MediaCount = x.MediaCount,
HasAttachment = x.MediaCount > 0, HasAttachment = x.MediaCount > 0,
SelfName = x.SelfName, SelfName = x.SelfName,
@@ -3001,8 +2993,6 @@ public class TaskRepository : RepositoryBase<long, Tasks>, ITaskRepository
AssignedName = "-", AssignedName = "-",
AssignedPositionValue = 0 AssignedPositionValue = 0
}, },
HasRequest = x.IsCancelRequest || x.RequestTime || x.IsDoneRequest
}).ToList(); }).ToList();
return final; return final;
} }

View File

@@ -3,26 +3,25 @@ using System.Threading.Tasks;
using _0_Framework.Application; using _0_Framework.Application;
using _0_Framework.InfraStructure; using _0_Framework.InfraStructure;
using AccountManagement.Application.Contracts.Media; using AccountManagement.Application.Contracts.Media;
using AccountManagement.Application.Contracts.Task;
using AccountManagement.Application.Contracts.TaskSchedule; using AccountManagement.Application.Contracts.TaskSchedule;
using AccountManagement.Domain.TaskScheduleAgg; using AccountManagement.Domain.TaskScheduleAgg;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace AccountMangement.Infrastructure.EFCore.Repository; namespace AccountMangement.Infrastructure.EFCore.Repository;
public class TaskScheduleRepository : RepositoryBase<long, TaskSchedule>, ITaskScheduleRepository public class TaskScheduleRepository: RepositoryBase<long, TaskSchedule>, ITaskScheduleRepository
{ {
private readonly AccountContext _accountContext; private readonly AccountContext _accountContext;
public TaskScheduleRepository(AccountContext accountContext) : base(accountContext) public TaskScheduleRepository(AccountContext accountContext):base(accountContext)
{ {
_accountContext = accountContext; _accountContext = accountContext;
} }
public async Task<TaskScheduleDetailsViewModel> GetDetails(long id) public async Task<TaskScheduleDetailsViewModel> GetDetails(long id)
{ {
var taskSchedule = await _accountContext.TaskSchedules.Include(x => x.TasksList).ThenInclude(x => x.Assigns) var taskSchedule=await _accountContext.TaskSchedules.Include(x=>x.TasksList).ThenInclude(x=>x.Assigns)
.Include(x => x.TasksList).ThenInclude(x => x.TaskMedias).ThenInclude(x => x.Media).FirstOrDefaultAsync(x => x.id == id); .Include(x=>x.TasksList).ThenInclude(x=>x.TaskMedias).ThenInclude(x=>x.Media).FirstOrDefaultAsync(x => x.id == id);
if (taskSchedule == null) if (taskSchedule == null)
{ {
return null; return null;
@@ -30,7 +29,7 @@ public class TaskScheduleRepository : RepositoryBase<long, TaskSchedule>, ITaskS
var firstTaskDetails = taskSchedule.TasksList.First(); var firstTaskDetails = taskSchedule.TasksList.First();
var firstTimeAssigns = firstTaskDetails.Assigns.Where(x => x.FirstTimeCreation).ToList(); var firstTimeAssigns = firstTaskDetails.Assigns.Where(x=>x.FirstTimeCreation).ToList();
var assignedIds = firstTimeAssigns.Select(x => x.AssignedId).ToList(); var assignedIds = firstTimeAssigns.Select(x => x.AssignedId).ToList();
@@ -47,15 +46,13 @@ public class TaskScheduleRepository : RepositoryBase<long, TaskSchedule>, ITaskS
Title = firstTaskDetails.Title, Title = firstTaskDetails.Title,
Description = firstTaskDetails.Description, Description = firstTaskDetails.Description,
ContractingPartyName = firstTaskDetails.ContractingPartyName, ContractingPartyName = firstTaskDetails.ContractingPartyName,
AssignedName = assignedAccounts.Select(x => x.Fullname).ToList(), AssignedName = assignedAccounts.Select(x=>x.Fullname).ToList(),
CreationDateFa = firstTaskDetails.CreationDate.ToFarsi(), CreationDateFa = firstTaskDetails.CreationDate.ToFarsi(),
SenderName = sender.Fullname, SenderName = sender.Fullname,
TaskScheduleType = taskSchedule.Type, TaskScheduleType = taskSchedule.Type,
TaskScheduleUnitType = taskSchedule.UnitType, TaskScheduleUnitType = taskSchedule.UnitType,
UnitNumber = taskSchedule.UnitNumber, UnitNumber = taskSchedule.UnitNumber,
Count = taskSchedule.Type == TaskScheduleType.Limited ? taskSchedule.Count : "نامحدود", Medias = firstTaskDetails.TaskMedias.Select(x=> new MediaViewModel()
FirstEndTaskDate = firstTaskDetails.Assigns.FirstOrDefault()?.EndTaskDate.ToFarsi() ?? "",
Medias = firstTaskDetails.TaskMedias.Select(x => new MediaViewModel()
{ {
Category = x.Media.Category, Category = x.Media.Category,
Id = x.MediaId, Id = x.MediaId,

View File

@@ -1,55 +0,0 @@
using System;
using System.IO;
using System.Linq;
using _0_Framework.Domain;
using CompanyManagment.App.Contracts.AdminMonthlyOverview;
using Microsoft.AspNetCore.JsonPatch.Operations;
namespace Company.Domain.AdminMonthlyOverviewAgg;
public class AdminMonthlyOverview:EntityBase
{
public AdminMonthlyOverview(long workshopId, int month, int year, AdminMonthlyOverviewStatus status)
{
WorkshopId = workshopId;
Month = month;
Year = year;
Status = status;
}
public long WorkshopId { get; set; }
public int Month { get; set; }
public int Year { get; set; }
public AdminMonthlyOverviewStatus Status { get; set; }
public void Next()
{
var maxValue = Enum.GetValues(typeof(AdminMonthlyOverviewStatus))
.Cast<AdminMonthlyOverviewStatus>()
.Max();
if (Status >= maxValue)
{
throw new InvalidDataException("تغییر وضعیت وارد شده نامعتبر است");
}
Status += 1;
}
public void Back()
{
var minValue = Enum.GetValues(typeof(AdminMonthlyOverviewStatus))
.Cast<AdminMonthlyOverviewStatus>()
.Min();
if (Status <= minValue)
{
throw new InvalidDataException("تغییر وضعیت وارد شده نامعتبر است");
}
Status -= 1;
}
public void SetStatus(AdminMonthlyOverviewStatus status)
{
Status = status;
}
}

View File

@@ -1,12 +0,0 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using _0_Framework.Domain;
using CompanyManagment.App.Contracts.AdminMonthlyOverview;
namespace Company.Domain.AdminMonthlyOverviewAgg;
public interface IAdminMonthlyOverviewRepository:IRepository<long, AdminMonthlyOverview>
{
Task<List<AdminMonthlyOverviewListViewModel>> GetWorkshopStatus(AdminMonthlyOverviewSearchModel searchModel);
Task<AdminMonthlyOverViewCounterVm> GetCounter(int year, int month, long accountId);
}

View File

@@ -1,10 +1,6 @@
using System; using System;
using System.Collections;
using System.Collections.Generic;
using _0_Framework.Application; using _0_Framework.Application;
using _0_Framework.Domain; using _0_Framework.Domain;
using Company.Domain.CheckoutAgg.ValueObjects;
using Company.Domain.CustomizeCheckoutAgg.ValueObjects;
using Company.Domain.WorkshopAgg; using Company.Domain.WorkshopAgg;
namespace Company.Domain.CheckoutAgg; namespace Company.Domain.CheckoutAgg;
@@ -25,11 +21,7 @@ public class Checkout : EntityBase
double salaryAidDeduction, double absenceDeduction, string sumOfWorkingDays double salaryAidDeduction, double absenceDeduction, string sumOfWorkingDays
, string archiveCode, string personnelCode, , string archiveCode, string personnelCode,
string totalClaims, string totalDeductions, double totalPayment, string signature, double marriedAllowance, bool leaveCheckout, string totalClaims, string totalDeductions, double totalPayment, string signature, double marriedAllowance, bool leaveCheckout,
double creditLeaves, double absencePeriod, double averageHoursPerDay, bool hasRollCall, string overTimeWorkvalue, double creditLeaves, double absencePeriod, double averageHoursPerDay, bool hasRollCall, string overTimeWorkvalue, string overNightWorkValue, string fridayWorkValue, string rotatingShifValue, string absenceValue, string totalDayOfLeaveCompute, string totalDayOfYearsCompute, string totalDayOfBunosesCompute)
string overNightWorkValue, string fridayWorkValue, string rotatingShifValue, string absenceValue,
string totalDayOfLeaveCompute, string totalDayOfYearsCompute, string totalDayOfBunosesCompute,
ICollection<CheckoutLoanInstallment> loanInstallments,
ICollection<CheckoutSalaryAid> salaryAids)
{ {
EmployeeFullName = employeeFullName; EmployeeFullName = employeeFullName;
FathersName = fathersName; FathersName = fathersName;
@@ -86,8 +78,6 @@ public class Checkout : EntityBase
TotalDayOfLeaveCompute = totalDayOfLeaveCompute; TotalDayOfLeaveCompute = totalDayOfLeaveCompute;
TotalDayOfYearsCompute = totalDayOfYearsCompute; TotalDayOfYearsCompute = totalDayOfYearsCompute;
TotalDayOfBunosesCompute = totalDayOfBunosesCompute; TotalDayOfBunosesCompute = totalDayOfBunosesCompute;
LoanInstallments = loanInstallments;
SalaryAids = salaryAids;
} }
public string EmployeeFullName { get; private set; } public string EmployeeFullName { get; private set; }
@@ -191,15 +181,7 @@ public class Checkout : EntityBase
/// </summary> /// </summary>
public string TotalDayOfBunosesCompute { get; private set; } public string TotalDayOfBunosesCompute { get; private set; }
public Workshop Workshop { get; set; }
#region valueObjects
public ICollection<CheckoutLoanInstallment> LoanInstallments { get; set; } = [];
public ICollection<CheckoutSalaryAid> SalaryAids { get; set; } = [];
#endregion
public Workshop Workshop { get; set; }
//public WorkingHours WorkingHours { get; set; } //public WorkingHours WorkingHours { get; set; }
public void Edit(string employeeFullName, string fathersName, string nationalCode, string dateOfBirth, public void Edit(string employeeFullName, string fathersName, string nationalCode, string dateOfBirth,
@@ -296,16 +278,4 @@ public class Checkout : EntityBase
this.TotalDeductions = totalDeductions; this.TotalDeductions = totalDeductions;
this.TotalPayment = totalPayment; this.TotalPayment = totalPayment;
} }
public void SetSalaryAid(ICollection<CheckoutSalaryAid> salaryAids,double salaryAidAmount)
{
SalaryAids = salaryAids;
SalaryAidDeduction = salaryAidAmount;
}
public void SetLoanInstallment(ICollection<CheckoutLoanInstallment> lonaInstallments, double installmentsAmount)
{
LoanInstallments = lonaInstallments;
InstallmentDeduction = installmentsAmount;
}
} }

View File

@@ -22,24 +22,7 @@ public interface ICheckoutRepository : IRepository<long, Checkout>
string year, string month); string year, string month);
EditCheckout GetDetails(long id); EditCheckout GetDetails(long id);
Task CreateCkeckout(Checkout command); void CreateCkeckout(Checkout command);
/// <summary>
/// لود لیست اولیه جهت ایجاد فیش حقوقی
/// </summary>
/// <param name="workshopId"></param>
/// <param name="employeeId"></param>
/// <param name="year"></param>
/// <param name="month"></param>
/// <param name="contractStart"></param>
/// <param name="contractEnd"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
Task<CreateCheckoutListViewModel> GetContractResultToCreateCheckout(long workshopId, long employeeId, string year,
string month,
string contractStart, string contractEnd);
//void CreateCkeckout(Checkout command);
Task<List<CheckoutViewModel>> Search(CheckoutSearchModel searchModel); Task<List<CheckoutViewModel>> Search(CheckoutSearchModel searchModel);

View File

@@ -1,25 +0,0 @@
using _0_Framework.Application;
namespace Company.Domain.CheckoutAgg.ValueObjects;
public class CheckoutLoanInstallment
{
public CheckoutLoanInstallment(string amountForMonth, string month, string year, IsActive isActive, string loanRemaining, string loanAmount, long entityId)
{
AmountForMonth = amountForMonth;
Month = month;
Year = year;
IsActive = isActive;
LoanRemaining = loanRemaining;
LoanAmount = loanAmount;
EntityId = entityId;
}
public string AmountForMonth { get; private set; }
public string Month { get; private set; }
public string Year { get; private set; }
public string LoanRemaining { get; set; }
public IsActive IsActive { get; private set; }
public string LoanAmount { get; set; }
public long EntityId { get; set; }
}

View File

@@ -1,24 +0,0 @@
using System;
using AccountManagement.Domain.AccountAgg;
namespace Company.Domain.CheckoutAgg.ValueObjects;
public class CheckoutSalaryAid
{
public CheckoutSalaryAid(string amount, DateTime salaryAidDateTime, string salaryAidDateTimeFa, DateTime calculationDateTime, string calculationDateTimeFa, long entityId)
{
Amount = amount;
SalaryAidDateTime = salaryAidDateTime;
SalaryAidDateTimeFa = salaryAidDateTimeFa;
CalculationDateTime = calculationDateTime;
CalculationDateTimeFa = calculationDateTimeFa;
EntityId = entityId;
}
public string Amount { get; private set; }
public DateTime SalaryAidDateTime { get; private set; }
public string SalaryAidDateTimeFa { get; private set; }
public DateTime CalculationDateTime { get; private set; }
public string CalculationDateTimeFa { get; private set; }
public long EntityId { get; set; }
}

View File

@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net8.0</TargetFramework> <TargetFramework>net8.0</TargetFramework>
@@ -14,8 +14,4 @@
<ProjectReference Include="..\CompanyManagment.App.Contracts\CompanyManagment.App.Contracts.csproj" /> <ProjectReference Include="..\CompanyManagment.App.Contracts\CompanyManagment.App.Contracts.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Folder Include="CheckoutAgg\ValueObjects\" />
</ItemGroup>
</Project> </Project>

View File

@@ -0,0 +1,26 @@
using _0_Framework.Domain;
namespace Company.Domain.ContactUsAgg;
public class ContactUs:EntityBase
{
public ContactUs(string firstName, string lastName, string email, string phoneNumber, string title, string message)
{
FirstName = firstName.Trim();
LastName = lastName.Trim();
Email = email;
PhoneNumber = phoneNumber;
Title = title;
Message = message;
FullName = FirstName + " " + LastName;
}
public string FirstName { get; private set; }
public string LastName { get; private set; }
public string Email { get; private set; }
public string PhoneNumber { get; private set; }
public string Title { get; private set; }
public string Message { get; private set; }
public string FullName { get; private set; }
}

View File

@@ -0,0 +1,8 @@
using _0_Framework.Domain;
namespace Company.Domain.ContactUsAgg;
public interface IContactUsRepository : IRepository<long, ContactUs>
{
}

View File

@@ -213,60 +213,6 @@ public class CustomizeWorkshopEmployeeSettings : BaseCustomizeEntity
earlyExit.EarlyExitTimeFines.Select(x => new EarlyExitTimeFine(x.Minute, x.FineMoney)) earlyExit.EarlyExitTimeFines.Select(x => new EarlyExitTimeFine(x.Minute, x.FineMoney))
.ToList(), earlyExit.Value); .ToList(), earlyExit.Value);
} }
public void UpdateIsShiftChange()
{
var groupSetting = CustomizeWorkshopGroupSettings;
if (groupSetting == null)
return;
bool isShiftChange;
if (WorkshopShiftStatus == WorkshopShiftStatus.Regular)
{
if (CustomizeWorkshopEmployeeSettingsShifts.All(x => groupSetting.CustomizeWorkshopGroupSettingsShifts.Any(y => x.Equals(y)))
&& WorkshopShiftStatus == groupSetting.WorkshopShiftStatus && FridayWork == groupSetting.FridayWork &&
HolidayWork == groupSetting.HolidayWork && BreakTime == groupSetting.BreakTime)
{
isShiftChange = false;
}
else
{
isShiftChange = true;
}
}
else if (WorkshopShiftStatus == WorkshopShiftStatus.Irregular)
{
if (WorkshopShiftStatus == groupSetting.WorkshopShiftStatus && BreakTime == groupSetting.BreakTime &&
IrregularShift == groupSetting.IrregularShift && FridayWork == groupSetting.FridayWork &&
HolidayWork == groupSetting.HolidayWork)
{
isShiftChange = false;
}
else
{
isShiftChange = true;
}
}
else
{
if (CustomizeRotatingShifts.All(x => groupSetting.CustomizeRotatingShifts.Any(y => x.Equals(y)))
&& WorkshopShiftStatus == groupSetting.WorkshopShiftStatus && FridayWork == groupSetting.FridayWork &&
HolidayWork == groupSetting.HolidayWork && BreakTime == groupSetting.BreakTime)
{
isShiftChange = false;
}
else
{
isShiftChange = true;
}
}
IsShiftChanged = isShiftChange;
}
} }

View File

@@ -219,7 +219,7 @@ public class CustomizeWorkshopGroupSettings : BaseCustomizeEntity
} }
var permittedToOverWrite = CustomizeWorkshopEmployeeSettingsCollection.Where(x => employeeIds.Contains(x.EmployeeId)); var permittedToOverWrite = CustomizeWorkshopEmployeeSettingsCollection.Where(x => employeeIds.Contains(x.id));
foreach (var item in permittedToOverWrite) foreach (var item in permittedToOverWrite)
{ {

View File

@@ -9,83 +9,30 @@ namespace Company.Domain.EmployeeComputeOptionsAgg
{ {
public class EmployeeComputeOptions : EntityBase public class EmployeeComputeOptions : EntityBase
{ {
public EmployeeComputeOptions(long workshopId, long employeeId, string computeOptions, string bonusesOptions, string yearsOptions, public EmployeeComputeOptions(long workshopId, long employeeId, string computeOptions, string bonusesOptions, string yearsOptions)
bool createContract, bool signContract, bool createCheckout, bool signCheckout) {
{ WorkshopId = workshopId;
WorkshopId = workshopId; EmployeeId = employeeId;
EmployeeId = employeeId; ComputeOptions = computeOptions;
ComputeOptions = computeOptions; BonusesOptions = bonusesOptions;
BonusesOptions = bonusesOptions; YearsOptions = yearsOptions;
YearsOptions = yearsOptions; }
SetContractAndCheckoutOptions(createContract, signContract, createCheckout, signCheckout); public long WorkshopId { get; private set;}
} public long EmployeeId { get; private set;}
//نحوه محاسبه مزد مرخصی
public string ComputeOptions { get; private set; }
//نحوه محاسبه عیدی
public string BonusesOptions { get; private set; }
//نحوه محاسبه سنوات
public string YearsOptions { get; private set; }
public void Edit(string computeOptions, string bonusesOptions, string yearsOptions)
public long WorkshopId { get; private set; } {
public long EmployeeId { get; private set; } ComputeOptions = computeOptions;
BonusesOptions = bonusesOptions;
//نحوه محاسبه مزد مرخصی YearsOptions = yearsOptions;
public string ComputeOptions { get; private set; } }
//نحوه محاسبه عیدی }
public string BonusesOptions { get; private set; }
//نحوه محاسبه سنوات
public string YearsOptions { get; private set; }
/// <summary>
/// ایجاد قرارداد
/// </summary>
public bool CreateContract { get; private set; }
/// <summary>
/// امضای قرارداد
/// </summary>
public bool SignContract { get; private set; }
/// <summary>
/// ایجاد تصفیه
/// </summary>
public bool CreateCheckout { get; private set; }
/// <summary>
/// امضای تصفیه
/// </summary>
public bool SignCheckout { get; private set; }
public void Edit(string computeOptions, string bonusesOptions, string yearsOptions, bool createContract, bool signContract, bool createCheckout,
bool signCheckout)
{
ComputeOptions = computeOptions;
BonusesOptions = bonusesOptions;
YearsOptions = yearsOptions;
SetContractAndCheckoutOptions(createContract, signContract, createCheckout, signCheckout);
}
private void SetContractAndCheckoutOptions(bool createContract, bool signContract, bool createCheckout,
bool signCheckout)
{
CreateContract = createContract;
if (createContract)
{
SignContract = signContract;
CreateCheckout = createCheckout;
if (createCheckout)
{
SignCheckout = signCheckout;
}
else
{
SignCheckout = false;
}
}
else
{
SignContract = false;
CreateCheckout = false;
SignCheckout = false;
}
}
}
} }

View File

@@ -25,7 +25,7 @@ public interface IInstitutionContractRepository : IRepository<long, InstitutionC
double GetcontractAmount(int countPerson); double GetcontractAmount(int countPerson);
(string result, string isExpier) ExpColor(DateTime contractEndGr, double contractAmount, string ExpColor(DateTime contractEndGr, double contractAmount,
string isActiveString); string isActiveString);
TotalbalancViewModel TotalBalance(long contractingPartyId); TotalbalancViewModel TotalBalance(long contractingPartyId);

View File

@@ -6,7 +6,6 @@ using System.Threading.Tasks;
using _0_Framework.Application; using _0_Framework.Application;
using _0_Framework.Domain; using _0_Framework.Domain;
using CompanyManagment.App.Contracts.InsuranceJob; using CompanyManagment.App.Contracts.InsuranceJob;
using CompanyManagment.App.Contracts.InsuranceJobItem;
namespace Company.Domain.InsurancJobAgg; namespace Company.Domain.InsurancJobAgg;
@@ -14,16 +13,10 @@ public interface IInsuranceJobRepositpry:IRepository<long, InsuranceJob>
{ {
//OperationResult Create(CreateInsurancJob command); //OperationResult Create(CreateInsurancJob command);
// OperationResult Edit(EditInsurancJob command); // OperationResult Edit(EditInsurancJob command);
EditInsuranceJob GetDetails(long id, string year, string month); EditInsuranceJob GetDetails(long id);
List<InsuranceJobViewModel> GetInsurancJob(); List<InsuranceJobViewModel> GetInsurancJob();
List<InsuranceJobViewModel> Search(InsuranceJobSearchModel searchModel); List<InsuranceJobViewModel> Search(InsuranceJobSearchModel searchModel);
OperationResult CreateInsuranceJob(CreateInsuranceJob command); OperationResult CreateInsuranceJob(CreateInsuranceJob command);
List<(long id, string date)> GetOldYersInsuranceItemIds();
OperationResult CopyFromLastYear(CopyFromLastYearViewModel command);
OperationResult RecoveryOldData1403();
OperationResult Remove(long id); OperationResult Remove(long id);
OperationResult EditInsuranceJob(EditInsuranceJob command); OperationResult EditInsuranceJob(EditInsuranceJob command);
}
}

View File

@@ -14,11 +14,8 @@ public interface IInsuranceJobItemRepositpry : IRepository<long, InsuranceJobIte
{ {
void CreateInsuranceJobItem(InsuranceJobItemViewModel model); void CreateInsuranceJobItem(InsuranceJobItemViewModel model);
DetailsInsuranceJobItem GetDetails(long id); DetailsInsuranceJobItem GetDetails(long id);
List<InsuranceJobItemViewModel> GetInsuranceJobItemByInsuranceJobId(long Id, string year, string month); List<InsuranceJobItemViewModel> GetInsuranceJobItemByInsuranceJobId(long Id);
List<InsuranceJobItemViewModel> Search(InsuranceJobItemSearchModel searchModel); List<InsuranceJobItemViewModel> Search(InsuranceJobItemSearchModel searchModel);
InsuranceJobItemViewModel GetInsuranceJobItemByInsuranceJobIdForFixedSalary(long insuranceJobId, long jobId, InsuranceJobItemViewModel GetInsuranceJobItemByInsuranceJobIdForFixedSalary(long insuranceJobId, long jobId);
string year, string month);
(List<string> workshopList, bool hasAnyWorkshop) GetWorkshopUsedThisInsuranceJob(long insuranceJobId);
} }

View File

@@ -1,5 +1,4 @@
using System; using System.Collections.Generic;
using System.Collections.Generic;
using _0_Framework.Domain; using _0_Framework.Domain;
using Company.Domain.InsuranceJobAndJobsAgg; using Company.Domain.InsuranceJobAndJobsAgg;
using Company.Domain.InsurancJobAgg; using Company.Domain.InsurancJobAgg;
@@ -9,15 +8,13 @@ namespace Company.Domain.InsuranceJobItemAgg;
public class InsuranceJobItem : EntityBase public class InsuranceJobItem : EntityBase
{ {
public InsuranceJobItem(double percentageLessThan, double salaeyLessThan, double percentageMoreThan, double salaryMoreThan, long insuranceJobId, DateTime? startDate, DateTime? endDate) public InsuranceJobItem(double percentageLessThan, double salaeyLessThan, double percentageMoreThan, double salaryMoreThan, long insuranceJobId)
{ {
PercentageLessThan = percentageLessThan; PercentageLessThan = percentageLessThan;
SalaeyLessThan = salaeyLessThan; SalaeyLessThan = salaeyLessThan;
PercentageMoreThan = percentageMoreThan; PercentageMoreThan = percentageMoreThan;
SalaryMoreThan = salaryMoreThan; SalaryMoreThan = salaryMoreThan;
InsuranceJobId = insuranceJobId; InsuranceJobId = insuranceJobId;
StartDate = startDate;
EndDate = endDate;
} }
public double PercentageLessThan { get; private set; } public double PercentageLessThan { get; private set; }
@@ -25,9 +22,6 @@ public class InsuranceJobItem : EntityBase
public double PercentageMoreThan { get; private set; } public double PercentageMoreThan { get; private set; }
public double SalaryMoreThan { get; private set; } public double SalaryMoreThan { get; private set; }
public DateTime? StartDate { get; private set; }
public DateTime? EndDate { get; private set; }
public long InsuranceJobId { get; private set; } public long InsuranceJobId { get; private set; }
public InsuranceJob InsuranceJob { get; set; } public InsuranceJob InsuranceJob { get; set; }
public List<InsuranceJobAndJobs> InsuranceJobAndJobs { get; set; } public List<InsuranceJobAndJobs> InsuranceJobAndJobs { get; set; }
@@ -37,14 +31,12 @@ public class InsuranceJobItem : EntityBase
InsuranceJobAndJobs = new List<InsuranceJobAndJobs>(); InsuranceJobAndJobs = new List<InsuranceJobAndJobs>();
} }
public void Edit(double percentageLessThan, double salaeyLessThan, double percentageMoreThan, double salaryMoreThan, long insuranceJobId, DateTime? startDate, DateTime? endDate) public void Edit(double percentageLessThan, double salaeyLessThan, double percentageMoreThan, double salaryMoreThan, long insuranceJobId)
{ {
PercentageLessThan = percentageLessThan; PercentageLessThan = percentageLessThan;
SalaeyLessThan = salaeyLessThan; SalaeyLessThan = salaeyLessThan;
PercentageMoreThan = percentageMoreThan; PercentageMoreThan = percentageMoreThan;
SalaryMoreThan = salaryMoreThan; SalaryMoreThan = salaryMoreThan;
InsuranceJobId = insuranceJobId; InsuranceJobId = insuranceJobId;
StartDate = startDate;
EndDate = endDate;
} }
} }

View File

@@ -60,13 +60,4 @@ public interface IInsuranceListRepository:IRepository<long, InsuranceList>
#region client #region client
List<InsuranceListViewModel> SearchForClient(InsuranceListSearchModel searchModel); List<InsuranceListViewModel> SearchForClient(InsuranceListSearchModel searchModel);
#endregion #endregion
}
#region Mahan
Task<InsuranceListConfirmOperation> GetInsuranceOperationDetails(long id);
Task<InsuranceListTabsCountViewModel> GetTabCounts(InsuranceListSearchModel searchModel);
#endregion
}

View File

@@ -4,9 +4,7 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using _0_Framework.Domain; using _0_Framework.Domain;
using Company.Domain.InsuranceListAgg.ValueObjects;
using Company.Domain.InsuranceWorkshopAgg; using Company.Domain.InsuranceWorkshopAgg;
using CompanyManagment.App.Contracts.InsuranceList.Enums;
namespace Company.Domain.InsuranceListAgg; namespace Company.Domain.InsuranceListAgg;
@@ -153,21 +151,6 @@ public class InsuranceList : EntityBase
/// </summary> /// </summary>
public double SumOfMarriedAllowance { get; private set; } public double SumOfMarriedAllowance { get; private set; }
#region Mahan
/// <summary>
/// بازرسی
/// </summary>
public InsuranceListInspection Inspection { get; set; } =new (InsuranceListInspectionType.None,DateTime.MinValue, 0);
/// <summary>
/// بدهی
/// </summary>
public InsuranceListDebt Debt { get; set; } = new(InsuranceListDebtType.None, DateTime.MinValue, 0, 0);
/// <summary>
/// تاییدیه کارفرما
/// </summary>
public InsuranceListEmployerApproval EmployerApproval { get; set; } = new(InsuranceListEmployerApprovalStatus.None, string.Empty);
#endregion
public List<InsuranceListWorkshop> InsuranceListWorkshops { get; set; } public List<InsuranceListWorkshop> InsuranceListWorkshops { get; set; }
public void Edit(int sumOfEmployees, int sumOfWorkingDays, double sumOfSalaries, double sumOfBenefitsIncluded, double included, public void Edit(int sumOfEmployees, int sumOfWorkingDays, double sumOfSalaries, double sumOfBenefitsIncluded, double included,
@@ -191,22 +174,4 @@ public class InsuranceList : EntityBase
SumOfDailyWagePlusBaseYears = sumOfDailyWage + sumOfBaseYears; SumOfDailyWagePlusBaseYears = sumOfDailyWage + sumOfBaseYears;
} }
}
public void SetDebt(InsuranceListDebt debt)
{
Debt = debt;
}
public void SetInspection(InsuranceListInspection inspection)
{
Inspection = inspection;
}
public void SetEmployerApproval(InsuranceListEmployerApproval employerApproval)
{
EmployerApproval = employerApproval;
}
public void SetConfirmSentlist(bool confirmSentlist)
{
ConfirmSentlist = confirmSentlist;
}
}

View File

@@ -1,31 +0,0 @@
using System;
using CompanyManagment.App.Contracts.InsuranceList.Enums;
namespace Company.Domain.InsuranceListAgg.ValueObjects;
public class InsuranceListDebt
{
public InsuranceListDebt(InsuranceListDebtType type, DateTime debtDate, double amount, long mediaId)
{
Type = type;
if (type == InsuranceListDebtType.None)
{
DebtDate = DateTime.MinValue;
Amount = 0;
MediaId = 0;
}
else
{
DebtDate = debtDate;
Amount = amount;
MediaId = mediaId;
IsDone = true;
}
}
public InsuranceListDebtType Type { get; set; }
public DateTime DebtDate { get; set; }
public double Amount { get; set; }
public long MediaId { get; set; }
public bool IsDone { get; set; }
}

View File

@@ -1,26 +0,0 @@
using System.Security.Cryptography;
using CompanyManagment.App.Contracts.InsuranceList.Enums;
namespace Company.Domain.InsuranceListAgg.ValueObjects;
public class InsuranceListEmployerApproval
{
public InsuranceListEmployerApproval(InsuranceListEmployerApprovalStatus status, string description)
{
Status = status;
if (status == InsuranceListEmployerApprovalStatus.None)
{
Description = string.Empty;
}
else
{
Description = description;
IsDone = true;
}
}
public InsuranceListEmployerApprovalStatus Status { get; set; }
public string Description { get; set; }
public bool IsDone { get; set; }
}

View File

@@ -1,29 +0,0 @@
using System;
using CompanyManagment.App.Contracts.InsuranceList.Enums;
namespace Company.Domain.InsuranceListAgg.ValueObjects;
public class InsuranceListInspection
{
public InsuranceListInspection(InsuranceListInspectionType type, DateTime lastInspectionDateTime, long mediaId)
{
Type = type;
if (type == InsuranceListInspectionType.None)
{
LastInspectionDateTime = DateTime.MinValue;
MediaId = 0;
}
else
{
LastInspectionDateTime = lastInspectionDateTime;
MediaId = mediaId;
IsDone = true;
}
}
public InsuranceListInspectionType Type { get; set; }
public DateTime LastInspectionDateTime { get; set; }
public long MediaId { get; set; }
public bool IsDone { get; set; }
}

View File

@@ -45,5 +45,4 @@ public interface ILeftWorkRepository : IRepository<long, LeftWork>
#endregion #endregion
Task<LeftWork> GetLastLeftWork(long employeeId, long workshopId); Task<LeftWork> GetLastLeftWork(long employeeId, long workshopId);
List<LeftWorkViewModel> SearchCreateContract(LeftWorkSearchModel searchModel);
} }

View File

@@ -3,7 +3,6 @@ using System.Collections.Generic;
using _0_Framework.Application; using _0_Framework.Application;
using _0_Framework.Domain; using _0_Framework.Domain;
using CompanyManagment.App.Contracts.InsuranceList; using CompanyManagment.App.Contracts.InsuranceList;
using CompanyManagment.App.Contracts.LeftWork;
using CompanyManagment.App.Contracts.LeftWorkInsurance; using CompanyManagment.App.Contracts.LeftWorkInsurance;
using CompanyManagment.App.Contracts.PersonnleCode; using CompanyManagment.App.Contracts.PersonnleCode;
@@ -41,19 +40,5 @@ public interface ILeftWorkInsuranceRepository : IRepository<long, LeftWorkInsura
/// <returns></returns> /// <returns></returns>
List<EmployeeDetailsForInsuranceListViewModel> GetEmployeeInsuranceLeftWorksAndInformation(long workshopId, DateTime startDate, DateTime endDate); List<EmployeeDetailsForInsuranceListViewModel> GetEmployeeInsuranceLeftWorksAndInformation(long workshopId, DateTime startDate, DateTime endDate);
#endregion #endregion
#region Mahan
/// <summary>
/// پرسنل هایی که در قرارداد ترک کار دارند ولی در بیمه ترک کاری برایشان نخورده
/// </summary>
/// <param name="workshopId"></param>
/// <returns></returns>
List<LeftWorkViewModel> GetEmployeesWithContractExitOnly(long workshopId);
LeftWorkInsurance GetLastLeftWorkByEmployeeIdAndWorkshopId(long workshopId, long employeeId);
#endregion
} }

View File

@@ -6,9 +6,7 @@ using Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities;
using CompanyManagment.App.Contracts.Contract; using CompanyManagment.App.Contracts.Contract;
using CompanyManagment.App.Contracts.CustomizeCheckout; using CompanyManagment.App.Contracts.CustomizeCheckout;
using CompanyManagment.App.Contracts.Leave; using CompanyManagment.App.Contracts.Leave;
using CompanyManagment.App.Contracts.Loan;
using CompanyManagment.App.Contracts.RollCall; using CompanyManagment.App.Contracts.RollCall;
using CompanyManagment.App.Contracts.SalaryAid;
using CompanyManagment.App.Contracts.WorkingHoursTemp; using CompanyManagment.App.Contracts.WorkingHoursTemp;
namespace Company.Domain.RollCallAgg; namespace Company.Domain.RollCallAgg;
@@ -16,19 +14,7 @@ namespace Company.Domain.RollCallAgg;
public interface IRollCallMandatoryRepository : IRepository<long, RollCall> public interface IRollCallMandatoryRepository : IRepository<long, RollCall>
{ {
ComputingViewModel MandatoryCompute(long employeeId, long workshopId, DateTime contractStart, DateTime contractEnd, CreateWorkingHoursTemp command, bool holidayWorking, bool isStaticCheckout); ComputingViewModel MandatoryCompute(long employeeId, long workshopId, DateTime contractStart, DateTime contractEnd, CreateWorkingHoursTemp command, bool holidayWorking, bool isStaticCheckout);
TimeSpan AfterSubtract(CreateWorkingHoursTemp command, TimeSpan sumOneDaySpan, DateTime creationDate);
/// <summary>
/// محاسبه ساعات کارکرد پرسنل در صورت داشتن حضور غیاب
/// </summary>
/// <param name="employeeId"></param>
/// <param name="workshopId"></param>
/// <param name="contractStart"></param>
/// <param name="contractEnd"></param>
/// <returns></returns>
(bool hasRollCall, TimeSpan sumOfSpan) GetRollCallWorkingSpan(long employeeId, long workshopId,
DateTime contractStart, DateTime contractEnd);
TimeSpan AfterSubtract(CreateWorkingHoursTemp command, TimeSpan sumOneDaySpan, DateTime creationDate);
List<RotatingShiftViewModel> RotatingShiftCheck(List<GroupedRollCalls> rollCallList); List<RotatingShiftViewModel> RotatingShiftCheck(List<GroupedRollCalls> rollCallList);
@@ -47,12 +33,6 @@ public interface IRollCallMandatoryRepository : IRepository<long, RollCall>
/// <param name="contractEnd"></param> /// <param name="contractEnd"></param>
/// <param name="shiftwork"></param> /// <param name="shiftwork"></param>
/// <returns></returns> /// <returns></returns>
List<LoanInstallmentViewModel> LoanInstallmentForCheckout(long employeeId, long workshopId, DateTime contractStart,
DateTime contractEnd);
List<SalaryAidViewModel> SalaryAidsForCheckout(long employeeId, long workshopId, DateTime checkoutStart,
DateTime checkoutEnd);
Task<ComputingViewModel> RotatingShiftReport(long workshopId, long employeeId, DateTime contractStart, Task<ComputingViewModel> RotatingShiftReport(long workshopId, long employeeId, DateTime contractStart,
DateTime contractEnd, string shiftwork, bool hasRollCall, CreateWorkingHoursTemp command,bool holidayWorking); DateTime contractEnd, string shiftwork, bool hasRollCall, CreateWorkingHoursTemp command,bool holidayWorking);
} }

View File

@@ -1,5 +1,4 @@
using System; using System.Collections.Generic;
using System.Collections.Generic;
using _0_Framework.Domain; using _0_Framework.Domain;
using CompanyManagment.App.Contracts.RollCallEmployee; using CompanyManagment.App.Contracts.RollCallEmployee;
@@ -7,7 +6,6 @@ namespace Company.Domain.RollCallEmployeeAgg;
public interface IRollCallEmployeeRepository : IRepository<long, RollCallEmployee> public interface IRollCallEmployeeRepository : IRepository<long, RollCallEmployee>
{ {
bool HasRollCallRecord(long employeeId, long workshopId, DateTime contractStart, DateTime contractEnd);
List<RollCallEmployeeViewModel> GetByWorkshopId(long workshopId); List<RollCallEmployeeViewModel> GetByWorkshopId(long workshopId);
EditRollCallEmployee GetDetails(long id); EditRollCallEmployee GetDetails(long id);
RollCallEmployeeViewModel GetByEmployeeIdAndWorkshopId(long employeeId, long workshopId); RollCallEmployeeViewModel GetByEmployeeIdAndWorkshopId(long employeeId, long workshopId);

View File

@@ -14,5 +14,7 @@ public interface IWorkshopTempRepository : IRepository<long, WorkshopTemp>
/// <returns></returns> /// <returns></returns>
Task<List<WorkshopTempViewModel>> GetWorkshopTemp(long contractingPartyTemp); Task<List<WorkshopTempViewModel>> GetWorkshopTemp(long contractingPartyTemp);
System.Threading.Tasks.Task RemoveWorkshopTemps(List<long> workshopTempIds);
} }

View File

@@ -34,12 +34,14 @@ public class InstitutionContractTemp : EntityBase
/// بصورت یکجا /// بصورت یکجا
/// - /// -
/// بصئورت ماهیانه /// بصئورت ماهیانه
/// OneTime
/// </summary> /// </summary>
public string PaymentModel { get; private set; } public string PaymentModel { get; private set; }
/// <summary> /// <summary>
/// مدت قرارداد /// مدت قرارداد
/// چند ماهه؟ /// چند ماهه؟
/// "12"
/// </summary> /// </summary>
public string PeriodModel { get; private set; } public string PeriodModel { get; private set; }

View File

@@ -69,8 +69,6 @@ public interface IWorkshopRepository : IRepository<long, Workshop>
Task<int> GetWorkshopsForEmployeeStartWorkCount(long accountId); Task<int> GetWorkshopsForEmployeeStartWorkCount(long accountId);
Task<List<WorkshopWithLeftWorkTempEmployeesDto>> GetWorkshopsForLeftWorkTemp(long accountId); Task<List<WorkshopWithLeftWorkTempEmployeesDto>> GetWorkshopsForLeftWorkTemp(long accountId);
Task<int> GetWorkshopsForLeftWorkTempCount(long accountId); Task<int> GetWorkshopsForLeftWorkTempCount(long accountId);
Task<List<WorkshopSelectListViewModel>> GetSelectList(string search);
#endregion #endregion

View File

@@ -1,7 +1,6 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Globalization; using System.Globalization;
using System.Security.AccessControl; using System.Security.AccessControl;
using _0_Framework.Application;
using _0_Framework.Domain; using _0_Framework.Domain;
using Company.Domain.CheckoutAgg; using Company.Domain.CheckoutAgg;
using Company.Domain.ClientEmployeeWorkshopAgg; using Company.Domain.ClientEmployeeWorkshopAgg;
@@ -93,7 +92,7 @@ public class Workshop : EntityBase
string state, string city, string address, string typeOfInsuranceSend, string typeOfContract, string contractTerm, string state, string city, string address, string typeOfInsuranceSend, string typeOfContract, string contractTerm,
string agreementNumber, bool fixedSalary, string population,long? insuranceJobId, string zoneName, bool addBonusesPay, bool addYearsPay, bool addLeavePay, bool totalPaymentHide, string agreementNumber, bool fixedSalary, string population,long? insuranceJobId, string zoneName, bool addBonusesPay, bool addYearsPay, bool addLeavePay, bool totalPaymentHide,
bool isClassified, string computeOptions, string bonusesOptions, string yearsOptions, string hasRollCallFreeVip, bool workshopHolidayWorking, bool isClassified, string computeOptions, string bonusesOptions, string yearsOptions, string hasRollCallFreeVip, bool workshopHolidayWorking,
bool insuranceCheckoutOvertime, bool insuranceCheckoutFamilyAllowance, bool createContract, bool signContract, bool createCheckout, bool signCheckout, IsActive cutContractEndOfYear) bool insuranceCheckoutOvertime, bool insuranceCheckoutFamilyAllowance)
{ {
WorkshopName = workshopName; WorkshopName = workshopName;
WorkshopSureName = workshopSureName; WorkshopSureName = workshopSureName;
@@ -137,12 +136,7 @@ public class Workshop : EntityBase
WorkshopHolidayWorking = workshopHolidayWorking; WorkshopHolidayWorking = workshopHolidayWorking;
InsuranceCheckoutOvertime = insuranceCheckoutOvertime; InsuranceCheckoutOvertime = insuranceCheckoutOvertime;
InsuranceCheckoutFamilyAllowance = insuranceCheckoutFamilyAllowance; InsuranceCheckoutFamilyAllowance = insuranceCheckoutFamilyAllowance;
CreateContract = createContract; }
SignContract = signContract;
CreateCheckout = createCheckout;
SignCheckout = signCheckout;
CutContractEndOfYear = cutContractEndOfYear;
}
public string WorkshopName { get; private set; } public string WorkshopName { get; private set; }
@@ -216,19 +210,6 @@ public class Workshop : EntityBase
/// محاسبه حق اولاد در لیست بیمه /// محاسبه حق اولاد در لیست بیمه
/// </summary> /// </summary>
public bool InsuranceCheckoutFamilyAllowance { get; private set; } public bool InsuranceCheckoutFamilyAllowance { get; private set; }
public bool CreateContract { get; private set; }
public bool SignContract { get; private set; }
public bool CreateCheckout { get; private set; }
public bool SignCheckout { get; private set; }
/// <summary>
/// اگر قرارداد بیش از یک ماه باشد و گزینه انتخاب شده منتهی به پایان سال باشد
/// این آیتم
/// True
/// است
/// </summary>
public IsActive CutContractEndOfYear { get; private set; }
//public Employer Employer { get; private set; } //public Employer Employer { get; private set; }
public Workshop() public Workshop()
@@ -262,7 +243,7 @@ public class Workshop : EntityBase
string state, string city, string address, string typeOfInsuranceSend, string typeOfContract, string contractTerm, string state, string city, string address, string typeOfInsuranceSend, string typeOfContract, string contractTerm,
string agreementNumber, bool fixedSalary, string population, long? insuranceJobId, string zoneName, bool addBonusesPay, bool addYearsPay, bool addLeavePay, string agreementNumber, bool fixedSalary, string population, long? insuranceJobId, string zoneName, bool addBonusesPay, bool addYearsPay, bool addLeavePay,
bool totalPaymentHide, bool isClassified, string computeOptions, string bonusesOptions, string yearsOptions, string hasRollCallFreeVip, bool workshopHolidayWorking, bool totalPaymentHide, bool isClassified, string computeOptions, string bonusesOptions, string yearsOptions, string hasRollCallFreeVip, bool workshopHolidayWorking,
bool insuranceCheckoutOvertime, bool insuranceCheckoutFamilyAllowance, bool createContract, bool signContract, bool createCheckout, bool signCheckout, IsActive cutContractEndOfYear) bool insuranceCheckoutOvertime, bool insuranceCheckoutFamilyAllowance)
{ {
WorkshopName = workshopName; WorkshopName = workshopName;
WorkshopSureName = workshopSureName; WorkshopSureName = workshopSureName;
@@ -303,12 +284,7 @@ public class Workshop : EntityBase
WorkshopHolidayWorking = workshopHolidayWorking; WorkshopHolidayWorking = workshopHolidayWorking;
InsuranceCheckoutOvertime = insuranceCheckoutOvertime; InsuranceCheckoutOvertime = insuranceCheckoutOvertime;
InsuranceCheckoutFamilyAllowance = insuranceCheckoutFamilyAllowance; InsuranceCheckoutFamilyAllowance = insuranceCheckoutFamilyAllowance;
CreateContract = createContract; }
SignContract = signContract;
CreateCheckout = createCheckout;
SignCheckout = signCheckout;
CutContractEndOfYear = cutContractEndOfYear;
}
public void Active(string archiveCode) public void Active(string archiveCode)

View File

@@ -1,5 +1,4 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Threading.Tasks;
using _0_Framework.Application; using _0_Framework.Application;
using _0_Framework.Domain; using _0_Framework.Domain;
using CompanyManagment.App.Contracts.Checkout; using CompanyManagment.App.Contracts.Checkout;
@@ -34,9 +33,6 @@ public interface IEmployerRepository : IRepository<long, Employer>
List<EmployerViewModel> GetEmployersHasWorkshop(); List<EmployerViewModel> GetEmployersHasWorkshop();
Task<List<EmployerSelectListViewModel>> GetSelectList(string search);
#endregion #endregion
#region NewByHeydari #region NewByHeydari

View File

@@ -1,17 +0,0 @@
namespace CompanyManagment.App.Contracts.AdminMonthlyOverview;
public enum AdminMonthlyOverviewStatus
{
/// <summary>
/// تنظیم مستندات - فیش و قرارداد
/// </summary>
CreateDocuments = 0,
/// <summary> در انتظار مراجعه </summary>
VisitPending = 1,
/// <summary> در حال مراجعه </summary>
VisitInProgress = 2,
/// <summary> اتمام مراجعه </summary>
VisitCompleted = 3,
/// <summary> بایگانی شد </summary>
Archived = 4
}

View File

@@ -1,82 +0,0 @@
using System.Collections.Generic;
using System.Security.Cryptography;
using System.Threading.Tasks;
using _0_Framework.Application;
using Microsoft.EntityFrameworkCore.Metadata;
namespace CompanyManagment.App.Contracts.AdminMonthlyOverview;
public interface IAdminMonthlyOverviewApplication
{
/// <summary>
/// نمایش لیست ماهانه کارگاه ها - درصورت وجود نداشتن اطلاعات در این ماه، یک رکورد جدید ایجاد میکند
/// </summary>
/// <returns></returns>
Task<List<AdminMonthlyOverviewListViewModel>> GetWorkshopListByStatus(AdminMonthlyOverviewSearchModel searchModel);
/// <summary>
/// شمارش تعداد هر تب
/// </summary>
/// <param name="year"></param>
/// <param name="month"></param>
/// <param name="accountId"></param>
/// <returns></returns>
Task<AdminMonthlyOverViewCounterVm> GetCounter(int year, int month, long accountId);
/// <summary>
/// رفتن به مرحله بعدی
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task<OperationResult> Next(long id);
/// <summary>
/// برگشت به مرحله قبل
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task<OperationResult> Back(long id);
}
public class AdminMonthlyOverViewCounterVm
{
public int CreateDocument { get; set; }
public int VisitPending { get; set; }
public int VisitInProgress { get; set; }
public int VisitCompleted { get; set; }
public int Archived { get; set; }
public int All { get; set; }
}
public class AdminMonthlyOverviewSearchModel
{
public int Year { get; set; }
public int Month { get; set; }
public long WorkshopId { get; set; }
public long EmployerId { get; set; }
public long AdminAccountId { get; set; }
public IsActive ActivationStatus { get; set; }
}
public class AdminMonthlyOverviewListViewModel
{
public long Id { get; set; }
public long WorkshopId { get; set; }
public string WorkshopName { get; set; }
public string WorkshopArchiveCode { get; set; }
public int WorkshopArchiveCodeInt { get; set; }
public string Province { get; set; }
public string City { get; set; }
public string Address { get; set; }
public string AgentPhoneNumber { get; set; }
public string AdminFullName { get; set; }
public string EmployerName { get; set; }
public string EmployerPhoneNumber { get; set; }
public int ContractEmployeeCount { get; set; }
public int CheckoutEmployeeCount { get; set; }
public AdminMonthlyOverviewStatus Status { get; set; }
public bool IsBlock { get; set; }
}

View File

@@ -1,9 +1,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using CompanyManagment.App.Contracts.Employer; using CompanyManagment.App.Contracts.Employer;
using CompanyManagment.App.Contracts.Loan;
using CompanyManagment.App.Contracts.RollCall; using CompanyManagment.App.Contracts.RollCall;
using CompanyManagment.App.Contracts.SalaryAid;
using CompanyManagment.App.Contracts.WorkingHoursTemp; using CompanyManagment.App.Contracts.WorkingHoursTemp;
namespace CompanyManagment.App.Contracts.Checkout; namespace CompanyManagment.App.Contracts.Checkout;
@@ -122,19 +120,5 @@ public class CheckoutViewModel
/// تعداد روزهای محاسبه شده برای عیدی و پاداش /// تعداد روزهای محاسبه شده برای عیدی و پاداش
/// </summary> /// </summary>
public string TotalDayOfBunosesCompute { get; set; } public string TotalDayOfBunosesCompute { get; set; }
/// <summary>
/// مدت مرخصی استعلاجی
/// </summary>
public string TotalSickLeave { get; set; }
/// <summary>
/// مدت مرخصی استحقاقی
/// </summary>
public string TotalPaidLeave { get; set; }
public TimeSpan TotalHourlyLeave { get; set; }
public List<CheckoutDailyRollCallViewModel> MonthlyRollCall { get; set; } public List<CheckoutDailyRollCallViewModel> MonthlyRollCall { get; set; }
public List<LoanInstallmentViewModel> InstallmentViewModels { get; set; }
public List<SalaryAidViewModel> SalaryAidViewModels { get; set; }
} }

View File

@@ -1,45 +0,0 @@
using System.Collections.Generic;
namespace CompanyManagment.App.Contracts.Checkout;
public class CreateCheckoutListViewModel
{
public long Id { get; set; }
public long PersonnelCode { get; set; }
public long EmployeeId { get; set; }
public string ContractNo { get; set; }
public string EmployerName { get; set; }
public string WorkshopName { get; set; }
public string EmployeeName { get; set; }
public string ContractStart { get; set; }
public string ContractEnd { get; set; }
public string LeftWorkDate { get; set; }
//public string NextMonthStart { get; set; }
//public bool RedColor { get; set; }
public bool LaterThanEnd { get; set; }
public bool Extension { get; set; }
public bool HasCheckout { get; set; }
//public bool MoreThanOneMonth { get; set; }
//public bool Waiting { get; set; }
public string Description { get; set; }
public List<CreateCheckoutListViewModel> CreateCheckoutList { get; set; }
}

View File

@@ -13,20 +13,7 @@ public interface ICheckoutApplication
OperationResult Edit(EditCheckout command); OperationResult Edit(EditCheckout command);
EditCheckout GetDetails(long id); EditCheckout GetDetails(long id);
/// <summary>
/// لود لیست اولیه جهت ایجاد فیش حقوقی
/// </summary>
/// <param name="workshopId"></param>
/// <param name="employeeId"></param>
/// <param name="year"></param>
/// <param name="month"></param>
/// <param name="contractStart"></param>
/// <param name="contractEnd"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
Task<CreateCheckoutListViewModel> GetContractResultToCreateCheckout(long workshopId, long employeeId, string year,
string month,
string contractStart, string contractEnd);
Task<List<CheckoutViewModel>> Search(CheckoutSearchModel searchModel); Task<List<CheckoutViewModel>> Search(CheckoutSearchModel searchModel);
List<CheckoutViewModel> SimpleSearch(CheckoutSearchModel searchModel); List<CheckoutViewModel> SimpleSearch(CheckoutSearchModel searchModel);
List<CheckoutViewModel> PrintAll(List<long> id); List<CheckoutViewModel> PrintAll(List<long> id);

View File

@@ -0,0 +1,18 @@
using _0_Framework.Application;
namespace CompanyManagment.App.Contracts.ContactUs;
public interface IContactUsApplication
{
OperationResult Create(CreateContactUs command);
}
public class CreateContactUs
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public string PhoneNumber { get; set; }
public string Title { get; set; }
public string Message { get; set; }
}

View File

@@ -1,7 +1,5 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using CompanyManagment.App.Contracts.Loan;
using CompanyManagment.App.Contracts.SalaryAid;
using CompanyManagment.App.Contracts.WorkingHoursTemp; using CompanyManagment.App.Contracts.WorkingHoursTemp;
namespace CompanyManagment.App.Contracts.Contract; namespace CompanyManagment.App.Contracts.Contract;

View File

@@ -33,7 +33,7 @@ public interface ICustomizeWorkshopSettingsApplication
//Remove the Employee From the Group Settings //Remove the Employee From the Group Settings
OperationResult RemoveEmployeeFromRollCallWorkshopGroup(long employeeId, long groupId, long workshopId); OperationResult RemoveEmployeeFromRollCallWorkshopGroup(long employeeId, long groupId, long workshopId);
OperationResult EditSimpleRollCallGroupSetting(EditCustomizeWorkshopGroupSettings command, List<ReCalculateRollCallValues> reCalculateCommand); OperationResult EditSimpleRollCallGroupSetting(EditCustomizeWorkshopGroupSettings command);
#region Vafa #region Vafa
OperationResult EditSimpleRollCallEmployeeSetting(EditCustomizeEmployeeSettings command, OperationResult EditSimpleRollCallEmployeeSetting(EditCustomizeEmployeeSettings command,
@@ -90,13 +90,7 @@ public interface ICustomizeWorkshopSettingsApplication
List<CustomizeWorkshopEmployeeSettingsViewModel> GetEmployeeSettingsByWorkshopId(long workshopId); List<CustomizeWorkshopEmployeeSettingsViewModel> GetEmployeeSettingsByWorkshopId(long workshopId);
CustomizeWorkshopGroupSettingsViewModel GetEmployeesGroupSettingsByEmployeeId(long employeeId, long workshopId); CustomizeWorkshopGroupSettingsViewModel GetEmployeesGroupSettingsByEmployeeId(long employeeId, long workshopId);
/// <summary>
/// این متد برای قبل از ویرایش گروهی و محاسبه مجدد گروهی استفاده میشود برای اینکه پرسنل هایی که دارای فیش هستند رو فرانت نمایش بده
/// </summary>
/// <param name="command"></param>
/// <param name="workshopId"></param>
/// <returns></returns>
OperationResult<List<long>> ValidateReCalculateValueForGroupEdit(List<ReCalculateRollCallValues> command, long workshopId);
bool HasAnyEmployeeWithoutGroup(long workshopId); bool HasAnyEmployeeWithoutGroup(long workshopId);
/// <summary> /// <summary>

View File

@@ -1,6 +1,4 @@
using System; namespace CompanyManagment.App.Contracts.DateSalary;
namespace CompanyManagment.App.Contracts.DateSalary;
public class DateSalaryViewModel public class DateSalaryViewModel
{ {
@@ -9,6 +7,4 @@ public class DateSalaryViewModel
public string Month { get; set; } public string Month { get; set; }
public string StartDateFa { get; set; } public string StartDateFa { get; set; }
public string EndDateFa { get; set; } public string EndDateFa { get; set; }
public DateTime StartDateGr { get; set; }
public DateTime EndDateGr { get; set; }
} }

View File

@@ -17,22 +17,5 @@ namespace CompanyManagment.App.Contracts.EmployeeComputeOptions
public string BonusesOptions { get; set; } public string BonusesOptions { get; set; }
//نحوه محاسبه سنوات //نحوه محاسبه سنوات
public string YearsOptions { get; set; } public string YearsOptions { get; set; }
}
/// <summary>
/// ایجاد قرارداد
/// </summary>
public bool CreateContract { get; set; }
/// <summary>
/// امضای قرارداد
/// </summary>
public bool SignContract { get; set; }
/// <summary>
/// ایجاد تصفیه
/// </summary>
public bool CreateCheckout { get; set; }
/// <summary>
/// امضای تصفیه
/// </summary>
public bool SignCheckout { get; set; }
}
} }

View File

@@ -12,20 +12,4 @@ public class EmployeeComputeOptionsViewModel
public string BonusesOptions { get; set; } public string BonusesOptions { get; set; }
//نحوه محاسبه سنوات //نحوه محاسبه سنوات
public string YearsOptions { get; set; } public string YearsOptions { get; set; }
/// <summary>
/// ایجاد قرارداد
/// </summary>
public bool CreateContract { get; set; }
/// <summary>
/// امضای قرارداد
/// </summary>
public bool SignContract { get; set; }
/// <summary>
/// ایجاد تصفیه
/// </summary>
public bool CreateCheckout { get; set; }
/// <summary>
/// امضای تصفیه
/// </summary>
public bool SignCheckout { get; set; }
} }

View File

@@ -1,7 +0,0 @@
namespace CompanyManagment.App.Contracts.Employer;
public class EmployerSelectListViewModel
{
public long Id { get; set; }
public string Name { get; set; }
}

View File

@@ -1,5 +1,4 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Threading.Tasks;
using _0_Framework.Application; using _0_Framework.Application;
using CompanyManagment.App.Contracts.Checkout; using CompanyManagment.App.Contracts.Checkout;
@@ -36,8 +35,6 @@ public interface IEmployerApplication
#region Mahan #region Mahan
List<EmployerViewModel> GetEmployersHasWorkshop(); List<EmployerViewModel> GetEmployersHasWorkshop();
Task<List<EmployerSelectListViewModel>> GetSelectList(string search);
#endregion #endregion
#region NewByHeydari #region NewByHeydari
OperationResult DeleteEmployer(long id); OperationResult DeleteEmployer(long id);

View File

@@ -69,5 +69,4 @@ public class InstitutionContractViewModel
public double ValueAddedTax { get; set; } public double ValueAddedTax { get; set; }
public int LeftWorkEmployeeCount { get; set; } public int LeftWorkEmployeeCount { get; set; }
public int InsuranceLeftWorkEmployeeCount { get; set; } public int InsuranceLeftWorkEmployeeCount { get; set; }
public string IsExpier { get; set; }
} }

View File

@@ -1,15 +0,0 @@
using System.Collections.Generic;
using CompanyManagment.App.Contracts.InsuranceJobItem;
using Microsoft.AspNetCore.Mvc.Rendering;
namespace CompanyManagment.App.Contracts.InsuranceJob;
public class CopyFromLastYearViewModel
{
public string StartDate { get; set; }
public string EndDate { get; set; }
public long InsuranceJobItemId { get; set; }
public SelectList InsuranceJobItemViewModels { get; set; }
}

View File

@@ -5,7 +5,6 @@ using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using CompanyManagment.App.Contracts.InsuranceJobItem; using CompanyManagment.App.Contracts.InsuranceJobItem;
using CompanyManagment.App.Contracts.Job; using CompanyManagment.App.Contracts.Job;
using Microsoft.AspNetCore.Mvc.Rendering;
namespace CompanyManagment.App.Contracts.InsuranceJob; namespace CompanyManagment.App.Contracts.InsuranceJob;
@@ -15,20 +14,7 @@ public class CreateInsuranceJob
public long YearlySalaryId { get; set; } public long YearlySalaryId { get; set; }
public string EconomicCode { get; set; } public string EconomicCode { get; set; }
public string Year { get; set; } public string Year { get; set; }
public string Month { get; set; }
public long JobId { get; set; } public long JobId { get; set; }
public string StartDateFa { get; set; }
public string EndDateFa { get; set; }
public List<JobViewModel> Jobs { get; set; } public List<JobViewModel> Jobs { get; set; }
public List<InsuranceJobItemViewModel> InsuranceJobItems { get; set; } public List<InsuranceJobItemViewModel> InsuranceJobItems { get; set; }
public List<string> WorkshopList { get; set; }
public bool HasAnyWorkshop { get; set; }
public long InsuranceJobItemId { get; set; }
public SelectList InsuranceJobItemViewModels { get; set; }
} }

View File

@@ -10,12 +10,9 @@ namespace CompanyManagment.App.Contracts.InsuranceJob;
public interface IInsuranceJobApplication public interface IInsuranceJobApplication
{ {
List<(long id, string date)> GetOldYersInsuranceItemIds();
OperationResult CopyFromLastYear(CopyFromLastYearViewModel command);
OperationResult RecoveryOldData1403();
OperationResult Create(CreateInsuranceJob command); OperationResult Create(CreateInsuranceJob command);
OperationResult Edit(EditInsuranceJob command); OperationResult Edit(EditInsuranceJob command);
EditInsuranceJob GetDetails(long id,string year, string month); EditInsuranceJob GetDetails(long id);
List<InsuranceJobViewModel> GetInsurancJob(); List<InsuranceJobViewModel> GetInsurancJob();
List<InsuranceJobViewModel> Search(InsuranceJobSearchModel searchModel); List<InsuranceJobViewModel> Search(InsuranceJobSearchModel searchModel);

View File

@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using CompanyManagment.App.Contracts.InsuranceJobItem;
namespace CompanyManagment.App.Contracts.InsuranceJob; namespace CompanyManagment.App.Contracts.InsuranceJob;
@@ -14,7 +13,4 @@ public class InsuranceJobViewModel
//public long YearlySalaryId { get; set; } //public long YearlySalaryId { get; set; }
public string EconomicCode { get; set; } public string EconomicCode { get; set; }
public string Year { get; set; } public string Year { get; set; }
public string Month { get; set; }
public List<InsuranceJobItemViewModel> InsuranceJobItemViewModels { get; set; }
} }

View File

@@ -11,32 +11,14 @@ namespace CompanyManagment.App.Contracts.InsuranceJobItem;
public class InsuranceJobItemViewModel public class InsuranceJobItemViewModel
{ {
public long Id { get; set; } public long Id { get; set; }
/// <summary>
/// آیای این درصد در لیست مبالغ مبلغ پر شده دارد
/// </summary>
public bool IsPercentageLessThanUse { get; set; }
public double PercentageLessThan { get; set; } public double PercentageLessThan { get; set; }
/// <summary>
/// آیای این درصد در لیست مبالغ مبلغ پر شده دارد
/// </summary>
public bool IsPercentageMoreThanUse { get; set; }
public double PercentageMoreThan { get; set; } public double PercentageMoreThan { get; set; }
public double SalaeyLessThan { get; set; } public double SalaeyLessThan { get; set; }
public double SalaryMoreThan { get; set; } public double SalaryMoreThan { get; set; }
public string SalaeyLessThanString { get; set; } public string SalaeyLessThanString { get; set; }
public string SalaryMoreThanString { get; set; } public string SalaryMoreThanString { get; set; }
public long InsuranceJobId { get; set; } public long InsuranceJobId { get; set; }
public DateTime? StartDate { get; set; }
public DateTime? EndDate { get; set; }
public List<long> JobIds { get; set; } public List<long> JobIds { get; set; }
public List<JobViewModel> JobList { get; set; } public List<JobViewModel> JobList { get; set; }
} }

View File

@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using CompanyManagment.App.Contracts.LeftWork;
namespace CompanyManagment.App.Contracts.InsuranceList; namespace CompanyManagment.App.Contracts.InsuranceList;
@@ -14,6 +13,5 @@ public class EditInsuranceList:CreateInsuranceList
public bool FixedSalary { get; set; } public bool FixedSalary { get; set; }
public string Population { get; set; } public string Population { get; set; }
public long? InsuranceJobId { get; set; } public long? InsuranceJobId { get; set; }
public List<LeftWorkViewModel> LeftWorkEmployees { get; set; }
} }

View File

@@ -298,6 +298,4 @@ public class EmployeeDetailsForInsuranceListViewModel
///// DSK_SPOUSE ///// DSK_SPOUSE
///// </summary> ///// </summary>
//public double SumOfMarriedAllowance { get; set; } //public double SumOfMarriedAllowance { get; set; }
public string Month { get; set; }
public string Year { get; set; }
} }

View File

@@ -1,8 +0,0 @@
namespace CompanyManagment.App.Contracts.InsuranceList.Enums;
public enum InsuranceListDebtType
{
None,
Old,
New
}

View File

@@ -1,14 +0,0 @@
namespace CompanyManagment.App.Contracts.InsuranceList.Enums;
public enum InsuranceListEmployerApprovalStatus
{
None,
/// <summary>
/// تاییدیه شفاهی (اذنی)
/// </summary>
VerbalApproval,
/// <summary>
/// تاییدیه کاغذی
/// </summary>
WrittenApproval
}

View File

@@ -1,8 +0,0 @@
namespace CompanyManagment.App.Contracts.InsuranceList.Enums;
public enum InsuranceListInspectionType
{
None,
Old,
New
}

View File

@@ -5,7 +5,6 @@ using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using _0_Framework.Application; using _0_Framework.Application;
using CompanyManagment.App.Contracts.InsuranceList; using CompanyManagment.App.Contracts.InsuranceList;
using Microsoft.AspNetCore.Http;
namespace CompanyManagment.App.Contracts.InsuranceList; namespace CompanyManagment.App.Contracts.InsuranceList;
@@ -18,9 +17,9 @@ public interface IInsuranceListApplication
MainEmployeeDetailsViewModel SearchEmployeeForCreateInsuranceList(EmployeeForCreateInsuranceListSearchModel searchModel); MainEmployeeDetailsViewModel SearchEmployeeForCreateInsuranceList(EmployeeForCreateInsuranceListSearchModel searchModel);
double MarriedAllowance(string maritalStatus, long jobId, bool includedStatus, double MarriedAllowance(string maritalStatus, long jobId, bool includedStatus,
int countWorkingDays, double marriedAlowance, int endMonthCurrentDay); int countWorkingDays, double marriedAlowance, int endMonthCurrentDay);
OperationResult CreateEmployeeDetailsInfo(EmployeeDetailsForInsuranceListViewModel command); OperationResult CreateEmployeeDetailsInfo(EmployeeDetailsForInsuranceListViewModel command);
OperationResult EditEmployeeDetailsInfo(EmployeeDetailsForInsuranceListViewModel command); OperationResult EditEmployeeDetailsInfo(EmployeeDetailsForInsuranceListViewModel command);
OperationResult Remove(long id); OperationResult Remove(long id);
EditInsuranceList GetDetailsForEdit(long id); EditInsuranceList GetDetailsForEdit(long id);
@@ -35,16 +34,4 @@ public interface IInsuranceListApplication
//farokhiChanges //farokhiChanges
(double basic, int totalYear) BasicYear(long employeeId, long worshopId, DateTime startDate); (double basic, int totalYear) BasicYear(long employeeId, long worshopId, DateTime startDate);
double GetMonthlyBaseYear(double dayliBase, int countWorkingDays); double GetMonthlyBaseYear(double dayliBase, int countWorkingDays);
#region Mahan
/// <summary>
/// مراحل اجرایی برای تکمیل و ارسال لیست بیمه
/// </summary>
/// <returns></returns>
Task<OperationResult> ConfirmInsuranceOperation(InsuranceListConfirmOperation command);
Task<InsuranceListConfirmOperation> GetInsuranceOperationDetails(long id);
Task<InsuranceListTabsCountViewModel> GetTabCounts(InsuranceListSearchModel searchModel);
#endregion
} }

View File

@@ -1,48 +0,0 @@
using CompanyManagment.App.Contracts.InsuranceList.Enums;
using Microsoft.AspNetCore.Http;
namespace CompanyManagment.App.Contracts.InsuranceList;
public class InsuranceListConfirmOperation
{
public long InsuranceListId { get; set; }
/// <summary>
/// بازرسی
/// </summary>
public CreateInsuranceListInspection Inspection { get; set; }
/// <summary>
/// بدهی
/// </summary>
public CreateInsuranceListDebt Debt { get; set; }
/// <summary>
/// تاییدیه کارفرما
/// </summary>
public CreateInsuranceListApproval Approval { get; set; }
public bool ConfirmSentList { get; set; }
}
public class CreateInsuranceListApproval
{
public InsuranceListEmployerApprovalStatus ApprovalStatus { get; set; }
public string Description { get; set; }
}
public class CreateInsuranceListDebt
{
public InsuranceListDebtType Type { get; set; }
public string DebtDate { get; set; }
public string Amount { get; set; }
public IFormFile DebtFile { get; set; }
public long DebtFileMediaId { get; set; }
public string FilePath { get; set; }
}
public class CreateInsuranceListInspection
{
public InsuranceListInspectionType Type { get; set; }
public string LastInspectionDate { get; set; }
public IFormFile InspectionFile { get; set; }
public long InspectionFileMediaId { get; set; }
public string FilePath { get; set; }
}

View File

@@ -25,29 +25,4 @@ public class InsuranceListSearchModel
public int PageIndex { get; set; } public int PageIndex { get; set; }
public bool SearchAll { get; set; } public bool SearchAll { get; set; }
public InsuranceListSearchStatus Status { get; set; }
}
public enum InsuranceListSearchStatus
{
/// <summary>
/// انجام نشده
/// </summary>
NotStarted = 0,
/// <summary>
/// در حال انجام امور
/// </summary>
InProgress = 1,
/// <summary>
/// آماده ارسال لیست
/// </summary>
ReadyToSendList = 2,
/// <summary>
/// انجام بیمه
/// </summary>
Done = 3
} }

View File

@@ -1,24 +0,0 @@
namespace CompanyManagment.App.Contracts.InsuranceList;
public class InsuranceListTabsCountViewModel
{
/// <summary>
/// انجام نشده
/// </summary>
public int NotStarted { get; set; }
/// <summary>
/// در حال انجام امور
/// </summary>
public int InProgress { get; set; }
/// <summary>
/// آماده ارسال لیست
/// </summary>
public int ReadyToSendList { get; set; }
/// <summary>
/// انجام بیمه
/// </summary>
public int Done { get; set; }
}

View File

@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using CompanyManagment.App.Contracts.InsuranceList.Enums;
namespace CompanyManagment.App.Contracts.InsuranceList; namespace CompanyManagment.App.Contracts.InsuranceList;
@@ -28,16 +27,4 @@ public class InsuranceListViewModel
public long WorkShopId { get; set; } public long WorkShopId { get; set; }
public string IsBlockCantracingParty { get; set; } public string IsBlockCantracingParty { get; set; }
public long EmployerId { get; set; } public long EmployerId { get; set; }
/// <summary>وضعیت بازرسی</summary>
public bool InspectionDone { get; set; }
/// <summary>وضعیت بدهی</summary>
public bool DebtDone { get; set; }
/// <summary>تاییدیه کارفرما</summary>
public bool EmployerApproved { get; set; }
/// <summary>
/// نوع تاییدیه کارفرما
/// </summary>
public InsuranceListEmployerApprovalStatus EmployerApprovalStatus { get; set; }
} }

View File

@@ -16,9 +16,6 @@ public interface ILeftWorkApplication
EditLeftWork GetDetails(long id); EditLeftWork GetDetails(long id);
LeftWorkViewModel CheckoutleftWorkCheck(DateTime contractStart, long workshopId, long employeeId); LeftWorkViewModel CheckoutleftWorkCheck(DateTime contractStart, long workshopId, long employeeId);
List<LeftWorkViewModel> search(LeftWorkSearchModel searchModel); List<LeftWorkViewModel> search(LeftWorkSearchModel searchModel);
List<LeftWorkViewModel> SearchCreateContract(LeftWorkSearchModel searchModel);
Task<List<LeftWorkViewModel>> searchAsync(LeftWorkSearchModel searchModel); Task<List<LeftWorkViewModel>> searchAsync(LeftWorkSearchModel searchModel);
string StartWork(long employeeId, long workshopId, string leftWork); string StartWork(long employeeId, long workshopId, string leftWork);
OperationResult RemoveLeftWork(long id); OperationResult RemoveLeftWork(long id);

View File

@@ -65,6 +65,4 @@ public class RollCallViewModel
/// مدت زمان استراحت /// مدت زمان استراحت
/// </summary> /// </summary>
public TimeSpan BreakTimeSpan { get; set; } public TimeSpan BreakTimeSpan { get; set; }
public DateTime? ShiftEndWithoutRest { get; set; }
} }

View File

@@ -38,5 +38,4 @@ public interface IRollCallEmployeeApplication
(int activeEmployees, int deActiveEmployees) GetActiveAndDeActiveRollCallEmployees(long workshopId); (int activeEmployees, int deActiveEmployees) GetActiveAndDeActiveRollCallEmployees(long workshopId);
bool HasEmployees(long workshopId); bool HasEmployees(long workshopId);
#endregion #endregion
} }

View File

@@ -17,7 +17,5 @@ namespace CompanyManagment.App.Contracts.RollCallEmployeeStatus
List<RollCallEmployeeStatusViewModel> GetActiveByWorkshopIdInDate(long workshopId, DateTime startDateGr, DateTime endDateGr); List<RollCallEmployeeStatusViewModel> GetActiveByWorkshopIdInDate(long workshopId, DateTime startDateGr, DateTime endDateGr);
bool IsActiveInPeriod(long employeeId, long workshopId, DateTime startDate, DateTime endDate); bool IsActiveInPeriod(long employeeId, long workshopId, DateTime startDate, DateTime endDate);
void SyncRollCallEmployeeWithLeftWork(long rollCallEmployeeId); }
}
} }

View File

@@ -8,7 +8,6 @@ public class CreateSalaryAidViewModel
public long WorkshopId { get; set; } public long WorkshopId { get; set; }
public string Amount { get; set; } public string Amount { get; set; }
public string SalaryDateTime { get; set; } public string SalaryDateTime { get; set; }
public string CalculationDateTime { get; set; }
public string NationalCode { get; set; } public string NationalCode { get; set; }
public int CalculationMonth { get; set; } public int CalculationMonth { get; set; }
public int CalculationYear { get; set; } public int CalculationYear { get; set; }

View File

@@ -6,8 +6,6 @@ public class SalaryAidGroupedByDateViewModel
{ {
public string MonthFa { get; set; } public string MonthFa { get; set; }
public string YearFa { get; set; } public string YearFa { get; set; }
public int Month { get; set; }
public int Year { get; set; }
public List<SalaryAidGroupedByDateViewModelItems> SalaryAidViewModels { get; set; } public List<SalaryAidGroupedByDateViewModelItems> SalaryAidViewModels { get; set; }
public string TotalAmount { get; set; } public string TotalAmount { get; set; }

Some files were not shown because too many files have changed in this diff Show More