Skip to content

Commit

Permalink
Merge branch 'dev' into psp-9837
Browse files Browse the repository at this point in the history
  • Loading branch information
Herrera committed Jan 20, 2025
2 parents b5b6c44 + 354046c commit 182b004
Show file tree
Hide file tree
Showing 61 changed files with 1,532 additions and 1,297 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -225,5 +225,26 @@ public IActionResult GetCompensationRequisitionFinancials([FromRoute] long id)

return new JsonResult(_mapper.Map<IEnumerable<CompensationFinancialModel>>(compReqFinancials));
}

[HttpGet("{id:long}/payees")]
[HasPermission(Permissions.CompensationRequisitionView)]
[Produces("application/json")]
[ProducesResponseType(typeof(List<CompReqPayeeModel>), 200)]
[SwaggerOperation(Tags = new[] { "compensation-requisition" })]
[TypeFilter(typeof(NullJsonResultFilter))]
public IActionResult GetCompensationRequisitionPayees([FromRoute] long id)
{
_logger.LogInformation(
"Request received by Controller: {Controller}, Action: {ControllerAction}, User: {User}, DateTime: {DateTime}",
nameof(CompensationRequisitionController),
nameof(GetCompensationRequisitionPayees),
User.GetUsername(),
DateTime.Now);
_logger.LogInformation("Dispatching to service: {Service}", _compensationRequisitionService.GetType());

var compReqPayees = _compensationRequisitionService.GetCompensationRequisitionPayees(id);

return new JsonResult(_mapper.Map<IEnumerable<CompReqPayeeModel>>(compReqPayees));
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -69,9 +69,9 @@ public IActionResult GetStakeholders(long leaseId)
User.GetUsername(),
DateTime.Now);

var updatedLease = _leaseService.GetStakeholdersByLeaseId(leaseId);
var leaseStakeholders = _leaseService.GetStakeholdersByLeaseId(leaseId);

return new JsonResult(_mapper.Map<IEnumerable<LeaseStakeholderModel>>(updatedLease));
return new JsonResult(_mapper.Map<IEnumerable<LeaseStakeholderModel>>(leaseStakeholders));
}

