Merge branch 'master' into Fix/program-manager/fix-some-bugs

This commit is contained in:
2026-01-22 11:06:58 +03:30
6 changed files with 52 additions and 20 deletions

View File

@@ -1524,7 +1524,8 @@ public class InsuranceListApplication : IInsuranceListApplication
var dateOfBirth = employeeData.DateOfBirthGr.ToFarsi(); var dateOfBirth = employeeData.DateOfBirthGr.ToFarsi();
var dateOfIssue = employeeData.DateOfIssueGr.ToFarsi(); var dateOfIssue = employeeData.DateOfIssueGr.ToFarsi();
var leftDate = employeeData.LeftWorkDateGr != null ? employeeData.LeftWorkDateGr.Value.AddDays(-1) : new DateTime(); var leftDate = employeeData.LeftWorkDateGr != null ? employeeData.LeftWorkDateGr.Value.AddDays(-1) : new DateTime();
var workingDays = Tools.GetEmployeeInsuranceWorkingDays(employeeData.StartWorkDateGr, leftDate, startDateGr, endDateGr, employeeData.EmployeeId);
var workingDays = Tools.GetEmployeeInsuranceWorkingDays(employeeData.StartWorkDateGr, leftDate, startDateGr, endDateGr, employeeData.EmployeeId);
var leftWorkFa = workingDays.hasLeftWorkInMonth ? employeeData.LeftWorkDateGr.ToFarsi() : ""; var leftWorkFa = workingDays.hasLeftWorkInMonth ? employeeData.LeftWorkDateGr.ToFarsi() : "";
var startWorkFa = employeeData.StartWorkDateGr.ToFarsi(); var startWorkFa = employeeData.StartWorkDateGr.ToFarsi();
var workshop = _workShopRepository.GetDetails(workshopId); var workshop = _workShopRepository.GetDetails(workshopId);
@@ -1606,7 +1607,7 @@ public class InsuranceListApplication : IInsuranceListApplication
MaritalStatus = employeeData.MaritalStatus, MaritalStatus = employeeData.MaritalStatus,
StartMonthCurrent = startMonthFa, StartMonthCurrent = startMonthFa,
WorkingDays = workingDays.countWorkingDays, WorkingDays = employeeData.WorkingDays,
StartWorkDate = startWorkFa, StartWorkDate = startWorkFa,
StartWorkDateGr = employeeData.StartWorkDateGr, StartWorkDateGr = employeeData.StartWorkDateGr,
LeftWorkDate = leftWorkFa, LeftWorkDate = leftWorkFa,

View File

@@ -209,22 +209,38 @@ public class CreateOrEditCheckoutCommandHandler : IBaseCommandHandler<CreateOrEd
} }
} }
//حقوق نهایی ////حقوق نهایی
var monthlySalaryPay = (totalHoursWorked * monthlySalaryDefined) / mandatoryHours; //var monthlySalaryPay = (totalHoursWorked * monthlySalaryDefined) / mandatoryHours;
// اگر اضافه کار داشت حقوق تعین شده به عنوان حقوق نهایی در نظر گرفته میشود //// اگر اضافه کار داشت حقوق تعین شده به عنوان حقوق نهایی در نظر گرفته میشود
monthlySalaryPay = monthlySalaryPay > monthlySalaryDefined ? monthlySalaryDefined : monthlySalaryPay; //monthlySalaryPay = monthlySalaryPay > monthlySalaryDefined ? monthlySalaryDefined : monthlySalaryPay;
//حقوق کسر شده ////حقوق کسر شده
var deductionFromSalary = monthlySalaryDefined - monthlySalaryPay; //var deductionFromSalary = monthlySalaryDefined - monthlySalaryPay;
//new chang salary compute
var monthlySalaryPay = totalHoursWorked * monthlySalaryDefined;
//زمان باقی مانده //زمان باقی مانده
var remainingTime = totalHoursWorked - mandatoryHours; var remainingTime = totalHoursWorked - mandatoryHours;
//تناسب به دقیقه
#region MyRegion
//var monthlySalaryDefinedTest = monthlySalaryDefined * mandatoryHours;
//var monthlySalaryPayTest = totalHoursWorked * monthlySalaryDefined;
////// اگر اضافه کار داشت حقوق تعین شده به عنوان حقوق نهایی در نظر گرفته میشود
//monthlySalaryPayTest = monthlySalaryPayTest > monthlySalaryDefinedTest ? monthlySalaryDefinedTest : monthlySalaryPayTest;
//////حقوق کسر شده
//var deductionFromSalaryTest = monthlySalaryDefinedTest - monthlySalaryPayTest;
#endregion
var computeResult = new ComputeResultDto var computeResult = new ComputeResultDto
{ {
MandatoryHours = mandatoryHours, MandatoryHours = mandatoryHours,
MonthlySalaryPay = monthlySalaryPay, MonthlySalaryPay = monthlySalaryPay,
DeductionFromSalary = deductionFromSalary, DeductionFromSalary = 0 /*deductionFromSalary*/,
RemainingHours = remainingTime RemainingHours = remainingTime
}; };
Console.WriteLine(mandatoryHours); Console.WriteLine(mandatoryHours);

