Compare commits
38 Commits
Feature/cl
...
Feature/pr
| Author | SHA1 | Date | |
|---|---|---|---|
| 87ff7976fb | |||
| a533850f24 | |||
| b5c1a4c29d | |||
| 28607dec66 | |||
| 4a041ca8e2 | |||
|
|
de0de6fde8 | ||
|
|
70447a74ef | ||
| 90aa6058f0 | |||
| 3df296f205 | |||
| 6a2e4405de | |||
| 88c10ac141 | |||
|
|
8de3939675 | ||
| e78c838cab | |||
|
|
5e4b8a3a80 | ||
|
|
a18984fec1 | ||
| a178fcd202 | |||
| 9e92d2215f | |||
| c63eb23b22 | |||
| 238926118f | |||
| c874164ca2 | |||
| d2f0ed46ae | |||
| 40dd90074b | |||
| 452b0b6277 | |||
| 720e998a54 | |||
| 626722e805 | |||
| 5e5910e0fd | |||
| 5d81731512 | |||
| 511932fa58 | |||
| 95891d5bae | |||
| f3fa76c292 | |||
| ac6bbc3587 | |||
| 947d7590f4 | |||
| 91403a52a3 | |||
| 7e80342f80 | |||
| 5e92207778 | |||
|
|
29484e9565 | ||
| ba640494d2 | |||
| 6974a505b4 |
@@ -32,7 +32,7 @@ public static class StaticWorkshopAccounts
|
|||||||
/// 392 - عمار حسن دوست
|
/// 392 - عمار حسن دوست
|
||||||
/// 20 - سمیرا الهی نیا
|
/// 20 - سمیرا الهی نیا
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static List<long> StaticAccountIds = [2, 3, 380, 381, 392, 20];
|
public static List<long> StaticAccountIds = [2, 3, 380, 381, 392, 20, 476];
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// این تاریخ در جدول اکانت لفت ورک به این معنیست
|
/// این تاریخ در جدول اکانت لفت ورک به این معنیست
|
||||||
|
|||||||
@@ -27,4 +27,3 @@ public class NullFaceEmbeddingNotificationService : IFaceEmbeddingNotificationSe
|
|||||||
return Task.CompletedTask;
|
return Task.CompletedTask;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -290,4 +290,13 @@ public class PersonalContractingParty : EntityBase
|
|||||||
this.Gender = gender;
|
this.Gender = gender;
|
||||||
this.IsAuthenticated = true;
|
this.IsAuthenticated = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void EditLegalPartyFromInstitution(string legalPosition, string companyName,
|
||||||
|
string registerId,string nationalId)
|
||||||
|
{
|
||||||
|
LegalPosition = legalPosition;
|
||||||
|
LName = companyName;
|
||||||
|
RegisterId = registerId;
|
||||||
|
NationalId = nationalId;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -37,7 +37,7 @@ namespace Company.Domain.EmployeeDocumentsAgg
|
|||||||
{
|
{
|
||||||
WorkshopId = workshopId;
|
WorkshopId = workshopId;
|
||||||
EmployeeId = employeeId;
|
EmployeeId = employeeId;
|
||||||
Gender = gender;
|
Gender = gender??string.Empty;
|
||||||
}
|
}
|
||||||
|
|
||||||
private EmployeeDocuments()
|
private EmployeeDocuments()
|
||||||
|
|||||||
@@ -56,6 +56,9 @@ public interface IInstitutionContractRepository : IRepository<long, InstitutionC
|
|||||||
void UpdateStatusIfNeeded(long institutionContractId);
|
void UpdateStatusIfNeeded(long institutionContractId);
|
||||||
Task<GetInstitutionVerificationDetailsViewModel> GetVerificationDetails(Guid id);
|
Task<GetInstitutionVerificationDetailsViewModel> GetVerificationDetails(Guid id);
|
||||||
Task<InstitutionContract> GetByPublicIdAsync(Guid id);
|
Task<InstitutionContract> GetByPublicIdAsync(Guid id);
|
||||||
|
InstitutionContractDiscountResponse CalculateDiscount(InstitutionContractSetDiscountRequest request);
|
||||||
|
InstitutionContractDiscountResponse ResetDiscountCreate(InstitutionContractResetDiscountForCreateRequest request);
|
||||||
|
|
||||||
|
|
||||||
#region Extension
|
#region Extension
|
||||||
|
|
||||||
@@ -63,9 +66,13 @@ public interface IInstitutionContractRepository : IRepository<long, InstitutionC
|
|||||||
Task<InstitutionContractExtensionWorkshopsResponse> GetExtensionWorkshops(InstitutionContractExtensionWorkshopsRequest request);
|
Task<InstitutionContractExtensionWorkshopsResponse> GetExtensionWorkshops(InstitutionContractExtensionWorkshopsRequest request);
|
||||||
Task<InstitutionContractExtensionPlanResponse> GetExtensionInstitutionPlan(InstitutionContractExtensionPlanRequest request);
|
Task<InstitutionContractExtensionPlanResponse> GetExtensionInstitutionPlan(InstitutionContractExtensionPlanRequest request);
|
||||||
Task<InstitutionContractExtensionPaymentResponse> GetExtensionPaymentMethod(InstitutionContractExtensionPaymentRequest request);
|
Task<InstitutionContractExtensionPaymentResponse> GetExtensionPaymentMethod(InstitutionContractExtensionPaymentRequest request);
|
||||||
|
Task<InstitutionContractDiscountResponse> SetDiscountForExtension(
|
||||||
|
InstitutionContractSetDiscountForExtensionRequest request);
|
||||||
|
Task<InstitutionContractDiscountResponse> ResetDiscountForExtension(InstitutionContractResetDiscountForExtensionRequest request);
|
||||||
|
|
||||||
Task<OperationResult> ExtensionComplete(InstitutionContractExtensionCompleteRequest request);
|
Task<OperationResult> ExtensionComplete(InstitutionContractExtensionCompleteRequest request);
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Upgrade(Amendment)
|
#region Upgrade(Amendment)
|
||||||
|
|
||||||
@@ -145,4 +152,6 @@ public interface IInstitutionContractRepository : IRepository<long, InstitutionC
|
|||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
Task<long> GetIdByInstallmentId(long installmentId);
|
||||||
}
|
}
|
||||||
@@ -19,7 +19,8 @@ public class InstitutionContract : EntityBase
|
|||||||
string contractEndFa, double contractAmount, double dailyCompenseation, double obligation,
|
string contractEndFa, double contractAmount, double dailyCompenseation, double obligation,
|
||||||
double totalAmount, int extensionNo, string workshopManualCount, string employeeManualCount, string description,
|
double totalAmount, int extensionNo, string workshopManualCount, string employeeManualCount, string description,
|
||||||
string officialCompany, string typeOfcontract, string hasValueAddedTax, double valueAddedTax,
|
string officialCompany, string typeOfcontract, string hasValueAddedTax, double valueAddedTax,
|
||||||
List<InstitutionContractWorkshopInitial> workshopDetails, long lawId)
|
List<InstitutionContractWorkshopInitial> workshopDetails, long lawId,
|
||||||
|
int discountPercentage, double discountAmount)
|
||||||
{
|
{
|
||||||
ContractNo = contractNo;
|
ContractNo = contractNo;
|
||||||
RepresentativeId = representativeId;
|
RepresentativeId = representativeId;
|
||||||
@@ -57,8 +58,12 @@ public class InstitutionContract : EntityBase
|
|||||||
WorkshopGroup = new InstitutionContractWorkshopGroup(id, workshopDetails);
|
WorkshopGroup = new InstitutionContractWorkshopGroup(id, workshopDetails);
|
||||||
PublicId = Guid.NewGuid();
|
PublicId = Guid.NewGuid();
|
||||||
LawId = lawId;
|
LawId = lawId;
|
||||||
|
DiscountPercentage = discountPercentage;
|
||||||
|
DiscountAmount = discountAmount;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public long LawId { get; private set; }
|
public long LawId { get; private set; }
|
||||||
|
|
||||||
public string ContractNo { get; private set; }
|
public string ContractNo { get; private set; }
|
||||||
@@ -128,6 +133,10 @@ public class InstitutionContract : EntityBase
|
|||||||
public DateTime VerifyCodeCreation { get; private set; }
|
public DateTime VerifyCodeCreation { get; private set; }
|
||||||
public string VerifierFullName { get; private set; }
|
public string VerifierFullName { get; private set; }
|
||||||
public string VerifierPhoneNumber { get; private set; }
|
public string VerifierPhoneNumber { get; private set; }
|
||||||
|
|
||||||
|
public double DiscountAmount { get; private set; }
|
||||||
|
|
||||||
|
public int DiscountPercentage { get; private set; }
|
||||||
|
|
||||||
[NotMapped] public bool VerifyCodeExpired => VerifyCodeCreation.Add(ExpireTime) <= DateTime.Now;
|
[NotMapped] public bool VerifyCodeExpired => VerifyCodeCreation.Add(ExpireTime) <= DateTime.Now;
|
||||||
|
|
||||||
|
|||||||
@@ -65,6 +65,7 @@ public class InstitutionContractExtensionTemp
|
|||||||
MonthlyPayment = monthly;
|
MonthlyPayment = monthly;
|
||||||
OneTimePayment = oneTime;
|
OneTimePayment = oneTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ public class CreateInstitutionContractRequest
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// مبلغ کل قرارداد
|
/// مبلغ کل قرارداد
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public double TotalAmount { get; set; }
|
public double PaymentAmount { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// آیا قرارداد اقساطی است؟
|
/// آیا قرارداد اقساطی است؟
|
||||||
@@ -102,6 +102,10 @@ public class CreateInstitutionContractRequest
|
|||||||
public double OneMonthAmount { get; set; }
|
public double OneMonthAmount { get; set; }
|
||||||
|
|
||||||
public long LawId { get; set; }
|
public long LawId { get; set; }
|
||||||
|
|
||||||
|
public int DiscountPercentage { get; set; }
|
||||||
|
|
||||||
|
public double DiscountAmount { get; set; }
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// مدت زمان قرارداد نهاد
|
/// مدت زمان قرارداد نهاد
|
||||||
|
|||||||
@@ -215,7 +215,9 @@ public interface IInstitutionContractApplication
|
|||||||
Task<OperationResult<OtpResultViewModel>> SendVerifyOtp(Guid id);
|
Task<OperationResult<OtpResultViewModel>> SendVerifyOtp(Guid id);
|
||||||
Task<OperationResult<string>> VerifyOtpAndMakeGateway(Guid publicId, string code, string callbackUrl);
|
Task<OperationResult<string>> VerifyOtpAndMakeGateway(Guid publicId, string code, string callbackUrl);
|
||||||
Task<InstitutionContractWorkshopDetailViewModel> GetWorkshopInitialDetails(long workshopDetailsId);
|
Task<InstitutionContractWorkshopDetailViewModel> GetWorkshopInitialDetails(long workshopDetailsId);
|
||||||
|
InstitutionContractDiscountResponse CalculateDiscount(InstitutionContractSetDiscountRequest request);
|
||||||
|
InstitutionContractDiscountResponse ResetDiscountCreate(InstitutionContractResetDiscountForCreateRequest request);
|
||||||
|
|
||||||
#region Extension
|
#region Extension
|
||||||
|
|
||||||
Task<InstitutionContractExtensionInquiryResult> GetExtensionInquiry(long previousContractId);
|
Task<InstitutionContractExtensionInquiryResult> GetExtensionInquiry(long previousContractId);
|
||||||
@@ -228,6 +230,12 @@ public interface IInstitutionContractApplication
|
|||||||
|
|
||||||
Task<InstitutionContractExtensionPaymentResponse> GetExtensionPaymentMethod(
|
Task<InstitutionContractExtensionPaymentResponse> GetExtensionPaymentMethod(
|
||||||
InstitutionContractExtensionPaymentRequest request);
|
InstitutionContractExtensionPaymentRequest request);
|
||||||
|
|
||||||
|
Task<InstitutionContractDiscountResponse> SetDiscountForExtension(
|
||||||
|
InstitutionContractSetDiscountForExtensionRequest request);
|
||||||
|
Task<InstitutionContractDiscountResponse> ResetDiscountForExtension(
|
||||||
|
InstitutionContractResetDiscountForExtensionRequest request);
|
||||||
|
|
||||||
|
|
||||||
Task<OperationResult> ExtensionComplete(InstitutionContractExtensionCompleteRequest request);
|
Task<OperationResult> ExtensionComplete(InstitutionContractExtensionCompleteRequest request);
|
||||||
Task<List<InstitutionContractSelectListViewModel>> GetInstitutionContractSelectList(string search,string selected);
|
Task<List<InstitutionContractSelectListViewModel>> GetInstitutionContractSelectList(string search,string selected);
|
||||||
@@ -253,6 +261,75 @@ public interface IInstitutionContractApplication
|
|||||||
Task<InstitutionContractPrintViewModel> PrintOneAsync(long id);
|
Task<InstitutionContractPrintViewModel> PrintOneAsync(long id);
|
||||||
|
|
||||||
Task<OperationResult> SetPendingWorkflow(long entityId);
|
Task<OperationResult> SetPendingWorkflow(long entityId);
|
||||||
|
Task<long> GetIdByInstallmentId(long installmentId);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public class InstitutionContractDiscountResponse
|
||||||
|
{
|
||||||
|
public InstitutionContractDiscountOneTimeViewModel OneTime { get; set; }
|
||||||
|
public InstitutionContractDiscountMonthlyViewModel Monthly { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class InstitutionContractDiscountMonthlyViewModel:InstitutionContractDiscountOneTimeViewModel
|
||||||
|
{
|
||||||
|
public List<MonthlyInstallment> Installments { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class InstitutionContractDiscountOneTimeViewModel
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// مجموع مبالغ
|
||||||
|
/// </summary>
|
||||||
|
public string TotalAmount { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// ارزش افزوده
|
||||||
|
/// </summary>
|
||||||
|
public string Tax { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// مبلغ قابل پرداخت
|
||||||
|
/// </summary>
|
||||||
|
public string PaymentAmount { get; set; }
|
||||||
|
|
||||||
|
public string DiscountedAmount { get; set; }
|
||||||
|
|
||||||
|
public int DiscountPercetage { get; set; }
|
||||||
|
|
||||||
|
public string Obligation { get; set; }
|
||||||
|
|
||||||
|
public string OneMonthAmount { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class InstitutionContractResetDiscountForCreateRequest
|
||||||
|
{
|
||||||
|
public int DiscountPercentage { get; set; }
|
||||||
|
public double TotalAmount { get; set; }
|
||||||
|
public bool IsInstallment { get; set; }
|
||||||
|
public InstitutionContractDuration Duration { get; set; }
|
||||||
|
public double OneMonthAmount { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class InstitutionContractSetDiscountForExtensionRequest
|
||||||
|
{
|
||||||
|
public Guid TempId { get; set; }
|
||||||
|
public int DiscountPercentage { get; set; }
|
||||||
|
public double TotalAmount { get; set; }
|
||||||
|
public bool IsInstallment { get; set; }
|
||||||
|
}
|
||||||
|
public class InstitutionContractResetDiscountForExtensionRequest
|
||||||
|
{
|
||||||
|
public Guid TempId { get; set; }
|
||||||
|
public bool IsInstallment { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public class InstitutionContractSetDiscountRequest
|
||||||
|
{
|
||||||
|
public int DiscountPercentage { get; set; }
|
||||||
|
public double TotalAmount { get; set; }
|
||||||
|
public InstitutionContractDuration Duration { get; set; }
|
||||||
|
public double OneMonthAmount { get; set; }
|
||||||
|
public bool IsInstallment { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class InstitutionContractPrintViewModel
|
public class InstitutionContractPrintViewModel
|
||||||
|
|||||||
@@ -17,6 +17,9 @@ public class InstitutionContractPaymentOneTimeViewModel
|
|||||||
/// مبلغ قابل پرداخت
|
/// مبلغ قابل پرداخت
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string PaymentAmount { get; set; }
|
public string PaymentAmount { get; set; }
|
||||||
|
|
||||||
|
public string DiscountedAmount { get; set; }
|
||||||
|
public int DiscountPercetage { get; set; }
|
||||||
}
|
}
|
||||||
public class InstitutionContractPaymentMonthlyViewModel:InstitutionContractPaymentOneTimeViewModel
|
public class InstitutionContractPaymentMonthlyViewModel:InstitutionContractPaymentOneTimeViewModel
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1585,7 +1585,12 @@ public class EmployeeAplication : RepositoryBase<long, Employee>, IEmployeeAppli
|
|||||||
if (employee.IsAuthorized == false)
|
if (employee.IsAuthorized == false)
|
||||||
{
|
{
|
||||||
var apiResult = await _uidService.GetPersonalInfo(nationalCode, birthDate);
|
var apiResult = await _uidService.GetPersonalInfo(nationalCode, birthDate);
|
||||||
if (apiResult.ResponseContext.Status.Code == 14)
|
|
||||||
|
if (apiResult == null)
|
||||||
|
{
|
||||||
|
return op.Failed("این پرسنل در بانک اطلاعات موجود میباشد");
|
||||||
|
}
|
||||||
|
if (apiResult.ResponseContext.Status.Code is 14 or 3)
|
||||||
{
|
{
|
||||||
return op.Failed("این پرسنل در بانک اطلاعات موجود میباشد");
|
return op.Failed("این پرسنل در بانک اطلاعات موجود میباشد");
|
||||||
|
|
||||||
@@ -1644,8 +1649,13 @@ public class EmployeeAplication : RepositoryBase<long, Employee>, IEmployeeAppli
|
|||||||
};
|
};
|
||||||
return op.Succcedded(data);
|
return op.Succcedded(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
var apiResult = await _uidService.GetPersonalInfo(nationalCode, birthDate);
|
var apiResult = await _uidService.GetPersonalInfo(nationalCode, birthDate);
|
||||||
if (apiResult.ResponseContext.Status.Code == 14)
|
if (apiResult == null)
|
||||||
|
{
|
||||||
|
return op.Failed("سامانه احراز هویت در دسترس نمیباشد لطفا اطلاعات پرسنل را به صورت دستی وارد کنید", new EmployeeDataFromApiViewModel() { AuthorizedCanceled = true });
|
||||||
|
}
|
||||||
|
if (apiResult.ResponseContext.Status.Code is 14 or 3)
|
||||||
{
|
{
|
||||||
return op.Failed("سامانه احراز هویت در دسترس نمیباشد لطفا اطلاعات پرسنل را به صورت دستی وارد کنید", new EmployeeDataFromApiViewModel() { AuthorizedCanceled = true });
|
return op.Failed("سامانه احراز هویت در دسترس نمیباشد لطفا اطلاعات پرسنل را به صورت دستی وارد کنید", new EmployeeDataFromApiViewModel() { AuthorizedCanceled = true });
|
||||||
|
|
||||||
|
|||||||
@@ -1485,12 +1485,12 @@ public class EmployerApplication : IEmployerApplication
|
|||||||
return opration.Failed("نام شرکت وارد شده تکراری است");
|
return opration.Failed("نام شرکت وارد شده تکراری است");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_EmployerRepository.Exists(x =>
|
// if (_EmployerRepository.Exists(x =>
|
||||||
x.RegisterId == command.RegisterId && !string.IsNullOrWhiteSpace(command.RegisterId) &&
|
// x.RegisterId == command.RegisterId && !string.IsNullOrWhiteSpace(command.RegisterId) &&
|
||||||
x.RegisterId != null))
|
// x.RegisterId != null))
|
||||||
{
|
// {
|
||||||
return opration.Failed(" شماره ثبت وارد شده تکراری است");
|
// return opration.Failed(" شماره ثبت وارد شده تکراری است");
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(command.NationalId) && command.NationalId.Length != 11)
|
if (!string.IsNullOrEmpty(command.NationalId) && command.NationalId.Length != 11)
|
||||||
{
|
{
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -290,8 +290,34 @@ public class LeftWorkTempApplication : ILeftWorkTempApplication
|
|||||||
|
|
||||||
|
|
||||||
//get rollCallEmployee associated with those leftworks which have a higher end date than leftworkDate
|
//get rollCallEmployee associated with those leftworks which have a higher end date than leftworkDate
|
||||||
|
|
||||||
var rollCallsEmployee = _rollCallEmployeeRepository.GetBy(employeeId, workshopId);
|
var rollCallsEmployee = _rollCallEmployeeRepository.GetBy(employeeId, workshopId);
|
||||||
|
|
||||||
|
if (rollCallsEmployee != null)
|
||||||
|
{
|
||||||
|
var status = rollCallsEmployee.EmployeesStatus.OrderByDescending(z => z.StartDate)
|
||||||
|
.FirstOrDefault(rollCallEmployeeStatus => rollCallEmployeeStatus.StartDate.Date < maxLeftWork.LeftWorkDateGr
|
||||||
|
&& rollCallEmployeeStatus.EndDate.Date >
|
||||||
|
maxLeftWork.LeftWorkDateGr);
|
||||||
|
|
||||||
|
if (status != null)
|
||||||
|
{
|
||||||
|
var adjust = new AdjustRollCallEmployeesWithEmployeeLeftWork()
|
||||||
|
{
|
||||||
|
LeaveDate = maxLeftWork.LeftWorkDateGr,
|
||||||
|
RollCallStatusId = status.id
|
||||||
|
};
|
||||||
|
_rollCallEmployeeStatusRepository.AdjustRollCallStatusEndDates([adjust]);
|
||||||
|
}
|
||||||
|
|
||||||
|
var rollCallEmployeeStatusList = rollCallsEmployee.EmployeesStatus
|
||||||
|
.Where(x => x.StartDate >= maxLeftWork.LeftWorkDateGr).ToList();
|
||||||
|
if (rollCallEmployeeStatusList.Any())
|
||||||
|
{
|
||||||
|
_rollCallEmployeeStatusRepository.RemoveRange(rollCallEmployeeStatusList);
|
||||||
|
_rollCallEmployeeStatusRepository.SaveChanges();
|
||||||
|
}
|
||||||
|
}
|
||||||
// var joinedList = rollCallsEmployee.Join(leftWorks, x => x.WorkshopId, y => y.WorkshopId, (x, y) => new
|
// var joinedList = rollCallsEmployee.Join(leftWorks, x => x.WorkshopId, y => y.WorkshopId, (x, y) => new
|
||||||
// {
|
// {
|
||||||
// x.WorkshopId,
|
// x.WorkshopId,
|
||||||
@@ -301,27 +327,6 @@ public class LeftWorkTempApplication : ILeftWorkTempApplication
|
|||||||
// });
|
// });
|
||||||
|
|
||||||
|
|
||||||
var status = rollCallsEmployee.EmployeesStatus.OrderByDescending(z => z.StartDate)
|
|
||||||
.FirstOrDefault(rollCallEmployeeStatus => rollCallEmployeeStatus.StartDate.Date < maxLeftWork.LeftWorkDateGr
|
|
||||||
&& rollCallEmployeeStatus.EndDate.Date >
|
|
||||||
maxLeftWork.LeftWorkDateGr);
|
|
||||||
|
|
||||||
if (status != null)
|
|
||||||
{
|
|
||||||
var adjust = new AdjustRollCallEmployeesWithEmployeeLeftWork()
|
|
||||||
{
|
|
||||||
LeaveDate = maxLeftWork.LeftWorkDateGr,
|
|
||||||
RollCallStatusId = status.id
|
|
||||||
};
|
|
||||||
_rollCallEmployeeStatusRepository.AdjustRollCallStatusEndDates([adjust]);
|
|
||||||
}
|
|
||||||
|
|
||||||
var rollCallEmployeeStatusList = rollCallsEmployee.EmployeesStatus
|
|
||||||
.Where(x => x.StartDate >= maxLeftWork.LeftWorkDateGr).ToList();
|
|
||||||
if (rollCallEmployeeStatusList.Any())
|
|
||||||
{
|
|
||||||
_rollCallEmployeeStatusRepository.RemoveRange(rollCallEmployeeStatusList);
|
|
||||||
_rollCallEmployeeStatusRepository.SaveChanges();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -240,6 +240,8 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
|
|||||||
result.IdNumberSerial = createTemp.IdNumberSerial;
|
result.IdNumberSerial = createTemp.IdNumberSerial;
|
||||||
result.IdNumber = idNumber;
|
result.IdNumber = idNumber;
|
||||||
result.NationalCode = createTemp.NationalCode;
|
result.NationalCode = createTemp.NationalCode;
|
||||||
|
result.Phone = createTemp.Phone;
|
||||||
|
result.IdNumberSeri = createTemp.IdNumberSeri;
|
||||||
|
|
||||||
|
|
||||||
return op.Succcedded(result);
|
return op.Succcedded(result);
|
||||||
|
|||||||
11347
CompanyManagment.EFCore/Migrations/20251129103132_add discount to institutioncontract.Designer.cs
generated
Normal file
11347
CompanyManagment.EFCore/Migrations/20251129103132_add discount to institutioncontract.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,40 @@
|
|||||||
|
using Microsoft.EntityFrameworkCore.Migrations;
|
||||||
|
|
||||||
|
#nullable disable
|
||||||
|
|
||||||
|
namespace CompanyManagment.EFCore.Migrations
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
public partial class adddiscounttoinstitutioncontract : Migration
|
||||||
|
{
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.AddColumn<double>(
|
||||||
|
name: "DiscountAmount",
|
||||||
|
table: "InstitutionContracts",
|
||||||
|
type: "float",
|
||||||
|
nullable: false,
|
||||||
|
defaultValue: 0.0);
|
||||||
|
|
||||||
|
migrationBuilder.AddColumn<int>(
|
||||||
|
name: "DiscountPercentage",
|
||||||
|
table: "InstitutionContracts",
|
||||||
|
type: "int",
|
||||||
|
nullable: false,
|
||||||
|
defaultValue: 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
protected override void Down(MigrationBuilder migrationBuilder)
|
||||||
|
{
|
||||||
|
migrationBuilder.DropColumn(
|
||||||
|
name: "DiscountAmount",
|
||||||
|
table: "InstitutionContracts");
|
||||||
|
|
||||||
|
migrationBuilder.DropColumn(
|
||||||
|
name: "DiscountPercentage",
|
||||||
|
table: "InstitutionContracts");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3265,6 +3265,12 @@ namespace CompanyManagment.EFCore.Migrations
|
|||||||
.HasMaxLength(10000)
|
.HasMaxLength(10000)
|
||||||
.HasColumnType("nvarchar(max)");
|
.HasColumnType("nvarchar(max)");
|
||||||
|
|
||||||
|
b.Property<double>("DiscountAmount")
|
||||||
|
.HasColumnType("float");
|
||||||
|
|
||||||
|
b.Property<int>("DiscountPercentage")
|
||||||
|
.HasColumnType("int");
|
||||||
|
|
||||||
b.Property<string>("EmployeeManualCount")
|
b.Property<string>("EmployeeManualCount")
|
||||||
.HasMaxLength(10)
|
.HasMaxLength(10)
|
||||||
.HasColumnType("nvarchar(10)");
|
.HasColumnType("nvarchar(10)");
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -4723,6 +4723,8 @@ public class RollCallMandatoryRepository : RepositoryBase<long, RollCall>, IRoll
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region KebabMahdiAbsentsCaclculation
|
#region KebabMahdiAbsentsCaclculation
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var rollCallDays = groupedRollCall.Count > mandatoryDays ? mandatoryDays : groupedRollCall.Count;
|
var rollCallDays = groupedRollCall.Count > mandatoryDays ? mandatoryDays : groupedRollCall.Count;
|
||||||
|
|
||||||
@@ -5108,6 +5110,45 @@ public class RollCallMandatoryRepository : RepositoryBase<long, RollCall>, IRoll
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region اگر که پرسنل در روز های جمعه یا پنجشنبه غیبت داشت یک روز به غیبت اضافه شود
|
||||||
|
//این منطق زمانی برقرار هست که مرخصی در اون روز نداشته باشه
|
||||||
|
|
||||||
|
// ساخت لیست روزهای بین شروع و پایان قرارداد
|
||||||
|
var contractDaysList = Enumerable.Range(0, (contractEnd - contractStart).Days + 1)
|
||||||
|
.Select(offset => contractStart.AddDays(offset))
|
||||||
|
.ToList();
|
||||||
|
|
||||||
|
// کم کردن روزهایی که حضور دارند
|
||||||
|
var absentDaysList = contractDaysList
|
||||||
|
.Where(date => !groupedRollCall.Any(g => g.ShiftDate.Date == date.Date))
|
||||||
|
.ToList();
|
||||||
|
|
||||||
|
var absentFridaysOrThursdays = absentDaysList
|
||||||
|
.Where(date => date.DayOfWeek is DayOfWeek.Friday or DayOfWeek.Thursday)
|
||||||
|
.ToList();
|
||||||
|
|
||||||
|
var leaveList = _context.LeaveList
|
||||||
|
.Where(x => x.EmployeeId == employeeId
|
||||||
|
&& x.WorkshopId == workshopId
|
||||||
|
&& x.IsAccepted == true
|
||||||
|
&& x.StartLeave <= contractEnd
|
||||||
|
&& x.EndLeave >= contractStart
|
||||||
|
&& x.LeaveType == "استحقاقی"
|
||||||
|
&& x.PaidLeaveType =="روزانه")
|
||||||
|
.Select(x => new { x.StartLeave, x.EndLeave })
|
||||||
|
.ToList();
|
||||||
|
|
||||||
|
// بررسی کدام روزهای غایب جمعه/پنجشنبه در بازه مرخصی قرار ندارند
|
||||||
|
var absentFridaysOrThursdaysWithoutLeave = absentFridaysOrThursdays
|
||||||
|
.Where(date => !leaveList.Any(leave => date.Date >= leave.StartLeave.Date && date.Date <= leave.EndLeave.Date))
|
||||||
|
.ToList();
|
||||||
|
|
||||||
|
// تعداد روزهای غایب جمعه/پنجشنبه بدون مرخصی
|
||||||
|
int absentFridaysOrThursdaysWithoutLeaveCount = absentFridaysOrThursdaysWithoutLeave.Count;
|
||||||
|
|
||||||
|
absentsDeductionAmount += absentFridaysOrThursdaysWithoutLeaveCount * dailyWage;
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
return new CustomizeCheckoutMandatoryViewModel
|
return new CustomizeCheckoutMandatoryViewModel
|
||||||
|
|||||||
@@ -70,13 +70,23 @@ public class UidService : IUidService
|
|||||||
|
|
||||||
if (!requestResult.IsSuccessStatusCode)
|
if (!requestResult.IsSuccessStatusCode)
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
var responseResult = await requestResult.Content.ReadFromJsonAsync<PersonalInfoResponse>();
|
var responseResult = await requestResult.Content.ReadFromJsonAsync<PersonalInfoResponse>();
|
||||||
|
|
||||||
if (responseResult.BasicInformation != null)
|
if (responseResult.BasicInformation != null)
|
||||||
{
|
{
|
||||||
|
if (string.IsNullOrWhiteSpace(responseResult.BasicInformation.FirstName))
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
responseResult.BasicInformation.FirstName = responseResult.BasicInformation.FirstName?.ToPersian();
|
responseResult.BasicInformation.FirstName = responseResult.BasicInformation.FirstName?.ToPersian();
|
||||||
responseResult.BasicInformation.LastName = responseResult.BasicInformation.LastName?.ToPersian();
|
responseResult.BasicInformation.LastName = responseResult.BasicInformation.LastName?.ToPersian();
|
||||||
responseResult.BasicInformation.FatherName = responseResult.BasicInformation.FatherName?.ToPersian();
|
responseResult.BasicInformation.FatherName = responseResult.BasicInformation.FatherName?.ToPersian();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
// ذخیره اطلاعات در جدول AuthorizedPerson
|
// ذخیره اطلاعات در جدول AuthorizedPerson
|
||||||
await SaveAuthorizedPersonData(responseResult, nationalCode, birthDate);
|
await SaveAuthorizedPersonData(responseResult, nationalCode, birthDate);
|
||||||
|
|||||||
@@ -451,8 +451,19 @@ public class institutionContractController : AdminBaseController
|
|||||||
|
|
||||||
return operationResult;
|
return operationResult;
|
||||||
}
|
}
|
||||||
|
[HttpPost("create/set-discount")]
|
||||||
|
public ActionResult<InstitutionContractDiscountResponse> SetDiscountForInstitutionContract([FromBody]InstitutionContractSetDiscountRequest request)
|
||||||
|
{
|
||||||
|
var res = _institutionContractApplication.CalculateDiscount(request);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost("create/reset-discount")]
|
||||||
|
public ActionResult<InstitutionContractDiscountResponse> ResetDiscountForCreate([FromBody]InstitutionContractResetDiscountForCreateRequest request)
|
||||||
|
{
|
||||||
|
var res = _institutionContractApplication.ResetDiscountCreate(request);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -545,7 +556,21 @@ public class institutionContractController : AdminBaseController
|
|||||||
var res =await _institutionContractApplication.GetExtensionPaymentMethod(request);
|
var res =await _institutionContractApplication.GetExtensionPaymentMethod(request);
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[HttpPost("extension/set-discount")]
|
||||||
|
public async Task<ActionResult<InstitutionContractDiscountResponse>> SetDiscountForExtension([FromBody]InstitutionContractSetDiscountForExtensionRequest request)
|
||||||
|
{
|
||||||
|
var res =await _institutionContractApplication.SetDiscountForExtension(request);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPost("extension/reset-discount")]
|
||||||
|
public async Task<ActionResult<InstitutionContractDiscountResponse>> ResetDiscountForExtension([FromBody]InstitutionContractResetDiscountForExtensionRequest request)
|
||||||
|
{
|
||||||
|
var res =await _institutionContractApplication.ResetDiscountForExtension(request);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
[HttpPost("extenstion/complete")]
|
[HttpPost("extenstion/complete")]
|
||||||
public async Task<ActionResult<OperationResult>> ExtensionComplete([FromBody]InstitutionContractExtensionCompleteRequest request)
|
public async Task<ActionResult<OperationResult>> ExtensionComplete([FromBody]InstitutionContractExtensionCompleteRequest request)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -507,6 +507,13 @@
|
|||||||
</svg>
|
</svg>
|
||||||
لیست تراکنش های درگاه پرداخت
|
لیست تراکنش های درگاه پرداخت
|
||||||
</a></li>
|
</a></li>
|
||||||
|
<li permission="307" style=";white-space: nowrap">
|
||||||
|
<a class="clik10 " href="https://admin@(AppSetting.Value.Domain)/account-number-database" style="width: 7px;margin: 0 6px;">
|
||||||
|
<svg width="13" height="13" viewBox="0 0 13 13" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<circle cx="6.5" cy="6.5" r="6.5" fill="white"/>
|
||||||
|
</svg>
|
||||||
|
اطلاعات بانکی طرف حساب
|
||||||
|
</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ using Parbad;
|
|||||||
using Parbad.AspNetCore;
|
using Parbad.AspNetCore;
|
||||||
using Parbad.Gateway.Sepehr;
|
using Parbad.Gateway.Sepehr;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using _0_Framework.Application.Enums;
|
||||||
using CompanyManagement.Infrastructure.Excel.WorkshopsRollCall;
|
using CompanyManagement.Infrastructure.Excel.WorkshopsRollCall;
|
||||||
using static ServiceHost.Areas.AdminNew.Pages.Company.AndroidApk.IndexModel2;
|
using static ServiceHost.Areas.AdminNew.Pages.Company.AndroidApk.IndexModel2;
|
||||||
|
|
||||||
@@ -46,18 +47,18 @@ namespace ServiceHost.Areas.AdminNew.Pages.Company.AndroidApk
|
|||||||
private readonly IOnlinePayment _onlinePayment;
|
private readonly IOnlinePayment _onlinePayment;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[BindProperty] public IFormFile File { get; set; }
|
[BindProperty] public IFormFile File { get; set; }
|
||||||
|
|
||||||
[BindProperty]
|
[BindProperty]
|
||||||
[Required(ErrorMessage = "لطفا نام ورژن را وارد کنید")]
|
[Required(ErrorMessage = "لطفا نام ورژن را وارد کنید")]
|
||||||
[Display(Name = "نام ورژن")]
|
[Display(Name = "نام ورژن")]
|
||||||
public string VersionName { get; set; }
|
public string VersionName { get; set; }
|
||||||
|
|
||||||
[BindProperty]
|
[BindProperty]
|
||||||
[Required(ErrorMessage = "لطفا کد ورژن را وارد کنید")]
|
[Required(ErrorMessage = "لطفا کد ورژن را وارد کنید")]
|
||||||
[Display(Name = "کد ورژن")]
|
[Display(Name = "کد ورژن")]
|
||||||
public string VersionCode { get; set; }
|
public string VersionCode { get; set; }
|
||||||
|
|
||||||
[BindProperty] public ApkType SelectedApkType { get; set; }
|
[BindProperty] public ApkType SelectedApkType { get; set; }
|
||||||
[BindProperty] public bool IsForce { get; set; }
|
[BindProperty] public bool IsForce { get; set; }
|
||||||
|
|
||||||
@@ -82,7 +83,7 @@ namespace ServiceHost.Areas.AdminNew.Pages.Company.AndroidApk
|
|||||||
|
|
||||||
public async Task<IActionResult> OnPostUpload()
|
public async Task<IActionResult> OnPostUpload()
|
||||||
{
|
{
|
||||||
var result = await _application.CreateAndActive(File,SelectedApkType, VersionName, VersionCode, IsForce);
|
var result = await _application.CreateAndActive(File, SelectedApkType, VersionName, VersionCode, IsForce);
|
||||||
ViewData["message"] = result.Message;
|
ViewData["message"] = result.Message;
|
||||||
return Page();
|
return Page();
|
||||||
}
|
}
|
||||||
@@ -103,50 +104,39 @@ namespace ServiceHost.Areas.AdminNew.Pages.Company.AndroidApk
|
|||||||
|
|
||||||
|
|
||||||
var amount = 10000;
|
var amount = 10000;
|
||||||
var transaction = new PaymentTransaction(30427, amount, "سید حسن مصباح", "https://client.gozareshgir.ir", PaymentTransactionGateWay.SepehrPay);
|
var transaction = new PaymentTransaction(30427, amount, "سید حسن مصباح", "https://client.gozareshgir.ir",
|
||||||
|
PaymentTransactionGateWay.SepehrPay);
|
||||||
|
|
||||||
_context.PaymentTransactions.Add(transaction);
|
_context.PaymentTransactions.Add(transaction);
|
||||||
await _context.SaveChangesAsync();
|
await _context.SaveChangesAsync();
|
||||||
|
|
||||||
var command = new CreatePaymentGatewayRequest()
|
var command = new CreatePaymentGatewayRequest()
|
||||||
{
|
{
|
||||||
TransactionId = transaction.id.ToString(),
|
TransactionId = transaction.id.ToString(),
|
||||||
Amount = amount,
|
Amount = amount,
|
||||||
CallBackUrl = callBack
|
CallBackUrl = callBack
|
||||||
};
|
};
|
||||||
|
|
||||||
var createRes = await _paymentGateway.Create(command);
|
var createRes = await _paymentGateway.Create(command);
|
||||||
|
|
||||||
if (createRes.IsSuccess)
|
if (createRes.IsSuccess)
|
||||||
{
|
{
|
||||||
transaction.SetTransactionId(createRes.Token);
|
transaction.SetTransactionId(createRes.Token);
|
||||||
await _context.SaveChangesAsync();
|
await _context.SaveChangesAsync();
|
||||||
|
|
||||||
var payUrl = _paymentGateway.GetStartPayUrl(createRes.Token);
|
var payUrl = _paymentGateway.GetStartPayUrl(createRes.Token);
|
||||||
return Redirect(payUrl);
|
return Redirect(payUrl);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return BadRequest(createRes.Status + "خطا در ارسال به درگاه پرداخت");
|
return BadRequest(createRes.Status + "خطا در ارسال به درگاه پرداخت");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public IActionResult OnPostShiftDateNew()
|
public async Task<IActionResult> OnPostShiftDateNew()
|
||||||
{
|
{
|
||||||
var startRollCall = new DateTime(2025, 4, 21);
|
await UpdateInstitutionContract();
|
||||||
//var employees = _context.CustomizeWorkshopEmployeeSettings
|
|
||||||
// .Where(x => x.WorkshopShiftStatus == WorkshopShiftStatus.Rotating).Select(x => x.EmployeeId).ToList();
|
|
||||||
|
|
||||||
var rollCalls = _context.RollCalls.Where(x => x.ShiftDate >= startRollCall && x.EndDate != null).ToList();
|
|
||||||
var r1 = rollCalls.ToList();
|
|
||||||
|
|
||||||
Console.ForegroundColor = ConsoleColor.DarkRed;
|
|
||||||
Console.WriteLine("endStep 1 ============");
|
|
||||||
SetBreakTime(r1);
|
|
||||||
|
|
||||||
|
|
||||||
ViewData["message"] = "تومام یک";
|
ViewData["message"] = "تومام یک";
|
||||||
return Page();
|
return Page();
|
||||||
}
|
}
|
||||||
@@ -169,21 +159,22 @@ namespace ServiceHost.Areas.AdminNew.Pages.Company.AndroidApk
|
|||||||
.ThenInclude(x => x.LeftWorks)
|
.ThenInclude(x => x.LeftWorks)
|
||||||
.Include(x => x.Workshop)
|
.Include(x => x.Workshop)
|
||||||
.ThenInclude(x => x.WorkshopEmployers)
|
.ThenInclude(x => x.WorkshopEmployers)
|
||||||
.ThenInclude(x=>x.Employer)
|
.ThenInclude(x => x.Employer)
|
||||||
.Select(x => new WorkshopRollCallExcelViewModel()
|
.Select(x => new WorkshopRollCallExcelViewModel()
|
||||||
{
|
{
|
||||||
EmployerName = x.Workshop.WorkshopEmployers.First().Employer.FullName,
|
EmployerName = x.Workshop.WorkshopEmployers.First().Employer.FullName,
|
||||||
IsActive = x.IsActiveString == "true",
|
IsActive = x.IsActiveString == "true",
|
||||||
PersonnelCount = x.Workshop.LeftWorks.Count(l => l.StartWorkDate <= now && l.LeftWorkDate >= now),
|
PersonnelCount = x.Workshop.LeftWorks.Count(l => l.StartWorkDate <= now && l.LeftWorkDate >= now),
|
||||||
WorkshopName = x.Workshop.WorkshopFullName
|
WorkshopName = x.Workshop.WorkshopFullName
|
||||||
}).OrderByDescending(x=>x.IsActive).ToList();
|
}).OrderByDescending(x => x.IsActive).ToList();
|
||||||
var dataBytes = WorkshopRollCallExcelExporter.Export(data);
|
var dataBytes = WorkshopRollCallExcelExporter.Export(data);
|
||||||
return File(dataBytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
return File(dataBytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
||||||
"RollCallServices.xlsx");
|
"RollCallServices.xlsx");
|
||||||
ViewData["message"] = "تومام دو";
|
ViewData["message"] = "تومام دو";
|
||||||
return Page();
|
return Page();
|
||||||
}
|
}
|
||||||
private async System.Threading.Tasks.Task CreateDadmehrWorkshopFaceEmbedding()
|
|
||||||
|
private async System.Threading.Tasks.Task CreateDadmehrWorkshopFaceEmbedding()
|
||||||
{
|
{
|
||||||
var basePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "faces");
|
var basePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "faces");
|
||||||
|
|
||||||
@@ -264,7 +255,7 @@ namespace ServiceHost.Areas.AdminNew.Pages.Company.AndroidApk
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<IActionResult> OnPostPaymentGateWay(CancellationToken cancellationToken)
|
public async Task<IActionResult> OnPostPaymentGateWay(CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
var command = new CreatePaymentGatewayRequest()
|
var command = new CreatePaymentGatewayRequest()
|
||||||
@@ -820,7 +811,10 @@ namespace ServiceHost.Areas.AdminNew.Pages.Company.AndroidApk
|
|||||||
{
|
{
|
||||||
var today = DateTime.Today;
|
var today = DateTime.Today;
|
||||||
var transaction = await _context.Database.BeginTransactionAsync();
|
var transaction = await _context.Database.BeginTransactionAsync();
|
||||||
|
|
||||||
var query = _context.InstitutionContractSet
|
var query = _context.InstitutionContractSet
|
||||||
|
.Where(a => a.VerifyCode == null
|
||||||
|
&& a.PublicId == Guid.Empty)
|
||||||
.Include(x => x.WorkshopGroup)
|
.Include(x => x.WorkshopGroup)
|
||||||
.Join(_context.PersonalContractingParties
|
.Join(_context.PersonalContractingParties
|
||||||
.Include(x => x.Employers)
|
.Include(x => x.Employers)
|
||||||
@@ -830,8 +824,8 @@ namespace ServiceHost.Areas.AdminNew.Pages.Company.AndroidApk
|
|||||||
contract => contract.ContractingPartyId,
|
contract => contract.ContractingPartyId,
|
||||||
contractingParty => contractingParty.id,
|
contractingParty => contractingParty.id,
|
||||||
(contract, contractingParty) => new { contract, contractingParty });
|
(contract, contractingParty) => new { contract, contractingParty });
|
||||||
|
|
||||||
|
|
||||||
var remoteContractsQuery = query
|
var remoteContractsQuery = query
|
||||||
.Where(x => x.contractingParty.Employers
|
.Where(x => x.contractingParty.Employers
|
||||||
.Any(e => e.WorkshopEmployers
|
.Any(e => e.WorkshopEmployers
|
||||||
@@ -854,13 +848,17 @@ namespace ServiceHost.Areas.AdminNew.Pages.Company.AndroidApk
|
|||||||
var personnelCount =
|
var personnelCount =
|
||||||
w.LeftWorks.Count(lw => lw.StartWorkDate <= today && lw.LeftWorkDate >= today);
|
w.LeftWorks.Count(lw => lw.StartWorkDate <= today && lw.LeftWorkDate >= today);
|
||||||
|
|
||||||
|
var rollCallService = _context.RollCallServices
|
||||||
|
.Where(x => x.WorkshopId == w.id)
|
||||||
|
.ToList().MaxBy(x => x.StartService);
|
||||||
|
|
||||||
var calculation = _clientRegistrationApplication
|
var calculation = _clientRegistrationApplication
|
||||||
.GetInstitutionPlanForWorkshop(new WorkshopTempViewModel()
|
.GetInstitutionPlanForWorkshop(new WorkshopTempViewModel()
|
||||||
{
|
{
|
||||||
CustomizeCheckout = false,
|
CustomizeCheckout = false,
|
||||||
Insurance = true,
|
Insurance = true,
|
||||||
InsuranceInPerson = false,
|
InsuranceInPerson = false,
|
||||||
RollCall = true,
|
RollCall = rollCallService != null,
|
||||||
WorkshopName = "",
|
WorkshopName = "",
|
||||||
ContractAndCheckout = true,
|
ContractAndCheckout = true,
|
||||||
ContractAndCheckoutInPerson = false,
|
ContractAndCheckoutInPerson = false,
|
||||||
@@ -915,14 +913,19 @@ namespace ServiceHost.Areas.AdminNew.Pages.Company.AndroidApk
|
|||||||
.SelectMany(e => e.WorkshopEmployers.Select(we => we.Workshop)).ToList()
|
.SelectMany(e => e.WorkshopEmployers.Select(we => we.Workshop)).ToList()
|
||||||
.DistinctBy(x => x.id).ToList();
|
.DistinctBy(x => x.id).ToList();
|
||||||
|
|
||||||
|
|
||||||
var initialWorkshop = workshops
|
var initialWorkshop = workshops
|
||||||
.Select(w =>
|
.Select(w =>
|
||||||
{
|
{
|
||||||
var personnelCount =
|
var personnelCount =
|
||||||
w.LeftWorks.Count(lw => lw.StartWorkDate <= today && lw.LeftWorkDate >= today);
|
w.LeftWorks.Count(lw => lw.StartWorkDate <= today && lw.LeftWorkDate >= today);
|
||||||
|
|
||||||
bool hasRollCallPlan = true;
|
var rollCallService = _context.RollCallServices
|
||||||
bool hasRollCallPlanInPerson = false;
|
.Where(x => x.WorkshopId == w.id)
|
||||||
|
.ToList().MaxBy(x => x.StartService);
|
||||||
|
|
||||||
|
bool hasRollCallPlan = rollCallService != null;
|
||||||
|
bool hasRollCallPlanInPerson = rollCallService != null;
|
||||||
bool hasCustomizeCheckoutPlan = w.id == 170;
|
bool hasCustomizeCheckoutPlan = w.id == 170;
|
||||||
bool hasContractPlan = true;
|
bool hasContractPlan = true;
|
||||||
bool hasContractPlanInPerson = true;
|
bool hasContractPlanInPerson = true;
|
||||||
|
|||||||
@@ -136,6 +136,9 @@
|
|||||||
<div class="card-title">قرارداد های مالی</div>
|
<div class="card-title">قرارداد های مالی</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="countNumber" id="InstitutionContractCount">
|
||||||
|
<span></span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="spinner-loading loading" style="display: none;">
|
<div class="spinner-loading loading" style="display: none;">
|
||||||
<span class="spinner-border spinner-border-sm loading text-white" role="status" aria-hidden="true"></span>
|
<span class="spinner-border spinner-border-sm loading text-white" role="status" aria-hidden="true"></span>
|
||||||
@@ -192,6 +195,7 @@
|
|||||||
<script>
|
<script>
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
workFlowStartAndLeftWorkCountMenu();
|
workFlowStartAndLeftWorkCountMenu();
|
||||||
|
getInstitutionContractCount();
|
||||||
|
|
||||||
$('.loadingButton').on('click', function (e) {
|
$('.loadingButton').on('click', function (e) {
|
||||||
if (e.ctrlKey || e.metaKey) {
|
if (e.ctrlKey || e.metaKey) {
|
||||||
@@ -235,5 +239,29 @@
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getInstitutionContractCount() {
|
||||||
|
$.ajax({
|
||||||
|
async: true,
|
||||||
|
dataType: 'json',
|
||||||
|
url: `@Url.Page("./Index", "InstitutionContractCount")`,
|
||||||
|
headers: { "RequestVerificationToken": antiForgeryTokenLayout },
|
||||||
|
type: 'GET',
|
||||||
|
success: function (response) {
|
||||||
|
if (response.success) {
|
||||||
|
if (response.dataInstitutionContractCount === 0) {
|
||||||
|
$('#InstitutionContractCount').hide();
|
||||||
|
} else {
|
||||||
|
$('#InstitutionContractCount').show();
|
||||||
|
var contractCount = response.dataInstitutionContractCount > 99 ? "+99" : response.dataInstitutionContractCount;
|
||||||
|
$('#InstitutionContractCount span').text(contractCount);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function (xhr, status, error) {
|
||||||
|
console.error(xhr.responseText);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using _0_Framework.Application;
|
using _0_Framework.Application;
|
||||||
using Company.Domain.WorkshopAccountAgg;
|
using Company.Domain.WorkshopAccountAgg;
|
||||||
|
using CompanyManagment.App.Contracts.InstitutionContract;
|
||||||
using CompanyManagment.App.Contracts.RollCallService;
|
using CompanyManagment.App.Contracts.RollCallService;
|
||||||
using CompanyManagment.App.Contracts.Workshop;
|
using CompanyManagment.App.Contracts.Workshop;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
@@ -18,13 +19,15 @@ namespace ServiceHost.Areas.AdminNew.Pages.Company.WorkFlow
|
|||||||
private readonly IAuthHelper _authHelper;
|
private readonly IAuthHelper _authHelper;
|
||||||
private readonly IWorkshopAccountRepository _workshopAccountRepository;
|
private readonly IWorkshopAccountRepository _workshopAccountRepository;
|
||||||
public int EmployeeDocumentsAwaitingSubmitCount;
|
public int EmployeeDocumentsAwaitingSubmitCount;
|
||||||
|
private readonly IInstitutionContractApplication _institutionContractApplication;
|
||||||
private readonly long _roleId;
|
private readonly long _roleId;
|
||||||
|
|
||||||
public IndexModel(IAdminWorkFlowApplication adminWorkFlowApplication, IAuthHelper authHelper, IWorkshopAccountRepository workshopAccountRepository)
|
public IndexModel(IAdminWorkFlowApplication adminWorkFlowApplication, IAuthHelper authHelper, IWorkshopAccountRepository workshopAccountRepository, IInstitutionContractApplication institutionContractApplication)
|
||||||
{
|
{
|
||||||
_adminWorkFlowApplication = adminWorkFlowApplication;
|
_adminWorkFlowApplication = adminWorkFlowApplication;
|
||||||
_authHelper = authHelper;
|
_authHelper = authHelper;
|
||||||
_workshopAccountRepository = workshopAccountRepository;
|
_workshopAccountRepository = workshopAccountRepository;
|
||||||
|
_institutionContractApplication = institutionContractApplication;
|
||||||
_roleId = authHelper.CurrentAccountInfo().RoleId;
|
_roleId = authHelper.CurrentAccountInfo().RoleId;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -49,5 +52,27 @@ namespace ServiceHost.Areas.AdminNew.Pages.Company.WorkFlow
|
|||||||
dataLeftWorkCount = resultLeftWorkCount,
|
dataLeftWorkCount = resultLeftWorkCount,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task<IActionResult> OnGetInstitutionContractCount()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var institutionContractCount = (await _institutionContractApplication.RegistrationWorkflowMainList()).Count;
|
||||||
|
|
||||||
|
return new JsonResult(new
|
||||||
|
{
|
||||||
|
success = true,
|
||||||
|
dataInstitutionContractCount = institutionContractCount
|
||||||
|
});
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
return new JsonResult(new
|
||||||
|
{
|
||||||
|
success = false,
|
||||||
|
message = ex.Message
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -99,7 +99,9 @@ namespace ServiceHost.Areas.AdminNew.Pages
|
|||||||
{
|
{
|
||||||
var currentAccountId = _authHelper.CurrentAccountId();
|
var currentAccountId = _authHelper.CurrentAccountId();
|
||||||
var accountWorkshops = _workshopAccountRepository.GetList(currentAccountId).Select(x => x.WorkshopId).ToList();
|
var accountWorkshops = _workshopAccountRepository.GetList(currentAccountId).Select(x => x.WorkshopId).ToList();
|
||||||
int workFlowCount = await _adminWorkFlowApplication.GetWorkFlowCountsForAdmin(accountWorkshops,currentAccountId, _roleId);
|
var permissions = _authHelper.GetPermissions();
|
||||||
|
|
||||||
|
int workFlowCount = await _adminWorkFlowApplication.GetWorkFlowCountsForAdmin(accountWorkshops,currentAccountId, _roleId,permissions);
|
||||||
|
|
||||||
|
|
||||||
return new JsonResult(new
|
return new JsonResult(new
|
||||||
|
|||||||
@@ -655,6 +655,13 @@
|
|||||||
</svg>
|
</svg>
|
||||||
لیست تراکنش های درگاه پرداخت
|
لیست تراکنش های درگاه پرداخت
|
||||||
</a></li>
|
</a></li>
|
||||||
|
<li permission="307" style=";white-space: nowrap">
|
||||||
|
<a class="clik10 " href="https://admin@(AppSetting.Value.Domain)/account-number-database" style="width: 7px;margin: 0 6px;">
|
||||||
|
<svg width="13" height="13" viewBox="0 0 13 13" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<circle cx="6.5" cy="6.5" r="6.5" fill="white"/>
|
||||||
|
</svg>
|
||||||
|
اطلاعات بانکی طرف حساب
|
||||||
|
</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -150,7 +150,7 @@ public class GeneralController : GeneralBaseController
|
|||||||
payResponse.cardnumber, payResponse.issuerbank, payResponse.rrn.ToString(),
|
payResponse.cardnumber, payResponse.issuerbank, payResponse.rrn.ToString(),
|
||||||
payResponse.digitalreceipt);
|
payResponse.digitalreceipt);
|
||||||
|
|
||||||
if (financialInvoice.Items?.Any(x => x.Type == FinancialInvoiceItemType.BuyInstitutionContract) ?? false)
|
if (financialInvoice.Items?.Any(x => x.Type is FinancialInvoiceItemType.BuyInstitutionContract or FinancialInvoiceItemType.BuyInstitutionContractInstallment) ?? false)
|
||||||
{
|
{
|
||||||
var financialItems = financialInvoice.Items
|
var financialItems = financialInvoice.Items
|
||||||
.Where(x => x.Type == FinancialInvoiceItemType.BuyInstitutionContract);
|
.Where(x => x.Type == FinancialInvoiceItemType.BuyInstitutionContract);
|
||||||
@@ -158,6 +158,16 @@ public class GeneralController : GeneralBaseController
|
|||||||
{
|
{
|
||||||
await _institutionContractApplication.SetPendingWorkflow(editFinancialInvoiceItem.EntityId);
|
await _institutionContractApplication.SetPendingWorkflow(editFinancialInvoiceItem.EntityId);
|
||||||
}
|
}
|
||||||
|
var financialInstallmentItems = financialInvoice.Items
|
||||||
|
.Where(x => x.Type == FinancialInvoiceItemType.BuyInstitutionContractInstallment);
|
||||||
|
|
||||||
|
foreach (var editFinancialInvoiceItem in financialInstallmentItems)
|
||||||
|
{
|
||||||
|
var institutionContractId =
|
||||||
|
await _institutionContractApplication.GetIdByInstallmentId(
|
||||||
|
editFinancialInvoiceItem.Id);
|
||||||
|
await _institutionContractApplication.SetPendingWorkflow(institutionContractId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!setSuccessResult.IsSuccedded)
|
if (!setSuccessResult.IsSuccedded)
|
||||||
|
|||||||
@@ -16,6 +16,9 @@
|
|||||||
|
|
||||||
//local
|
//local
|
||||||
"MesbahDb": "Data Source=.;Initial Catalog=mesbah_db;Integrated Security=True;TrustServerCertificate=true;",
|
"MesbahDb": "Data Source=.;Initial Catalog=mesbah_db;Integrated Security=True;TrustServerCertificate=true;",
|
||||||
|
|
||||||
|
//server
|
||||||
|
//"MesbahDb": "Data Source=185.208.175.186;Initial Catalog=mesbah_db;Persist Security Info=False;User ID=ir_db;Password=R2rNp[170]18[3019]#@ATt;TrustServerCertificate=true;",
|
||||||
|
|
||||||
//dad-mehr
|
//dad-mehr
|
||||||
//"MesbahDb": "Data Source=.;Initial Catalog=teamWork;Integrated Security=True;TrustServerCertificate=true;",
|
//"MesbahDb": "Data Source=.;Initial Catalog=teamWork;Integrated Security=True;TrustServerCertificate=true;",
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ public interface IAdminWorkFlowApplication
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
Task<int> GetEmployeeDocumentWorkFlowCountsForAdmin(List<long> workshopIds, long roleId);
|
Task<int> GetEmployeeDocumentWorkFlowCountsForAdmin(List<long> workshopIds, long roleId);
|
||||||
Task<int> GetWorkFlowCountsForAdmin(List<long> workshopIds, long accountId, long roleId);
|
Task<int> GetWorkFlowCountsForAdmin(List<long> workshopIds, long accountId, long roleId, List<int> permissions);
|
||||||
Task<int> GetWorkFlowCountForChecker();
|
Task<int> GetWorkFlowCountForChecker();
|
||||||
|
|
||||||
|
|
||||||
@@ -93,7 +93,7 @@ public interface IAdminWorkFlowApplication
|
|||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
Task<int> GetInstitutionContractWorkflowCount();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ using CompanyManagment.App.Contracts.Employee;
|
|||||||
using WorkFlow.Application.Contracts.AdminWorkFlow;
|
using WorkFlow.Application.Contracts.AdminWorkFlow;
|
||||||
using WorkFlow.Infrastructure.ACL.Employee;
|
using WorkFlow.Infrastructure.ACL.Employee;
|
||||||
using WorkFlow.Infrastructure.ACL.EmployeeDocuments;
|
using WorkFlow.Infrastructure.ACL.EmployeeDocuments;
|
||||||
|
using WorkFlow.Infrastructure.ACL.InstitutionContract;
|
||||||
using WorkFlow.Infrastructure.ACL.Workshop;
|
using WorkFlow.Infrastructure.ACL.Workshop;
|
||||||
|
|
||||||
namespace WorkFlow.Application
|
namespace WorkFlow.Application
|
||||||
@@ -12,65 +13,76 @@ namespace WorkFlow.Application
|
|||||||
private readonly IWorkFlowEmployeeDocumentsACL _workFlowEmployeeDocumentsACL;
|
private readonly IWorkFlowEmployeeDocumentsACL _workFlowEmployeeDocumentsACL;
|
||||||
private readonly IWorkFlowWorkshopACL _workFlowWorkshopACL;
|
private readonly IWorkFlowWorkshopACL _workFlowWorkshopACL;
|
||||||
private readonly IWorkFlowEmployeeACL _workFlowEmployeeACL;
|
private readonly IWorkFlowEmployeeACL _workFlowEmployeeACL;
|
||||||
|
private readonly IWorkFlowInstitutionContractACL _workFlowInstitutionContractACL;
|
||||||
|
|
||||||
|
|
||||||
public AdminWorkFlowApplication(IWorkFlowEmployeeDocumentsACL workFlowEmployeeDocumentsACL, IWorkFlowWorkshopACL workFlowWorkshopACL, IWorkFlowEmployeeACL workFlowEmployeeACL)
|
public AdminWorkFlowApplication(IWorkFlowEmployeeDocumentsACL workFlowEmployeeDocumentsACL,
|
||||||
|
IWorkFlowWorkshopACL workFlowWorkshopACL, IWorkFlowEmployeeACL workFlowEmployeeACL,
|
||||||
|
IWorkFlowInstitutionContractACL workFlowInstitutionContractACL)
|
||||||
{
|
{
|
||||||
_workFlowEmployeeDocumentsACL = workFlowEmployeeDocumentsACL;
|
_workFlowEmployeeDocumentsACL = workFlowEmployeeDocumentsACL;
|
||||||
_workFlowWorkshopACL = workFlowWorkshopACL;
|
_workFlowWorkshopACL = workFlowWorkshopACL;
|
||||||
_workFlowEmployeeACL = workFlowEmployeeACL;
|
_workFlowEmployeeACL = workFlowEmployeeACL;
|
||||||
|
_workFlowInstitutionContractACL = workFlowInstitutionContractACL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#region Pooya
|
#region Pooya
|
||||||
|
|
||||||
public List<WorkshopWithDocumentsViewModelForWorkFlow> GetWorkshopDocumentsAwaitingReviewForChecker(List<long> workshops)
|
public List<WorkshopWithDocumentsViewModelForWorkFlow> GetWorkshopDocumentsAwaitingReviewForChecker(
|
||||||
|
List<long> workshops)
|
||||||
{
|
{
|
||||||
return _workFlowEmployeeDocumentsACL.GetWorkshopDocumentsAwaitingReviewForChecker(workshops);
|
return _workFlowEmployeeDocumentsACL.GetWorkshopDocumentsAwaitingReviewForChecker(workshops);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public async Task<int> GetEmployeeDocumentWorkFlowCountsForAdmin(List<long> workshopIds, long roleId)
|
||||||
public async Task<int> GetEmployeeDocumentWorkFlowCountsForAdmin(List<long> workshopIds,long roleId)
|
|
||||||
{
|
{
|
||||||
var count = 0;
|
var count = 0;
|
||||||
count += await _workFlowEmployeeDocumentsACL.GetWorkshopDocumentRejectedForAdmin(workshopIds,roleId);
|
count += await _workFlowEmployeeDocumentsACL.GetWorkshopDocumentRejectedForAdmin(workshopIds, roleId);
|
||||||
|
|
||||||
count+= await _workFlowEmployeeDocumentsACL.GetCreatedEmployeesWorkshopDocumentForAdmin(workshopIds,roleId);
|
count += await _workFlowEmployeeDocumentsACL.GetCreatedEmployeesWorkshopDocumentForAdmin(workshopIds,
|
||||||
|
roleId);
|
||||||
|
|
||||||
//count+= await _workFlowEmployeeDocumentsACL.GetClientRejectedDocumentWorkshopsForAdmin(workshopIds, roleId);
|
//count+= await _workFlowEmployeeDocumentsACL.GetClientRejectedDocumentWorkshopsForAdmin(workshopIds, roleId);
|
||||||
|
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<int> GetWorkFlowCountsForAdmin(List<long> workshopIds, long accountId,long roleId)
|
public async Task<int> GetWorkFlowCountsForAdmin(List<long> workshopIds, long accountId, long roleId,
|
||||||
|
List<int> permissions)
|
||||||
{
|
{
|
||||||
var employeeDocumentWorkFlowCounts = await GetEmployeeDocumentWorkFlowCountsForAdmin(workshopIds, roleId);
|
var employeeDocumentWorkFlowCounts = await GetEmployeeDocumentWorkFlowCountsForAdmin(workshopIds, roleId);
|
||||||
var startWork = await GetWorkshopsForEmployeeStartWorkCount(accountId);
|
var startWork = await GetWorkshopsForEmployeeStartWorkCount(accountId);
|
||||||
var leftWork = await GetWorkshopsForLeftWorkTempCount(accountId);
|
var leftWork = await GetWorkshopsForLeftWorkTempCount(accountId);
|
||||||
|
int institutionContract = 0;
|
||||||
|
if (permissions.Any(x => x == 1004))
|
||||||
|
{
|
||||||
|
institutionContract = await GetInstitutionContractWorkflowCount();
|
||||||
|
}
|
||||||
|
|
||||||
return employeeDocumentWorkFlowCounts + startWork + leftWork;
|
return employeeDocumentWorkFlowCounts + startWork + leftWork +institutionContract;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<int> GetWorkFlowCountForChecker()
|
public async Task<int> GetWorkFlowCountForChecker()
|
||||||
{
|
{
|
||||||
return await _workFlowEmployeeDocumentsACL.GetCheckerWorkFlowCount();
|
return await _workFlowEmployeeDocumentsACL.GetCheckerWorkFlowCount();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public List<WorkshopWithDocumentsViewModelForWorkFlow> GetWorkshopsWithDocumentsAwaitingUploadForAdmin(
|
||||||
public List<WorkshopWithDocumentsViewModelForWorkFlow> GetWorkshopsWithDocumentsAwaitingUploadForAdmin(List<long> workshops)
|
List<long> workshops)
|
||||||
{
|
{
|
||||||
return _workFlowEmployeeDocumentsACL.GetWorkshopsWithDocumentsAwaitingUploadForAdmin(workshops);
|
return _workFlowEmployeeDocumentsACL.GetWorkshopsWithDocumentsAwaitingUploadForAdmin(workshops);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Mahan
|
#region Mahan
|
||||||
|
|
||||||
#region شروع به کار پرسنل افزوده شده
|
#region شروع به کار پرسنل افزوده شده
|
||||||
public async Task<ICollection<WorkshopWithStartedWorkWorkFlowViewModel>> GetWorkshopsForEmployeeStartWork(long accountId)
|
|
||||||
|
public async Task<ICollection<WorkshopWithStartedWorkWorkFlowViewModel>> GetWorkshopsForEmployeeStartWork(
|
||||||
|
long accountId)
|
||||||
{
|
{
|
||||||
return await _workFlowWorkshopACL.GetWorkshopsForEmployeeStartWork(accountId);
|
return await _workFlowWorkshopACL.GetWorkshopsForEmployeeStartWork(accountId);
|
||||||
}
|
}
|
||||||
@@ -81,14 +93,14 @@ namespace WorkFlow.Application
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public async Task<ICollection<ClientStartedWorkEmployeesWorkFlowViewModel>> GetClientEmployeesStartWork(
|
||||||
|
long workshopId)
|
||||||
public async Task<ICollection<ClientStartedWorkEmployeesWorkFlowViewModel>> GetClientEmployeesStartWork(long workshopId)
|
|
||||||
{
|
{
|
||||||
return await _workFlowEmployeeACL.GetClientEmployeesStartWork(workshopId);
|
return await _workFlowEmployeeACL.GetClientEmployeesStartWork(workshopId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<GetEditEmployeeInEmployeeDocumentViewModel> GetEmployeeEditInEmployeeDocumentWorkFlow(long employeeId, long workshopId)
|
public async Task<GetEditEmployeeInEmployeeDocumentViewModel> GetEmployeeEditInEmployeeDocumentWorkFlow(
|
||||||
|
long employeeId, long workshopId)
|
||||||
{
|
{
|
||||||
return await _workFlowEmployeeACL.GetEmployeeEditInEmployeeDocumentWorkFlow(employeeId, workshopId);
|
return await _workFlowEmployeeACL.GetEmployeeEditInEmployeeDocumentWorkFlow(employeeId, workshopId);
|
||||||
}
|
}
|
||||||
@@ -103,16 +115,24 @@ namespace WorkFlow.Application
|
|||||||
|
|
||||||
#region ترک کار موقت
|
#region ترک کار موقت
|
||||||
|
|
||||||
public async Task<ICollection<WorkshopWithLeftWorkWorkFlowViewModel>> GetWorkshopsForLeftWorkTemp(long accountId)
|
public async Task<ICollection<WorkshopWithLeftWorkWorkFlowViewModel>> GetWorkshopsForLeftWorkTemp(
|
||||||
|
long accountId)
|
||||||
{
|
{
|
||||||
return await _workFlowWorkshopACL.GetWorkshopsForLeftWorkTemp(accountId);
|
return await _workFlowWorkshopACL.GetWorkshopsForLeftWorkTemp(accountId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<int> GetWorkshopsForLeftWorkTempCount(long accountId)
|
public async Task<int> GetWorkshopsForLeftWorkTempCount(long accountId)
|
||||||
{
|
{
|
||||||
return await _workFlowWorkshopACL.GetWorkshopsForLeftWorkTempCount(accountId);
|
return await _workFlowWorkshopACL.GetWorkshopsForLeftWorkTempCount(accountId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<ICollection<ClientLeftWorkEmployeesWorkFlowViewModel>> GetEmployeesForLeftWorkTemp(long workshopId)
|
public async Task<int> GetInstitutionContractWorkflowCount()
|
||||||
|
{
|
||||||
|
return await _workFlowInstitutionContractACL.GetInstitutionContractWorkflowCount();
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<ICollection<ClientLeftWorkEmployeesWorkFlowViewModel>> GetEmployeesForLeftWorkTemp(
|
||||||
|
long workshopId)
|
||||||
{
|
{
|
||||||
return await _workFlowEmployeeACL.GetEmployeesForLeftWorkTemp(workshopId);
|
return await _workFlowEmployeeACL.GetEmployeesForLeftWorkTemp(workshopId);
|
||||||
}
|
}
|
||||||
@@ -121,7 +141,8 @@ namespace WorkFlow.Application
|
|||||||
|
|
||||||
#region آپلود مدارک پرسنل
|
#region آپلود مدارک پرسنل
|
||||||
|
|
||||||
public async Task<ICollection<WorkshopWithDocumentsViewModelForWorkFlow>> GetWorkshopDocumentCreatedEmployeeForAdmin(List<long> workshops, long roleId)
|
public async Task<ICollection<WorkshopWithDocumentsViewModelForWorkFlow>>
|
||||||
|
GetWorkshopDocumentCreatedEmployeeForAdmin(List<long> workshops, long roleId)
|
||||||
{
|
{
|
||||||
return await _workFlowEmployeeDocumentsACL.GetWorkshopDocumentCreatedEmployeeForAdmin(workshops, roleId);
|
return await _workFlowEmployeeDocumentsACL.GetWorkshopDocumentCreatedEmployeeForAdmin(workshops, roleId);
|
||||||
}
|
}
|
||||||
@@ -130,6 +151,4 @@ namespace WorkFlow.Application
|
|||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
|
||||||
@@ -58,4 +58,5 @@ public class WorkFlowEmployeeACL : IWorkFlowEmployeeACL
|
|||||||
{
|
{
|
||||||
return await _employeeApplication.EditEmployeeInEmployeeDocumentWorkFlow(command);
|
return await _employeeApplication.EditEmployeeInEmployeeDocumentWorkFlow(command);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
using CompanyManagment.App.Contracts.InstitutionContract;
|
||||||
|
|
||||||
|
namespace WorkFlow.Infrastructure.ACL.InstitutionContract;
|
||||||
|
|
||||||
|
public interface IWorkFlowInstitutionContractACL
|
||||||
|
{
|
||||||
|
Task<int> GetInstitutionContractWorkflowCount();
|
||||||
|
}
|
||||||
|
|
||||||
|
public class WorkFlowInstitutionContractACL : IWorkFlowInstitutionContractACL
|
||||||
|
{
|
||||||
|
private readonly IInstitutionContractApplication _institutionContractApplication;
|
||||||
|
public WorkFlowInstitutionContractACL(IInstitutionContractApplication institutionContractApplication)
|
||||||
|
{
|
||||||
|
_institutionContractApplication = institutionContractApplication;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<int> GetInstitutionContractWorkflowCount()
|
||||||
|
{
|
||||||
|
var list = await _institutionContractApplication.RegistrationWorkflowMainList();
|
||||||
|
return list.Count;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -9,6 +9,7 @@ using WorkFlow.Infrastructure.ACL.Checkout;
|
|||||||
using WorkFlow.Infrastructure.ACL.CustomizedWorkshopSettings;
|
using WorkFlow.Infrastructure.ACL.CustomizedWorkshopSettings;
|
||||||
using WorkFlow.Infrastructure.ACL.Employee;
|
using WorkFlow.Infrastructure.ACL.Employee;
|
||||||
using WorkFlow.Infrastructure.ACL.EmployeeDocuments;
|
using WorkFlow.Infrastructure.ACL.EmployeeDocuments;
|
||||||
|
using WorkFlow.Infrastructure.ACL.InstitutionContract;
|
||||||
using WorkFlow.Infrastructure.ACL.RollCall;
|
using WorkFlow.Infrastructure.ACL.RollCall;
|
||||||
using WorkFlow.Infrastructure.ACL.Workshop;
|
using WorkFlow.Infrastructure.ACL.Workshop;
|
||||||
using WorkFlow.Infrastructure.EfCore;
|
using WorkFlow.Infrastructure.EfCore;
|
||||||
@@ -33,8 +34,7 @@ namespace WorkFlow.Infrastructure.Config
|
|||||||
services.AddTransient<IWorkFlowRollCallACL, WorkFlowRollCallACL>();
|
services.AddTransient<IWorkFlowRollCallACL, WorkFlowRollCallACL>();
|
||||||
services.AddTransient<IWorkFlowCustomizedWorkshopSettingsACL, WorkFlowCustomizedWorkshopSettingsACL>();
|
services.AddTransient<IWorkFlowCustomizedWorkshopSettingsACL, WorkFlowCustomizedWorkshopSettingsACL>();
|
||||||
services.AddTransient<IWorkFlowEmployeeACL, WorkFlowEmployeeACL>();
|
services.AddTransient<IWorkFlowEmployeeACL, WorkFlowEmployeeACL>();
|
||||||
|
services.AddTransient<IWorkFlowInstitutionContractACL, WorkFlowInstitutionContractACL>();
|
||||||
|
|
||||||
services.AddTransient<IWorkFlowWorkshopACL, WorkFlowWorkshopACL>();
|
services.AddTransient<IWorkFlowWorkshopACL, WorkFlowWorkshopACL>();
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user