/// <summary>
Expand Down
2 changes: 1 addition & 1 deletion source/backend/api/Pims.Api.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<UserSecretsId>0ef6255f-9ea0-49ec-8c65-c172304b4926</UserSecretsId>
<Version>5.8.0-98.5</Version>
<Version>5.8.0-98.7</Version>
<AssemblyVersion>5.8.0.98</AssemblyVersion>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<ProjectGuid>{16BC0468-78F6-4C91-87DA-7403C919E646}</ProjectGuid>
Expand Down
62 changes: 32 additions & 30 deletions source/backend/api/Services/AcquisitionFileService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -844,59 +844,61 @@ private void ValidatePayeeDependency(PimsAcquisitionFile acquisitionFile)
{
var currentAcquisitionFile = _acqFileRepository.GetById(acquisitionFile.Internal_Id);
var compensationRequisitions = _compensationRequisitionRepository.GetAllByAcquisitionFileId(acquisitionFile.Internal_Id);
var compReqPayees = compensationRequisitions.SelectMany(x => x.PimsCompReqPayees).ToList();

if (compensationRequisitions.Count == 0)
if (compReqPayees.Count == 0)
{
return;
}

foreach (var compReq in compensationRequisitions)
foreach (var payee in compReqPayees)
{
// Check for Acquisition File Owner removed TODO: update for multiple payees.
//if (compReq.AcquisitionOwnerId is not null
// && !acquisitionFile.PimsAcquisitionOwners.Any(x => x.Internal_Id.Equals(compReq.AcquisitionOwnerId))
// && currentAcquisitionFile.PimsAcquisitionOwners.Any(x => x.Internal_Id.Equals(compReq.AcquisitionOwnerId)))
//{
// throw new ForeignKeyDependencyException("Acquisition File Owner can not be removed since it's assigned as a payee for a compensation requisition");
//}
// Check for Acquisition File Owner removed
if (payee.AcquisitionOwnerId is not null
&& !acquisitionFile.PimsAcquisitionOwners.Any(x => x.Internal_Id.Equals(payee.AcquisitionOwnerId))
&& currentAcquisitionFile.PimsAcquisitionOwners.Any(x => x.Internal_Id.Equals(payee.AcquisitionOwnerId)))
{
throw new ForeignKeyDependencyException("Acquisition File Owner can not be removed since it's assigned as a payee for a compensation requisition");
}

//// Check for Acquisition InterestHolders
//if (compReq.InterestHolderId is not null
// && !acquisitionFile.PimsInterestHolders.Any(x => x.Internal_Id.Equals(compReq.InterestHolderId))
// && currentAcquisitionFile.PimsInterestHolders.Any(x => x.Internal_Id.Equals(compReq.InterestHolderId)))
//{
// throw new ForeignKeyDependencyException("Acquisition File Interest Holders can not be removed since it's assigned as a payee for a compensation requisition");
//}
if (payee.InterestHolderId is not null
&& !acquisitionFile.PimsInterestHolders.Any(x => x.Internal_Id.Equals(payee.InterestHolderId))
&& currentAcquisitionFile.PimsInterestHolders.Any(x => x.Internal_Id.Equals(payee.InterestHolderId)))
{
throw new ForeignKeyDependencyException("Acquisition File Interest Holders can not be removed since it's assigned as a payee for a compensation requisition");
}

//// Check for File Person
//if (compReq.AcquisitionFileTeamId is not null
// && !acquisitionFile.PimsAcquisitionFileTeams.Any(x => x.Internal_Id.Equals(compReq.AcquisitionFileTeamId))
// && currentAcquisitionFile.PimsAcquisitionFileTeams.Any(x => x.Internal_Id.Equals(compReq.AcquisitionFileTeamId)))
//{
// throw new ForeignKeyDependencyException("Acquisition File team member can not be removed since it's assigned as a payee for a compensation requisition");
//}
if (payee.AcquisitionFileTeamId is not null
&& !acquisitionFile.PimsAcquisitionFileTeams.Any(x => x.Internal_Id.Equals(payee.AcquisitionFileTeamId))
&& currentAcquisitionFile.PimsAcquisitionFileTeams.Any(x => x.Internal_Id.Equals(payee.AcquisitionFileTeamId)))
{
throw new ForeignKeyDependencyException("Acquisition File team member can not be removed since it's assigned as a payee for a compensation requisition");
}
}
}

private void ValidateInterestHoldersDependency(long acquisitionFileId, List<PimsInterestHolder> interestHolders)
{
var currentAcquisitionFile = _acqFileRepository.GetById(acquisitionFileId);
var compensationRequisitions = _compensationRequisitionRepository.GetAllByAcquisitionFileId(acquisitionFileId);
var compReqPayees = compensationRequisitions.SelectMany(x => x.PimsCompReqPayees).ToList();

if (compensationRequisitions.Count == 0)
if (compReqPayees.Count == 0)
{
return;
}

foreach (var compReq in compensationRequisitions)
foreach (var payee in compReqPayees)
{
// Check for Interest Holder: TODO: update for multiple payees.
//if (compReq.InterestHolderId is not null
// && !interestHolders.Any(x => x.InterestHolderId.Equals(compReq.InterestHolderId))
// && currentAcquisitionFile.PimsInterestHolders.Any(x => x.Internal_Id.Equals(compReq.InterestHolderId)))
//{
// throw new ForeignKeyDependencyException("Acquisition File Interest Holder can not be removed since it's assigned as a payee for a compensation requisition");
//}
// Check for Interest Holder
if (payee.InterestHolderId is not null
&& !interestHolders.Any(x => x.InterestHolderId.Equals(payee.InterestHolderId))
&& currentAcquisitionFile.PimsInterestHolders.Any(x => x.Internal_Id.Equals(payee.InterestHolderId)))
{
throw new ForeignKeyDependencyException("Acquisition File Interest Holder can not be removed since it's assigned as a payee for a compensation requisition");
}
}
}

