feat: add method to update institution contract status based on workshop completion
This commit is contained in:
@@ -51,4 +51,5 @@ public interface IInstitutionContractRepository : IRepository<long, InstitutionC
|
||||
Task<List<RegistrationWorkflowItemsViewModel>> RegistrationWorkflowItems(long institutionContractId);
|
||||
Task<InstitutionContractWorkshopDetail> GetInstitutionWorkshopDetails(long institutionWorkshopDetailsId);
|
||||
Task<InstitutionContract> GetIncludeWorkshopDetailsAsync(long institutionContractId);
|
||||
void UpdateStatusIfNeeded(long institutionContractId);
|
||||
}
|
||||
@@ -1047,16 +1047,18 @@ public class WorkshopAppliction : IWorkshopApplication
|
||||
// return operation.Failed("لطفا نوع ارسال لیست بیمه را مشخص کنید");
|
||||
var account = new AccountViewModel();
|
||||
|
||||
var institutionContract =await _institutionContractRepository.GetIncludeWorkshopDetailsAsync(contractWorkshopDetail.InstitutionContractId);
|
||||
var institutionContract =
|
||||
await _institutionContractRepository.GetIncludeWorkshopDetailsAsync(contractWorkshopDetail
|
||||
.InstitutionContractId);
|
||||
if (institutionContract == null)
|
||||
{
|
||||
return operation.Failed("قرارداد مالی موسسه یافت نشد");
|
||||
}
|
||||
|
||||
if (command.HasRollCallFreeVip == "true")
|
||||
{
|
||||
|
||||
// if (institutionContract == null)
|
||||
// return operation.Failed("بدلیل نداشتن قرار داد مالی نمیتوانید سرویس حضور غیاب را فعال کنید");
|
||||
// if (institutionContract == null)
|
||||
// return operation.Failed("بدلیل نداشتن قرار داد مالی نمیتوانید سرویس حضور غیاب را فعال کنید");
|
||||
|
||||
account = _personalContractingPartyRepository.GetAccountByPersonalContractingParty(institutionContract
|
||||
.ContractingPartyId);
|
||||
@@ -1095,8 +1097,9 @@ public class WorkshopAppliction : IWorkshopApplication
|
||||
};
|
||||
_rollCallServiceApplication.Create(commandSave);
|
||||
}
|
||||
contractWorkshopDetail.SetWorkshopId(workshop.id);
|
||||
|
||||
contractWorkshopDetail.SetWorkshopId(workshop.id);
|
||||
await _workshopRepository.SaveChangesAsync();
|
||||
|
||||
foreach (var e in employerIds)
|
||||
{
|
||||
@@ -1111,6 +1114,8 @@ public class WorkshopAppliction : IWorkshopApplication
|
||||
|
||||
var op = _workshopRepository.CreateAccountLeftWorkAndWorkshopAccounts(accountIds.Distinct().ToList(),
|
||||
workshop.id);
|
||||
|
||||
_institutionContractRepository.UpdateStatusIfNeeded(institutionContract.id);
|
||||
|
||||
if (!op.IsSuccedded)
|
||||
return op;
|
||||
|
||||
@@ -1556,6 +1556,23 @@ public class InstitutionContractRepository : RepositoryBase<long, InstitutionCon
|
||||
.FirstOrDefaultAsync(x => x.id == institutionContractId);
|
||||
}
|
||||
|
||||
public void UpdateStatusIfNeeded(long institutionContractId)
|
||||
{
|
||||
var institutionContract = _context.InstitutionContractSet
|
||||
.Include(x => x.WorkshopDetails)
|
||||
.FirstOrDefault(x => x.id == institutionContractId);
|
||||
if (institutionContract == null)
|
||||
throw new NotFoundException("قرارداد مؤسسه یافت نشد");
|
||||
|
||||
if (institutionContract.Status == InstitutionContractStatus.Completed)
|
||||
return;
|
||||
if (institutionContract.WorkshopDetails.All(x => x.WorkshopCreated))
|
||||
institutionContract.Complete();
|
||||
|
||||
_context.SaveChanges();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user