View File

@@ -1,10 +1,11 @@
using GozareshgirProgramManager.Application._Common.Interfaces; using DNTPersianUtils.Core;
using GozareshgirProgramManager.Application._Common.Interfaces;
using GozareshgirProgramManager.Application._Common.Models; using GozareshgirProgramManager.Application._Common.Models;
using GozareshgirProgramManager.Application.Modules.SalaryPaymentSettings.Queries.GetUserListWhoHaveSettings; using GozareshgirProgramManager.Application.Modules.SalaryPaymentSettings.Queries.GetUserListWhoHaveSettings;
using GozareshgirProgramManager.Domain._Common; using GozareshgirProgramManager.Domain._Common;
using GozareshgirProgramManager.Domain.CheckoutAgg.Enums; using GozareshgirProgramManager.Domain.CheckoutAgg.Enums;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using PersianTools.Core; using PersianDateTime = PersianTools.Core.PersianDateTime;
namespace GozareshgirProgramManager.Application.Modules.Checkouts.Queries.GetUserToGropCreate; namespace GozareshgirProgramManager.Application.Modules.Checkouts.Queries.GetUserToGropCreate;
@@ -45,8 +46,8 @@ public class GetUserToGroupCreatingQueryHandler : IBaseQueryHandler<GetUserToGro
"ایجاد فیش فقط برای ماه های گذشته امکان پذیر است"); "ایجاد فیش فقط برای ماه های گذشته امکان پذیر است");
var lastMonthStart = lastMonth; //var lastMonthStart = lastMonth;
var lastMonthEnd = lastMonth; var lastMonthEnd = ((selectedDate.ToFarsi().FindeEndOfMonth())).ToGeorgianDateTime();
var query = var query =
await (from u in _context.Users await (from u in _context.Users
@@ -60,8 +61,8 @@ public class GetUserToGroupCreatingQueryHandler : IBaseQueryHandler<GetUserToGro
// LEFT JOIN // LEFT JOIN
//فیش //فیش
join ch in _context.Checkouts join ch in _context.Checkouts
.Where(x => x.CheckoutStartDate < lastMonthStart .Where(x => x.CheckoutStartDate < lastMonthEnd
&& x.CheckoutEndDate >= lastMonthStart) && x.CheckoutEndDate > selectedDate)
on u.Id equals ch.UserId into chJoin on u.Id equals ch.UserId into chJoin
from ch in chJoin.DefaultIfEmpty() from ch in chJoin.DefaultIfEmpty()

View File

@@ -56,6 +56,7 @@ public class ProjectSetTimeDetailsQueryHandler
var skills = await _context.Skills var skills = await _context.Skills
.AsNoTracking() .AsNoTracking()
.OrderBy(x=>x.CreationDate)
.ToListAsync(cancellationToken); .ToListAsync(cancellationToken);
var res = new ProjectSetTimeResponse( var res = new ProjectSetTimeResponse(
@@ -84,7 +85,7 @@ public class ProjectSetTimeDetailsQueryHandler
UserId = section?.OriginalAssignedUserId ?? 0, UserId = section?.OriginalAssignedUserId ?? 0,
SkillId = skill.Id, SkillId = skill.Id,
}; };
}).OrderBy(x => x.SkillId).ToList(), }).ToList(),
task.Id, task.Id,
level); level);
@@ -114,6 +115,7 @@ public class ProjectSetTimeDetailsQueryHandler
var skills = await _context.Skills var skills = await _context.Skills
.AsNoTracking() .AsNoTracking()
.OrderBy(x=>x.CreationDate)
.ToListAsync(cancellationToken); .ToListAsync(cancellationToken);
var res = new ProjectSetTimeResponse( var res = new ProjectSetTimeResponse(
@@ -135,7 +137,7 @@ public class ProjectSetTimeDetailsQueryHandler
UserId = section?.UserId ?? 0, UserId = section?.UserId ?? 0,
SkillId = skill.Id, SkillId = skill.Id,
}; };
}).OrderBy(x => x.SkillId).ToList(), }).ToList(),
phase.Id, phase.Id,
level); level);
@@ -165,6 +167,7 @@ public class ProjectSetTimeDetailsQueryHandler
var skills = await _context.Skills var skills = await _context.Skills
.AsNoTracking() .AsNoTracking()
.OrderBy(x=>x.CreationDate)
.ToListAsync(cancellationToken); .ToListAsync(cancellationToken);
var res = new ProjectSetTimeResponse( var res = new ProjectSetTimeResponse(
@@ -186,7 +189,7 @@ public class ProjectSetTimeDetailsQueryHandler
UserId = section?.UserId ?? 0, UserId = section?.UserId ?? 0,
SkillId = skill.Id, SkillId = skill.Id,
}; };
}).OrderBy(x => x.SkillId).ToList(), }).ToList(),
project.Id, project.Id,
level); level);