Expand Down
14 changes: 11 additions & 3 deletions source/backend/api/Services/CompensationRequisitionService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -150,12 +150,20 @@ public IEnumerable<PimsCompensationRequisition> GetFileCompensationRequisitions(
return compReqs;
}

public IEnumerable<PimsCompReqFinancial> GetCompensationRequisitionFinancials(long id)
public IEnumerable<PimsCompReqFinancial> GetCompensationRequisitionFinancials(long compReqId)
{
_logger.LogInformation("Getting compensations financials for id: {acquisitionFileId}", id);
_logger.LogInformation("Getting compensations financials for id: {compReqId}", compReqId);
_user.ThrowIfNotAuthorized(Permissions.CompensationRequisitionView);

return _compensationRequisitionRepository.GetCompensationRequisitionFinancials(id);
return _compensationRequisitionRepository.GetCompensationRequisitionFinancials(compReqId);
}

public IEnumerable<PimsCompReqPayee> GetCompensationRequisitionPayees(long compReqId)
{
_logger.LogInformation("Getting compensations payees for id: {compReqId}", compReqId);
_user.ThrowIfNotAuthorized(Permissions.CompensationRequisitionView);

return _compensationRequisitionRepository.GetCompensationRequisitionPayees(compReqId);
}

private static string GetCompensationRequisitionStatusText(bool? isDraft)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ public interface ICompensationRequisitionService

PimsCompensationRequisition AddCompensationRequisition(FileTypes fileType, PimsCompensationRequisition compensationRequisition);

IEnumerable<PimsCompReqFinancial> GetCompensationRequisitionFinancials(long id);
IEnumerable<PimsCompReqFinancial> GetCompensationRequisitionFinancials(long compReqId);

IEnumerable<PimsCompReqPayee> GetCompensationRequisitionPayees(long compReqId);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
using Mapster;
using Pims.Api.Models.Base;
using Entity = Pims.Dal.Entities;