View File

@@ -1,12 +1,15 @@
using GozareshgirProgramManager.Application._Common.Interfaces; using GozareshgirProgramManager.Application._Common.Interfaces;
using GozareshgirProgramManager.Application._Common.Models; using GozareshgirProgramManager.Application._Common.Models;
using GozareshgirProgramManager.Application.Modules.TaskChat.DTOs; using GozareshgirProgramManager.Application.Modules.TaskChat.DTOs;
using GozareshgirProgramManager.Domain.TaskChatAgg.Enums;
using MediatR;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
namespace GozareshgirProgramManager.Application.Modules.TaskChat.Queries.GetMessages; namespace GozareshgirProgramManager.Application.Modules.TaskChat.Queries.GetMessages;
public record GetMessagesQuery( public record GetMessagesQuery(
Guid TaskId, Guid TaskId,
MessageType? MessageType,
int Page = 1, int Page = 1,
int PageSize = 50 int PageSize = 50
) : IBaseQuery<PaginationResult<MessageDto>>; ) : IBaseQuery<PaginationResult<MessageDto>>;
@@ -66,7 +69,12 @@ public class GetMessagesQueryHandler : IBaseQueryHandler<GetMessagesQuery, Pagin
var query = _context.TaskChatMessages var query = _context.TaskChatMessages
.Where(m => m.TaskId == request.TaskId && !m.IsDeleted) .Where(m => m.TaskId == request.TaskId && !m.IsDeleted)
.Include(m => m.ReplyToMessage) .Include(m => m.ReplyToMessage)
.OrderBy(m => m.CreationDate); .OrderBy(m => m.CreationDate).AsQueryable();
if (request.MessageType.HasValue)
{
query = query.Where(m => m.MessageType == request.MessageType.Value);
}
var totalCount = await query.CountAsync(cancellationToken); var totalCount = await query.CountAsync(cancellationToken);

View File

@@ -8,6 +8,7 @@ using GozareshgirProgramManager.Application.Modules.TaskChat.DTOs;
using GozareshgirProgramManager.Application.Modules.TaskChat.Queries.GetMessages; using GozareshgirProgramManager.Application.Modules.TaskChat.Queries.GetMessages;
using GozareshgirProgramManager.Application.Modules.TaskChat.Queries.GetPinnedMessages; using GozareshgirProgramManager.Application.Modules.TaskChat.Queries.GetPinnedMessages;
using GozareshgirProgramManager.Application.Modules.TaskChat.Queries.SearchMessages; using GozareshgirProgramManager.Application.Modules.TaskChat.Queries.SearchMessages;
using GozareshgirProgramManager.Domain.TaskChatAgg.Enums;
using MediatR; using MediatR;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using ServiceHost.BaseControllers; using ServiceHost.BaseControllers;
@@ -30,15 +31,17 @@ public class TaskChatController : ProgramManagerBaseController
/// دریافت لیست پیام‌های یک تسک /// دریافت لیست پیام‌های یک تسک
/// </summary> /// </summary>
/// <param name="taskId">شناسه تسک</param> /// <param name="taskId">شناسه تسک</param>
/// <param name="messageType">نوع پیام</param>
/// <param name="page">صفحه (پیش‌فرض: 1)</param> /// <param name="page">صفحه (پیش‌فرض: 1)</param>
/// <param name="pageSize">تعداد در هر صفحه (پیش‌فرض: 50)</param> /// <param name="pageSize">تعداد در هر صفحه (پیش‌فرض: 50)</param>
[HttpGet("{taskId:guid}/messages")] [HttpGet("{taskId:guid}/messages")]
public async Task<ActionResult<OperationResult<PaginationResult<MessageDto>>>> GetMessages( public async Task<ActionResult<OperationResult<PaginationResult<MessageDto>>>> GetMessages(
Guid taskId, Guid taskId,
[FromQuery] MessageType? messageType,
[FromQuery] int page = 1, [FromQuery] int page = 1,
[FromQuery] int pageSize = 50) [FromQuery] int pageSize = 50)
{ {
var query = new GetMessagesQuery(taskId, page, pageSize); var query = new GetMessagesQuery(taskId,messageType, page, pageSize);
var result = await _mediator.Send(query); var result = await _mediator.Send(query);
return result; return result;
} }