namespace Pims.Api.Models.Concepts.CompensationRequisition
{
public class CompReqPayeeMap : IRegister
{
public void Register(TypeAdapterConfig config)
{
config.NewConfig<Entity.PimsCompReqPayee, CompReqPayeeModel>()
.Map(dest => dest.CompReqPayeeId, src => src.CompReqPayeeId)
.Map(dest => dest.CompensationRequisitionId, src => src.CompensationRequisitionId)
.Map(dest => dest.AcquisitionFileTeamId, src => src.AcquisitionFileTeamId)
.Map(dest => dest.AcquisitionFileTeam, src => src.AcquisitionFileTeam)
.Map(dest => dest.AcquisitionOwnerId, src => src.AcquisitionOwnerId)
.Map(dest => dest.AcquisitionOwner, src => src.AcquisitionOwner)
.Map(dest => dest.InterestHolderId, src => src.InterestHolderId)
.Map(dest => dest.InterestHolder, src => src.InterestHolder)
.Inherits<Entity.IBaseEntity, BaseConcurrentModel>();

config.NewConfig<CompReqPayeeModel, Entity.PimsCompReqPayee>()
.Map(dest => dest.CompReqPayeeId, src => src.CompReqPayeeId)
.Map(dest => dest.CompensationRequisitionId, src => src.CompensationRequisitionId)
.Map(dest => dest.AcquisitionFileTeamId, src => src.AcquisitionFileTeamId)
.Map(dest => dest.AcquisitionOwnerId, src => src.AcquisitionOwnerId)
.Map(dest => dest.InterestHolderId, src => src.InterestHolderId)
.Inherits<BaseConcurrentModel, Entity.IBaseEntity>();
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
using Pims.Api.Models.Base;
using Pims.Api.Models.Concepts.AcquisitionFile;
using Pims.Api.Models.Concepts.InterestHolder;

namespace Pims.Api.Models.Concepts.CompensationRequisition
{
public class CompReqPayeeModel : BaseAuditModel
{
public long? CompReqPayeeId { get; set; }

public long? CompensationRequisitionId { get; set; }

public CompensationRequisitionModel CompensationRequisition { get; set; }

public long? AcquisitionOwnerId { get; set; }

public AcquisitionFileOwnerModel AcquisitionOwner { get; set; }

public long? InterestHolderId { get; set; }

public InterestHolderModel InterestHolder { get; set; }

public long? AcquisitionFileTeamId { get; set; }

public AcquisitionFileTeamModel AcquisitionFileTeam { get; set; }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,10 @@ public void Register(TypeAdapterConfig config)
.Map(dest => dest.DetailedRemarks, src => src.DetailedRemarks)
.Map(dest => dest.AlternateProjectId, src => src.AlternateProjectId)
.Map(dest => dest.AlternateProject, src => src.AlternateProject)
.Map(dest => dest.CompReqLeaseStakeholder, src => src.PimsLeaseStakeholderCompReqs)
.Map(dest => dest.CompReqLeaseStakeholders, src => src.PimsLeaseStakeholderCompReqs)
.Map(dest => dest.CompReqAcquisitionProperties, src => src.PimsPropAcqFlCompReqs)
.Map(dest => dest.CompReqLeaseProperties, src => src.PimsPropLeaseCompReqs)
.Map(dest => dest.CompReqPayees, src => src.PimsCompReqPayees)
.Inherits<Entity.IBaseAppEntity, BaseAuditModel>();

config.NewConfig<CompensationRequisitionModel, Entity.PimsCompensationRequisition>()
Expand All @@ -60,9 +61,10 @@ public void Register(TypeAdapterConfig config)
.Map(dest => dest.DetailedRemarks, src => src.DetailedRemarks)
.Map(dest => dest.AlternateProjectId, src => src.AlternateProjectId)
.Map(dest => dest.AlternateProject, src => src.AlternateProject)
.Map(dest => dest.PimsLeaseStakeholderCompReqs, src => src.CompReqLeaseStakeholder)
.Map(dest => dest.PimsLeaseStakeholderCompReqs, src => src.CompReqLeaseStakeholders)
.Map(dest => dest.PimsPropAcqFlCompReqs, src => src.CompReqAcquisitionProperties)
.Map(dest => dest.PimsPropLeaseCompReqs, src => src.CompReqLeaseProperties)
.Map(dest => dest.PimsCompReqPayees, src => src.CompReqPayees)
.Inherits<BaseAuditModel, Entity.IBaseAppEntity>();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
using Pims.Api.Models.Base;
using Pims.Api.Models.Concepts.AcquisitionFile;
using Pims.Api.Models.Concepts.FinancialCode;
using Pims.Api.Models.Concepts.InterestHolder;
using Pims.Api.Models.Concepts.Project;

namespace Pims.Api.Models.Concepts.CompensationRequisition
Expand Down Expand Up @@ -42,18 +41,6 @@ public class CompensationRequisitionModel : BaseAuditModel

public List<CompensationFinancialModel> Financials { get; set; }

public long? AcquisitionOwnerId { get; set; }

public AcquisitionFileOwnerModel AcquisitionOwner { get; set; }

public long? InterestHolderId { get; set; }

public InterestHolderModel InterestHolder { get; set; }

public long? AcquisitionFileTeamId { get; set; }

public AcquisitionFileTeamModel AcquisitionFileTeam { get; set; }

public string LegacyPayee { get; set; }

public bool? IsPaymentInTrust { get; set; }
Expand All @@ -68,7 +55,9 @@ public class CompensationRequisitionModel : BaseAuditModel

public ProjectModel AlternateProject { get; set; }

public IEnumerable<CompReqLeaseStakeholderModel> CompReqLeaseStakeholder { get; set; }
public IEnumerable<CompReqPayeeModel> CompReqPayees { get; set; }

public IEnumerable<CompReqLeaseStakeholderModel> CompReqLeaseStakeholders { get; set; }

public IEnumerable<CompReqAcquisitionPropertyModel> CompReqAcquisitionProperties { get; set; }

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,12 +59,7 @@ public PimsCompensationRequisition GetById(long compensationRequisitionId)
.Include(x => x.Responsibility)
.Include(c => c.PimsCompReqFinancials)
.ThenInclude(y => y.FinancialActivityCode)
.Include(x => x.PimsCompReqPayees)
.ThenInclude(x => x.AcquisitionOwner)
.Include(x => x.PimsCompReqPayees)
.ThenInclude(x => x.AcquisitionFileTeam)
.Include(x => x.PimsCompReqPayees)
.ThenInclude(x => x.InterestHolder)
.Include(c => c.PimsCompReqPayees)
.Include(x => x.AlternateProject)
.Include(x => x.PimsLeaseStakeholderCompReqs)
.ThenInclude(y => y.LeaseStakeholder)
Expand Down Expand Up @@ -97,6 +92,7 @@ public PimsCompensationRequisition Update(PimsCompensationRequisition compensati
Context.UpdateChild<PimsCompensationRequisition, long, PimsPropAcqFlCompReq, long>(a => a.PimsPropAcqFlCompReqs, compensationRequisition.CompensationRequisitionId, compensationRequisition.PimsPropAcqFlCompReqs.ToArray(), true);
Context.UpdateChild<PimsCompensationRequisition, long, PimsPropLeaseCompReq, long>(a => a.PimsPropLeaseCompReqs, compensationRequisition.CompensationRequisitionId, compensationRequisition.PimsPropLeaseCompReqs.ToArray(), true);
Context.UpdateChild<PimsCompensationRequisition, long, PimsLeaseStakeholderCompReq, long>(a => a.PimsLeaseStakeholderCompReqs, compensationRequisition.CompensationRequisitionId, compensationRequisition.PimsLeaseStakeholderCompReqs.ToArray(), true);
Context.UpdateChild<PimsCompensationRequisition, long, PimsCompReqPayee, long>(a => a.PimsCompReqPayees, compensationRequisition.CompensationRequisitionId, compensationRequisition.PimsCompReqPayees.ToArray(), true);

return compensationRequisition;
}
Expand Down Expand Up @@ -187,12 +183,31 @@ public List<PimsPropertyLease> GetLeaseCompReqPropertiesById(long compensationRe
.ToList();
}

public IEnumerable<PimsCompReqFinancial> GetCompensationRequisitionFinancials(long id)
public IEnumerable<PimsCompReqFinancial> GetCompensationRequisitionFinancials(long compReqId)
{
return Context.PimsCompReqFinancials
.AsNoTracking()
.Include(y => y.FinancialActivityCode)
.Where(x => x.CompensationRequisitionId == id)
.Where(x => x.CompensationRequisitionId == compReqId)
.ToList();
}

public IEnumerable<PimsCompReqPayee> GetCompensationRequisitionPayees(long compReqId)
{
return Context.PimsCompReqPayees
.AsNoTracking()
.Include(x => x.AcquisitionOwner)
.Include(x => x.AcquisitionFileTeam)
.ThenInclude(y => y.Person)
.Include(x => x.AcquisitionFileTeam)
.ThenInclude(y => y.Organization)
.Include(x => x.InterestHolder)
.ThenInclude(y => y.InterestHolderTypeCodeNavigation)
.Include(x => x.InterestHolder)
.ThenInclude(y => y.Person)
.Include(x => x.InterestHolder)
.ThenInclude(y => y.Organization)
.Where(x => x.CompensationRequisitionId == compReqId)
.ToList();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ public interface ICompensationRequisitionRepository : IRepository<PimsCompensati

List<PimsPropertyLease> GetLeaseCompReqPropertiesById(long compensationRequisitionId);

IEnumerable<PimsCompReqFinancial> GetCompensationRequisitionFinancials(long id);
IEnumerable<PimsCompReqFinancial> GetCompensationRequisitionFinancials(long compReqId);

IEnumerable<PimsCompReqPayee> GetCompensationRequisitionPayees(long compReqId);
}
}
Loading

0 comments on commit 182b004

Please sign in to comment.