diff --git a/0_Framework/Application/UserType.cs b/0_Framework/Application/UserType.cs
index 7ca704bb..f548879e 100644
--- a/0_Framework/Application/UserType.cs
+++ b/0_Framework/Application/UserType.cs
@@ -8,7 +8,8 @@ namespace _0_Framework.Application
Client,
SubAccount,
Camera,
- Admin
+ Admin,
+ System
}
}
diff --git a/Company.Domain/FineAgg/Fine.cs b/Company.Domain/FineAgg/Fine.cs
index 038366c4..f90732c4 100644
--- a/Company.Domain/FineAgg/Fine.cs
+++ b/Company.Domain/FineAgg/Fine.cs
@@ -6,7 +6,11 @@ namespace Company.Domain.FineAgg;
public class Fine:EntityBase
{
- public Fine(long employeeId, long workshopId, string title, double amount,DateTime fineDate)
+ private Fine()
+ {
+
+ }
+ public Fine(long employeeId, long workshopId, string title, double amount,DateTime fineDate, long createdByAccountId, UserType createdByUserType)
{
EmployeeId = employeeId;
WorkshopId = workshopId;
@@ -15,6 +19,9 @@ public class Fine:EntityBase
IsActive = IsActive.True;
FineDate = fineDate;
+ CreatedByUserType = createdByUserType;
+ CreatedByAccountId = createdByAccountId;
+
}
public long EmployeeId { get; private set; }
@@ -24,7 +31,23 @@ public class Fine:EntityBase
public IsActive IsActive { get; private set; }
public DateTime FineDate { get; private set; }
- public void DeActive()
+
+ ///
+ /// شخصی که جریمه را ساخته است
+ ///
+ public long CreatedByAccountId { get; private set; }
+ public UserType CreatedByUserType { get; private set; }
+
+
+ ///
+ /// شخصی که جریمه را ویرایش کرده است
+ ///
+ public long LastModifiedByAccountId { get; private set; }
+ public UserType LastModifiedByUserType { get; private set; }
+
+
+
+ public void DeActive()
{
IsActive = IsActive.False;
}
@@ -34,14 +57,15 @@ public class Fine:EntityBase
IsActive = IsActive.True;
}
- public void Edit(long employeeId, long workshopId, string title, double amount,DateTime fineDate)
+ public void Edit(long employeeId, long workshopId, string title, double amount,DateTime fineDate, long modifiedByAccountId, UserType modifiedByUserType)
{
EmployeeId = employeeId;
WorkshopId = workshopId;
Title = title;
Amount = amount;
FineDate = fineDate;
-
+ LastModifiedByAccountId = modifiedByAccountId;
+ LastModifiedByUserType = modifiedByUserType;
}
}
\ No newline at end of file
diff --git a/Company.Domain/FineAgg/IFineRepository.cs b/Company.Domain/FineAgg/IFineRepository.cs
index 421da448..9072b2ca 100644
--- a/Company.Domain/FineAgg/IFineRepository.cs
+++ b/Company.Domain/FineAgg/IFineRepository.cs
@@ -12,4 +12,14 @@ public interface IFineRepository : IRepository
void Remove(Fine entity);
void RemoveRange(IEnumerable entityEnumerable);
+
+ #region Pooya
+
+ ///
+ /// گروهبندی بر اساس ماه هنگام جستجو با انتخاب کارمند
+ ///
+ FinesGroupedViewModel GetSearchListAsGrouped(FineSearchViewModel searchModel);
+
+ #endregion
+
}
\ No newline at end of file
diff --git a/Company.Domain/LoanAgg/Entities/Loan.cs b/Company.Domain/LoanAgg/Entities/Loan.cs
index 650b192f..55e1c6eb 100644
--- a/Company.Domain/LoanAgg/Entities/Loan.cs
+++ b/Company.Domain/LoanAgg/Entities/Loan.cs
@@ -9,12 +9,14 @@ namespace Company.Domain.LoanAgg.Entities;
public class Loan : EntityBase
{
- private Loan()
+ private Loan(long createdByAccountId, UserType createdByUserType)
{
+ CreatedByAccountId = createdByAccountId;
+ CreatedByUserType = createdByUserType;
}
public Loan(long employeeId, long workshopId, DateTime startDateTime,
- string count, double amount, double amountPerMonth,ICollection loanInstallments, bool getRounded, DateTime loanGrantDate)
+ string count, double amount, double amountPerMonth,ICollection loanInstallments, bool getRounded, DateTime loanGrantDate, long createdByAccountId, UserType createdByUserType)
{
EmployeeId = employeeId;
WorkshopId = workshopId;
@@ -25,6 +27,8 @@ public class Loan : EntityBase
LoanInstallments = loanInstallments;
GetRounded = getRounded;
LoanGrantDate = loanGrantDate;
+ CreatedByAccountId = createdByAccountId;
+ CreatedByUserType = createdByUserType;
//for (int i = 0; i < Convert.ToInt32(count); i++)
//{
// LoanInstallment newInstallment = new(amountPerMonth, month.ToString("00"), year.ToString("0000"));
@@ -64,7 +68,11 @@ public class Loan : EntityBase
public bool GetRounded { get; private set; }
public ICollection LoanInstallments { get; private set; }
- public void DeActiveInstallment(string year, string month)
+
+ public long CreatedByAccountId { get; private set; }
+ public UserType CreatedByUserType { get; private set; }
+
+ public void DeActiveInstallment(string year, string month)
{
var installment = LoanInstallments.FirstOrDefault(x => x.Month == month && x.Year == year);
diff --git a/Company.Domain/LoanAgg/ILoanRepository.cs b/Company.Domain/LoanAgg/ILoanRepository.cs
index bb62a18f..2f91b4a6 100644
--- a/Company.Domain/LoanAgg/ILoanRepository.cs
+++ b/Company.Domain/LoanAgg/ILoanRepository.cs
@@ -12,4 +12,6 @@ public interface ILoanRepository:IRepository
void Remove(Loan entity);
List GetBy(IEnumerable ids);
void RemoveRange(IEnumerable loans);
+
+ LoanGroupedViewModel GetSearchListAsGrouped(LoanSearchViewModel searchModel);
}
\ No newline at end of file
diff --git a/Company.Domain/RewardAgg/IRewardRepository.cs b/Company.Domain/RewardAgg/IRewardRepository.cs
index 9921de2c..93d09227 100644
--- a/Company.Domain/RewardAgg/IRewardRepository.cs
+++ b/Company.Domain/RewardAgg/IRewardRepository.cs
@@ -18,6 +18,6 @@ public interface IRewardRepository : IRepository
///
/// گروهبندی بر اساس ماه هنگام جستجو با انتخاب کارمند
///
- List GetSearchListByEmployee(RewardSearchModel searchModel);
+ RewardsGroupedViewModel GetSearchListAsGrouped(RewardSearchModel searchModel);
#endregion
}
\ No newline at end of file
diff --git a/Company.Domain/RewardAgg/Reward.cs b/Company.Domain/RewardAgg/Reward.cs
index 7190a005..3d8f78cf 100644
--- a/Company.Domain/RewardAgg/Reward.cs
+++ b/Company.Domain/RewardAgg/Reward.cs
@@ -8,18 +8,19 @@ namespace Company.Domain.RewardAgg;
public class Reward:EntityBase
{
- private Reward(string title)
+ private Reward()
{
- Title = title;
+
}
- public Reward(long employeeId, long workshopId, double amount, string description, long rewardedByAccountId, DateTime grantDate, string title , RewardType type = RewardType.None)
+ public Reward(long employeeId, long workshopId, double amount, string description, long rewardedByAccountId,UserType userType, DateTime grantDate, string title , RewardType type = RewardType.None)
{
EmployeeId = employeeId;
WorkshopId = workshopId;
Amount = amount;
Description = description;
- RewardedByAccountId = rewardedByAccountId;
+ CreatedByAccountId = rewardedByAccountId;
+ CreatedByUserType = userType;
GrantDate = grantDate;
Title = title;
IsActive = IsActive.True;
@@ -45,24 +46,35 @@ public class Reward:EntityBase
public string Description { get; private set; }
///
- /// شخصی که پاداش را داده است
+ /// شخصی که پاداش را ساخته است
///
- public long RewardedByAccountId { get; private set; }
+ public long CreatedByAccountId { get; private set; }
+ public UserType CreatedByUserType { get;private set; }
+
///
- /// تاریخ اعطای پاداش
+ /// شخصی که پاداش را ویرایش کرده است
///
- public DateTime GrantDate { get; set; }
+ public long LastModifiedByAccountId { get; private set; }
+ public UserType LastModifiedByUserType { get; private set; }
+
+
+ ///
+ /// تاریخ اعطای پاداش
+ ///
+ public DateTime GrantDate { get; set; }
public RewardType RewardType { get; set; }
public IsActive IsActive { get; private set; }
- public void Edit(double amount, string description, long rewardedByAccountId, DateTime grantDate,string title)
+
+ public void Edit(double amount, string description, long modifiedByAccountId, UserType userType, DateTime grantDate,string title)
{
Amount = amount;
Description = description;
- RewardedByAccountId = rewardedByAccountId;
+ LastModifiedByAccountId = modifiedByAccountId;
+ LastModifiedByUserType = userType;
GrantDate = grantDate;
Title = title;
}
diff --git a/Company.Domain/SalaryAidAgg/ISalaryAidRepository.cs b/Company.Domain/SalaryAidAgg/ISalaryAidRepository.cs
index 9fc54bd7..edc2d7c5 100644
--- a/Company.Domain/SalaryAidAgg/ISalaryAidRepository.cs
+++ b/Company.Domain/SalaryAidAgg/ISalaryAidRepository.cs
@@ -1,5 +1,6 @@
using System.Collections.Generic;
using _0_Framework.Domain;
+using CompanyManagment.App.Contracts.Reward;
using CompanyManagment.App.Contracts.SalaryAid;
namespace Company.Domain.SalaryAidAgg;
@@ -11,4 +12,13 @@ public interface ISalaryAidRepository:IRepository
void Remove(SalaryAid entity);
List GetBy(IEnumerable ids);
void RemoveRange(IEnumerable salaryAids);
+
+ #region Pooya
+
+ ///
+ /// گروهبندی بر اساس ماه هنگام جستجو با انتخاب کارمند
+ ///
+
+ SalaryAidsGroupedViewModel GetSearchListAsGrouped(SalaryAidSearchViewModel searchModel);
+ #endregion
}
\ No newline at end of file
diff --git a/Company.Domain/SalaryAidAgg/SalaryAid.cs b/Company.Domain/SalaryAidAgg/SalaryAid.cs
index 6bbde984..5fc7fea1 100644
--- a/Company.Domain/SalaryAidAgg/SalaryAid.cs
+++ b/Company.Domain/SalaryAidAgg/SalaryAid.cs
@@ -1,4 +1,5 @@
using System;
+using _0_Framework.Application;
using _0_Framework.Domain;
using Hangfire.Annotations;
@@ -6,15 +7,18 @@ namespace Company.Domain.SalaryAidAgg;
public class SalaryAid:EntityBase
{
- private SalaryAid(){}
-
-
- public SalaryAid(long employeeId, long workshopId, double amount, DateTime salaryAidDateTime)
+ private SalaryAid()
+ {
+
+ }
+ public SalaryAid(long employeeId, long workshopId, double amount, DateTime salaryAidDateTime, long createdByAccountId, UserType createdByUserType)
{
EmployeeId = employeeId;
WorkshopId = workshopId;
Amount = amount;
SalaryAidDateTime = salaryAidDateTime;
+ CreatedByUserType = createdByUserType;
+ CreatedByAccountId = createdByAccountId;
}
public long EmployeeId { get; private set; }
@@ -22,9 +26,21 @@ public class SalaryAid:EntityBase
public double Amount { get; private set; }
public DateTime SalaryAidDateTime { get; private set; }
- public void Edit(double amount, DateTime salaryAidTime)
+
+ public long CreatedByAccountId { get; private set; }
+ public UserType CreatedByUserType { get; private set; }
+
+
+
+ public long LastModifiedByAccountId { get; private set; }
+ public UserType LastModifiedByUserType { get; private set; }
+
+
+ public void Edit(double amount, DateTime salaryAidTime, long modifiedByAccountId, UserType modifiedByUserType)
{
Amount = amount;
SalaryAidDateTime = salaryAidTime;
+ LastModifiedByAccountId = modifiedByAccountId;
+ LastModifiedByUserType = modifiedByUserType;
}
}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/Fine/FineSearchViewModel.cs b/CompanyManagment.App.Contracts/Fine/FineSearchViewModel.cs
index 08146b0e..04706557 100644
--- a/CompanyManagment.App.Contracts/Fine/FineSearchViewModel.cs
+++ b/CompanyManagment.App.Contracts/Fine/FineSearchViewModel.cs
@@ -13,4 +13,5 @@ public class FineSearchViewModel
public int PageIndex { get; set; }
public string StartDate { get; set; }
public string EndDate { get; set; }
+ public bool ShowAsGrouped { get; set; }
}
diff --git a/CompanyManagment.App.Contracts/Fine/FineViewModel.cs b/CompanyManagment.App.Contracts/Fine/FineViewModel.cs
index 96291e14..ca2c3594 100644
--- a/CompanyManagment.App.Contracts/Fine/FineViewModel.cs
+++ b/CompanyManagment.App.Contracts/Fine/FineViewModel.cs
@@ -1,5 +1,6 @@
using System;
using _0_Framework.Application;
+using CompanyManagment.App.Contracts.Loan;
namespace CompanyManagment.App.Contracts.Fine;
@@ -15,4 +16,7 @@ public class FineViewModel
public string FineDate { get; set; }
public IsActive IsActive { get; set; }
public string CreationDate { get; set; }
+ public string YearFa { get; set; }
+ public string MonthFa { get; set; }
+ public double AmountDouble { get; set; }
}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/Fine/FinesGroupedByDateViewModel.cs b/CompanyManagment.App.Contracts/Fine/FinesGroupedByDateViewModel.cs
new file mode 100644
index 00000000..0a668067
--- /dev/null
+++ b/CompanyManagment.App.Contracts/Fine/FinesGroupedByDateViewModel.cs
@@ -0,0 +1,20 @@
+using System.Collections.Generic;
+
+namespace CompanyManagment.App.Contracts.Fine;
+
+public class FinesGroupedByDateViewModel
+{
+ public string MonthFa { get; set; }
+ public string YearFa { get; set; }
+ public List Fines { get; set; }
+ public string TotalAmount { get; set; }
+}
+public class FinesGroupedByDateViewModelItems
+{
+ public long Id { get; set; }
+ public string EmployeeName { get; set; }
+ public string PersonnelCode { get; set; }
+ public string Title { get; set; }
+ public string Amount { get; set; }
+ public string FineDateTimeFa { get; set; }
+}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/Fine/FinesGroupedByEmployeeViewModel.cs b/CompanyManagment.App.Contracts/Fine/FinesGroupedByEmployeeViewModel.cs
new file mode 100644
index 00000000..32dde645
--- /dev/null
+++ b/CompanyManagment.App.Contracts/Fine/FinesGroupedByEmployeeViewModel.cs
@@ -0,0 +1,20 @@
+using System.Collections.Generic;
+
+namespace CompanyManagment.App.Contracts.Fine;
+
+public class FinesGroupedByEmployeeViewModel
+{
+ public string EmployeeName { get; set; }
+ public List Fines { get; set; }
+ public string TotalAmount { get; set; }
+ public long EmployeeId { get; set; }
+}
+
+public class FinesGroupedByEmployeeViewModelItems
+{
+ public string FineDateTimeFa { get; set; }
+ public string Title { get; set; }
+ public string Amount { get; set; }
+ public long Id { get; set; }
+ public string PersonnelCode { get; set; }
+}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/Fine/FinesGroupedViewModel.cs b/CompanyManagment.App.Contracts/Fine/FinesGroupedViewModel.cs
new file mode 100644
index 00000000..cdf8f142
--- /dev/null
+++ b/CompanyManagment.App.Contracts/Fine/FinesGroupedViewModel.cs
@@ -0,0 +1,15 @@
+using System.Collections.Generic;
+using CompanyManagment.App.Contracts.EmployeeInsurancListData;
+using Microsoft.EntityFrameworkCore.Metadata.Builders;
+
+namespace CompanyManagment.App.Contracts.Fine;
+
+public class FinesGroupedViewModel
+{
+
+ public List GroupedByDate { get; set; }
+ public List GroupedByEmployee { get; set; }
+ public List FineListViewModels { get; set; }
+
+}
+
diff --git a/CompanyManagment.App.Contracts/Fine/IFineApplication.cs b/CompanyManagment.App.Contracts/Fine/IFineApplication.cs
index fa943900..cd00145c 100644
--- a/CompanyManagment.App.Contracts/Fine/IFineApplication.cs
+++ b/CompanyManagment.App.Contracts/Fine/IFineApplication.cs
@@ -11,4 +11,12 @@ public interface IFineApplication
EditFineViewModel GetDetails(long id);
OperationResult Remove(long id);
OperationResult RemoveRange(List ids);
+ #region Pooya
+
+ ///
+ /// گروهبندی بر اساس ماه هنگام جستجو با انتخاب کارمند
+ ///
+ FinesGroupedViewModel GetSearchListAsGrouped(FineSearchViewModel searchModel);
+
+ #endregion
}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/Loan/ILoanApplication.cs b/CompanyManagment.App.Contracts/Loan/ILoanApplication.cs
index 63dcfdb3..1e372d6f 100644
--- a/CompanyManagment.App.Contracts/Loan/ILoanApplication.cs
+++ b/CompanyManagment.App.Contracts/Loan/ILoanApplication.cs
@@ -1,5 +1,6 @@
using System.Collections.Generic;
using _0_Framework.Application;
+using Microsoft.AspNetCore.Mvc.RazorPages;
namespace CompanyManagment.App.Contracts.Loan;
@@ -11,4 +12,14 @@ public interface ILoanApplication
List CalculateLoanInstallment(string amount , int installmentCount,string loanStartDate,bool getRounded);
OperationResult Remove(long id);
OperationResult RemoveRange(IEnumerable ids);
-}
\ No newline at end of file
+
+ LoanGroupedViewModel GetSearchListAsGrouped(LoanSearchViewModel searchModel);
+}
+
+public class LoanGroupedViewModel
+{
+ public List GroupedByDate { get; set; }
+ public ListGroupedByEmployee { get; set; }
+ public List LoanListViewModel { get; set; }
+}
+
diff --git a/CompanyManagment.App.Contracts/Loan/LoanGroupedByDateViewModel.cs b/CompanyManagment.App.Contracts/Loan/LoanGroupedByDateViewModel.cs
new file mode 100644
index 00000000..dde0bca4
--- /dev/null
+++ b/CompanyManagment.App.Contracts/Loan/LoanGroupedByDateViewModel.cs
@@ -0,0 +1,22 @@
+using System.Collections.Generic;
+
+namespace CompanyManagment.App.Contracts.Loan;
+
+public class LoanGroupedByDateViewModel
+{
+ public string MonthFa { get; set; }
+ public string YearFa { get; set; }
+ public string TotalAmount { get; set; }
+ public List LoanItems { get; set; }
+}
+
+public class LoanGroupedByDateViewModelItems
+{
+ public long Id { get; set; }
+ public string EmployeeName { get; set; }
+ public string PersonnelCode { get; set; }
+ public string AmountPerMonth { get; set; }
+ public string LoanStartDate { get; set; }
+ public string TotalAmountFa { get; set; }
+ public string InstallmentCount { get; set; }
+}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/Loan/LoanGroupedByEmployeeViewModel.cs b/CompanyManagment.App.Contracts/Loan/LoanGroupedByEmployeeViewModel.cs
new file mode 100644
index 00000000..b286f272
--- /dev/null
+++ b/CompanyManagment.App.Contracts/Loan/LoanGroupedByEmployeeViewModel.cs
@@ -0,0 +1,19 @@
+using System.Collections.Generic;
+
+namespace CompanyManagment.App.Contracts.Loan;
+
+public class LoanGroupedByEmployeeViewModel
+{
+ public string EmployeeName { get; set; }
+ public string TotalAmount { get; set; }
+ public List LoanItems { get; set; }
+}
+public class LoanGroupedByEmployeeViewModelItems
+{
+ public long Id { get; set; }
+ public string PersonnelCode { get; set; }
+ public string AmountPerMonth { get; set; }
+ public string LoanDateTimeFa { get; set; }
+ public string TotalAmountFa { get; set; }
+ public string InstallmentCount { get; set; }
+}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/Loan/LoanSearchViewModel.cs b/CompanyManagment.App.Contracts/Loan/LoanSearchViewModel.cs
index 7be9b28c..f1bf0c5a 100644
--- a/CompanyManagment.App.Contracts/Loan/LoanSearchViewModel.cs
+++ b/CompanyManagment.App.Contracts/Loan/LoanSearchViewModel.cs
@@ -16,4 +16,5 @@ public class LoanSearchViewModel
public string EndDate { get; set; }
public int PageIndex { get; set; }
+ public bool ShowAsGrouped { get; set; }
}
diff --git a/CompanyManagment.App.Contracts/Loan/LoanViewModel.cs b/CompanyManagment.App.Contracts/Loan/LoanViewModel.cs
index b719a844..98e0b548 100644
--- a/CompanyManagment.App.Contracts/Loan/LoanViewModel.cs
+++ b/CompanyManagment.App.Contracts/Loan/LoanViewModel.cs
@@ -19,4 +19,7 @@ public class LoanViewModel
public List Installment { get; set; }
public string PersonnelCode { get; set; }
public DateTime CreationDate { get; set; }
+ public double AmountDouble { get; set; }
+ public string MonthFa { get; set; }
+ public string YearFa { get; set; }
}
diff --git a/CompanyManagment.App.Contracts/Reward/CreateRewardViewModel.cs b/CompanyManagment.App.Contracts/Reward/CreateRewardViewModel.cs
index dd57f163..c3c6931c 100644
--- a/CompanyManagment.App.Contracts/Reward/CreateRewardViewModel.cs
+++ b/CompanyManagment.App.Contracts/Reward/CreateRewardViewModel.cs
@@ -1,4 +1,5 @@
using System.Collections.Generic;
+using _0_Framework.Application;
namespace CompanyManagment.App.Contracts.Reward;
@@ -12,14 +13,15 @@ public class CreateRewardViewModel
///
public string Amount { get; set; }
+
+
///
/// توضیحات
///
public string Description { get; set; }
- ///
- /// شخصی که پاداش را داده است
- ///
- public long RewardedByAccountId { get; set; }
+
+
+
public string GrantDate { get; set; }
public string Title { get; set; }
diff --git a/CompanyManagment.App.Contracts/Reward/IRewardApplication.cs b/CompanyManagment.App.Contracts/Reward/IRewardApplication.cs
index 7c8fd12e..657f8935 100644
--- a/CompanyManagment.App.Contracts/Reward/IRewardApplication.cs
+++ b/CompanyManagment.App.Contracts/Reward/IRewardApplication.cs
@@ -17,7 +17,7 @@ public interface IRewardApplication
///
/// گروهبندی بر اساس ماه هنگام جستجو با انتخاب کارمند
///
- List GetSearchListByEmployee(RewardSearchModel searchModel);
+ RewardsGroupedViewModel GetSearchListAsGrouped(RewardSearchModel searchModel);
#endregion
}
diff --git a/CompanyManagment.App.Contracts/Reward/MonthlyGroupedEmployeeRewardsViewModel.cs b/CompanyManagment.App.Contracts/Reward/MonthlyGroupedEmployeeRewardsViewModel.cs
deleted file mode 100644
index 586cece9..00000000
--- a/CompanyManagment.App.Contracts/Reward/MonthlyGroupedEmployeeRewardsViewModel.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using System.Collections.Generic;
-
-namespace CompanyManagment.App.Contracts.Reward;
-
-public class MonthlyGroupedEmployeeRewardsViewModel
-{
- public long EmployeeId { get; set; }
- public string PersonnelCode { get; set; }
- public string MonthFa { get; set; }
- public string YearFa { get; set; }
- public List Rewards { get; set; }
- public string MonthFaName { get; set; }
-}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/Reward/RewardSearchModel.cs b/CompanyManagment.App.Contracts/Reward/RewardSearchModel.cs
index e204b9b3..1ed64770 100644
--- a/CompanyManagment.App.Contracts/Reward/RewardSearchModel.cs
+++ b/CompanyManagment.App.Contracts/Reward/RewardSearchModel.cs
@@ -13,4 +13,5 @@ public class RewardSearchModel
public string StartDate { get; set; }
public string EndDate { get; set; }
public int PageIndex { get; set; }
+ public bool ShowAsGrouped { get; set; }
}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/Reward/RewardsGroupedByDate.cs b/CompanyManagment.App.Contracts/Reward/RewardsGroupedByDate.cs
new file mode 100644
index 00000000..cd0d5cd4
--- /dev/null
+++ b/CompanyManagment.App.Contracts/Reward/RewardsGroupedByDate.cs
@@ -0,0 +1,23 @@
+using System.Collections.Generic;
+using System.Security.Cryptography;
+using Microsoft.EntityFrameworkCore.Metadata.Builders;
+
+namespace CompanyManagment.App.Contracts.Reward;
+
+public class RewardsGroupedByDate
+{
+ public string Month { get; set; }
+ public string Year { get; set; }
+ public List Rewards { get; set; }
+ public string TotalAmount { get; set; }
+}
+public class RewardsGroupedByDateItems
+{
+ public long Id { get; set; }
+ public string EmployeeName { get; set; }
+ public string PersonnelCode { get; set; }
+ public string Title { get; set; }
+ public string Amount { get; set; }
+ public string Description { get; set; }
+ public string GrantDateFa { get; set; }
+}
diff --git a/CompanyManagment.App.Contracts/Reward/RewardsGroupedByEmployeeViewModel.cs b/CompanyManagment.App.Contracts/Reward/RewardsGroupedByEmployeeViewModel.cs
new file mode 100644
index 00000000..b74c9147
--- /dev/null
+++ b/CompanyManagment.App.Contracts/Reward/RewardsGroupedByEmployeeViewModel.cs
@@ -0,0 +1,21 @@
+using System.Collections.Generic;
+
+namespace CompanyManagment.App.Contracts.Reward;
+
+public class RewardsGroupedByEmployeeViewModel
+{
+ public string EmployeeName { get; set; }
+ public long EmployeeId { get; set; }
+ public List Rewards { get; set; }
+ public string TotalAmount { get; set; }
+}
+
+public class RewardsGroupedByEmployeeViewModelItems
+{
+ public long Id { get; set; }
+ public string PersonnelCode { get; set; }
+ public string Title { get; set; }
+ public string Amount { get; set; }
+ public string Description { get; set; }
+ public string GrantDate { get; set; }
+}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/Reward/RewardsGroupedViewModel.cs b/CompanyManagment.App.Contracts/Reward/RewardsGroupedViewModel.cs
new file mode 100644
index 00000000..ac2b0abb
--- /dev/null
+++ b/CompanyManagment.App.Contracts/Reward/RewardsGroupedViewModel.cs
@@ -0,0 +1,13 @@
+using System.Collections.Generic;
+using Microsoft.EntityFrameworkCore.Metadata.Builders;
+
+namespace CompanyManagment.App.Contracts.Reward;
+
+public class RewardsGroupedViewModel
+{
+ public List RewardsGroupedByEmployee { get; set; }
+ public List RewardsGroupedByDate { get; set; }
+ public List RewardListViewModels { get; set; }
+}
+
+
diff --git a/CompanyManagment.App.Contracts/SalaryAid/ISalaryAidApplication.cs b/CompanyManagment.App.Contracts/SalaryAid/ISalaryAidApplication.cs
index 8ff51e07..9e8fd182 100644
--- a/CompanyManagment.App.Contracts/SalaryAid/ISalaryAidApplication.cs
+++ b/CompanyManagment.App.Contracts/SalaryAid/ISalaryAidApplication.cs
@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using _0_Framework.Application;
+using CompanyManagment.App.Contracts.Reward;
namespace CompanyManagment.App.Contracts.SalaryAid;
@@ -14,5 +15,12 @@ public interface ISalaryAidApplication
OperationResult Remove(long id);
OperationResult RemoveRange(IEnumerable ids);
+ #region Pooya
+ ///
+ /// گروهبندی بر اساس ماه هنگام جستجو با انتخاب کارمند
+ ///
+ SalaryAidsGroupedViewModel GetSearchListAsGrouped(SalaryAidSearchViewModel searchModel);
+ #endregion
+
Task CreateRange(List commands);
}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/SalaryAid/SalaryAidGroupedByDateViewModel.cs b/CompanyManagment.App.Contracts/SalaryAid/SalaryAidGroupedByDateViewModel.cs
new file mode 100644
index 00000000..15072cfb
--- /dev/null
+++ b/CompanyManagment.App.Contracts/SalaryAid/SalaryAidGroupedByDateViewModel.cs
@@ -0,0 +1,21 @@
+using System.Collections.Generic;
+
+namespace CompanyManagment.App.Contracts.SalaryAid;
+
+public class SalaryAidGroupedByDateViewModel
+{
+ public string MonthFa { get; set; }
+ public string YearFa { get; set; }
+ public List SalaryAidViewModels { get; set; }
+ public string TotalAmount { get; set; }
+
+}
+public class SalaryAidGroupedByDateViewModelItems
+{
+ public long Id { get; set; }
+ public string EmployeeName { get; set; }
+ public string PersonnelCode { get; set; }
+ public string Amount { get; set; }
+ public string SalaryAidDateTimeFa { get; set; }
+}
+
diff --git a/CompanyManagment.App.Contracts/SalaryAid/SalaryAidGroupedByEmployeeViewModel.cs b/CompanyManagment.App.Contracts/SalaryAid/SalaryAidGroupedByEmployeeViewModel.cs
new file mode 100644
index 00000000..b3d1d9e0
--- /dev/null
+++ b/CompanyManagment.App.Contracts/SalaryAid/SalaryAidGroupedByEmployeeViewModel.cs
@@ -0,0 +1,19 @@
+using System.Collections.Generic;
+
+namespace CompanyManagment.App.Contracts.SalaryAid;
+
+public class SalaryAidGroupedByEmployeeViewModel
+{
+ public string EmployeeName { get; set; }
+ public long EmployeeId { get; set; }
+ public List SalaryAidViewModels { get; set; }
+ public string TotalAmount { get; set; }
+
+}
+public class SalaryAidGroupedByEmployeeViewModelItems
+{
+ public long Id { get; set; }
+ public string SalaryAidDateTimeFa { get; set; }
+ public string PersonnelCode { get; set; }
+ public string Amount { get; set; }
+}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/SalaryAid/SalaryAidSearchViewModel.cs b/CompanyManagment.App.Contracts/SalaryAid/SalaryAidSearchViewModel.cs
index 68673f63..c6625186 100644
--- a/CompanyManagment.App.Contracts/SalaryAid/SalaryAidSearchViewModel.cs
+++ b/CompanyManagment.App.Contracts/SalaryAid/SalaryAidSearchViewModel.cs
@@ -12,4 +12,6 @@ public class SalaryAidSearchViewModel
public long EmployeeId { get; set; }
public long WorkshopId { get; set; }
public int PageIndex { get; set; }
+ public bool ShowAsGrouped { get; set; }
+
}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/SalaryAid/SalaryAidViewModel.cs b/CompanyManagment.App.Contracts/SalaryAid/SalaryAidViewModel.cs
index ee089072..e415954c 100644
--- a/CompanyManagment.App.Contracts/SalaryAid/SalaryAidViewModel.cs
+++ b/CompanyManagment.App.Contracts/SalaryAid/SalaryAidViewModel.cs
@@ -15,4 +15,6 @@ public class SalaryAidViewModel
public string EmployeeFullName { get; set; }
public string PersonnelCode { get; set; }
+ public string MonthFa { get; set; }
+ public string YearFa { get; set; }
}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/SalaryAid/SalaryAidsGroupedByEmployeeViewModel.cs b/CompanyManagment.App.Contracts/SalaryAid/SalaryAidsGroupedByEmployeeViewModel.cs
new file mode 100644
index 00000000..67868eff
--- /dev/null
+++ b/CompanyManagment.App.Contracts/SalaryAid/SalaryAidsGroupedByEmployeeViewModel.cs
@@ -0,0 +1,12 @@
+using System.Collections.Generic;
+using CompanyManagment.App.Contracts.Fine;
+
+namespace CompanyManagment.App.Contracts.SalaryAid;
+
+public class SalaryAidsGroupedByEmployeeViewModel
+{
+ public string EmployeeName { get; set; }
+ public List Aids { get; set; }
+ public long EmployeeId { get; set; }
+ public string PersonnelCode { get; set; }
+}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/SalaryAid/SalaryAidsGroupedViewModel.cs b/CompanyManagment.App.Contracts/SalaryAid/SalaryAidsGroupedViewModel.cs
new file mode 100644
index 00000000..4787c202
--- /dev/null
+++ b/CompanyManagment.App.Contracts/SalaryAid/SalaryAidsGroupedViewModel.cs
@@ -0,0 +1,14 @@
+using System.Collections.Generic;
+using System.Security.Cryptography;
+
+namespace CompanyManagment.App.Contracts.SalaryAid;
+
+public class SalaryAidsGroupedViewModel
+{
+ public List GroupedByEmployee { get; set; }
+ public List GroupedByDate { get; set; }
+ public List SalaryAidListViewModels { get; set; }
+
+}
+
+
diff --git a/CompanyManagment.Application/FineApplication.cs b/CompanyManagment.Application/FineApplication.cs
index 274b5c0f..39c19008 100644
--- a/CompanyManagment.Application/FineApplication.cs
+++ b/CompanyManagment.Application/FineApplication.cs
@@ -4,6 +4,7 @@ using System.Linq;
using _0_Framework.Application;
using Company.Domain.CheckoutAgg;
using Company.Domain.CustomizeCheckoutAgg;
+using Company.Domain.CustomizeCheckoutTempAgg;
using Company.Domain.EmployeeAgg;
using Company.Domain.File1;
using Company.Domain.FineAgg;
@@ -15,33 +16,40 @@ namespace CompanyManagment.Application;
public class FineApplication : IFineApplication
{
- private readonly IFineRepository _fineRepository;
- private readonly IWorkshopRepository _workshopRepository;
- private readonly IEmployeeRepository _employeeRepository;
+ private readonly IFineRepository _fineRepository;
+ private readonly IWorkshopRepository _workshopRepository;
+ private readonly IEmployeeRepository _employeeRepository;
private readonly ICustomizeCheckoutRepository _customizeCheckoutRepository;
+ public readonly ICustomizeCheckoutTempRepository CustomizeCheckoutTempRepository;
+ private readonly IAuthHelper _authHelper;
- public FineApplication(IFineRepository fineRepository, IEmployeeRepository employeeRepository, IWorkshopRepository workshopRepository, ICustomizeCheckoutRepository customizeCheckoutRepository)
- {
- _fineRepository = fineRepository;
- _employeeRepository = employeeRepository;
- _workshopRepository = workshopRepository;
+ public FineApplication(IFineRepository fineRepository, IEmployeeRepository employeeRepository,
+ IWorkshopRepository workshopRepository, ICustomizeCheckoutRepository customizeCheckoutRepository,
+ IAuthHelper authHelper,ICustomizeCheckoutTempRepository customizeCheckoutTempRepository)
+ {
+ _fineRepository = fineRepository;
+ _employeeRepository = employeeRepository;
+ _workshopRepository = workshopRepository;
_customizeCheckoutRepository = customizeCheckoutRepository;
+ _authHelper = authHelper;
+
+ CustomizeCheckoutTempRepository = customizeCheckoutTempRepository;
}
- public List GetSearchList(FineSearchViewModel searchModel)
- {
- return _fineRepository.GetSearchList(searchModel);
- }
+ public List GetSearchList(FineSearchViewModel searchModel)
+ {
+ return _fineRepository.GetSearchList(searchModel);
+ }
- public EditFineViewModel GetDetails(long id)
- {
- return _fineRepository.GetDetails(id);
- }
+ public EditFineViewModel GetDetails(long id)
+ {
+ return _fineRepository.GetDetails(id);
+ }
- public OperationResult Remove(long id)
- {
- OperationResult op = new OperationResult();
- var entity = _fineRepository.Get(id);
+ public OperationResult Remove(long id)
+ {
+ OperationResult op = new OperationResult();
+ var entity = _fineRepository.Get(id);
if (entity == null)
return op.Failed("چنین آیتمی وجود ندارد");
@@ -50,120 +58,174 @@ public class FineApplication : IFineApplication
- if (_customizeCheckoutRepository.Exists(x => x.WorkshopId == entity.WorkshopId && entity.EmployeeId==x.EmployeeId && x.YearInt == year && x.MonthInt == month))
+ if (_customizeCheckoutRepository.Exists(x =>
+ x.WorkshopId == entity.WorkshopId && entity.EmployeeId == x.EmployeeId && x.YearInt == year &&
+ x.MonthInt == month))
{
return op.Failed("این پرسنل در این تاریخ دارای فیش حقوقی است");
}
+ if (CustomizeCheckoutTempRepository.Exists(x =>
+ x.WorkshopId == entity.WorkshopId && entity.EmployeeId == x.EmployeeId && x.YearInt == year &&
+ x.MonthInt == month &&
+ x.ContractStart <= entity.FineDate && x.ContractEnd >= entity.FineDate))
+ {
+ return op.Failed("این پرسنل در این تاریخ دارای فیش حقوقی است");
+ }
_fineRepository.Remove(entity);
- _fineRepository.SaveChanges();
- return op.Succcedded();
- }
+ _fineRepository.SaveChanges();
+ return op.Succcedded();
+ }
- public OperationResult RemoveRange(List ids)
- {
- OperationResult op = new OperationResult();
- var fines = _fineRepository.GetBy(ids);
- _fineRepository.RemoveRange(fines);
- _fineRepository.SaveChanges();
- return op.Succcedded();
- }
+ public OperationResult RemoveRange(List ids)
+ {
+ OperationResult op = new OperationResult();
+ var fines = _fineRepository.GetBy(ids);
+ _fineRepository.RemoveRange(fines);
+ _fineRepository.SaveChanges();
+ return op.Succcedded();
+ }
- public OperationResult Create(CreateFineViewModel command)
- {
- OperationResult op = new();
+ ///
+ /// گروهبندی بر اساس ماه هنگام جستجو با انتخاب کارمند
+ ///
+ public FinesGroupedViewModel GetSearchListAsGrouped(FineSearchViewModel searchModel)
+ {
+ return _fineRepository.GetSearchListAsGrouped(searchModel);
+ }
- #region Validation
+ public OperationResult Create(CreateFineViewModel command)
+ {
+ OperationResult op = new();
- if (!_workshopRepository.Exists(x => x.id == command.WorkshopId))
- return op.Failed("خطای سیستمی");
- if (!_employeeRepository.Exists(x => command.EmployeeIds.Any(a => a == x.id)))
- return op.Failed("خطای سیستمی");
+ #region Validation
+
+ if (!_workshopRepository.Exists(x => x.id == command.WorkshopId))
+ return op.Failed("خطای سیستمی");
+ if (!_employeeRepository.Exists(x => command.EmployeeIds.Any(a => a == x.id)))
+ return op.Failed("خطای سیستمی");
if (!command.FineDate.TryToGeorgianDateTime(out var fineDate))
{
return op.Failed("تاریخ وارد شده نامعتبر است");
}
+
if (fineDate > DateTime.Now)
{
return op.Failed("تاریخ پرداخت جریمه می بایست تاریخ امروز یا قبل تر باشد");
}
+
if (command.Amount.Length > 15)
{
return op.Failed("مبلغ وارد شده معتبر نیست");
}
+
var month = Convert.ToInt32(command.FineDate.Substring(5, 2));
var year = Convert.ToInt32(command.FineDate.Substring(0, 4));
- if (_customizeCheckoutRepository.Exists(x=>x.WorkshopId ==command.WorkshopId && command.EmployeeIds.Contains(x.EmployeeId) && x.YearInt==year && x.MonthInt == month))
+ if (_customizeCheckoutRepository.Exists(x =>
+ x.WorkshopId == command.WorkshopId && command.EmployeeIds.Contains(x.EmployeeId) && x.YearInt == year &&
+ x.MonthInt == month))
{
return op.Failed("شما نمیتوانید برای پرسنلی در تاریخی که برای فیش حقوقی صادر شده است جریمه ای دهید");
}
+ if (CustomizeCheckoutTempRepository.Exists(x =>
+ x.WorkshopId == command.WorkshopId && command.EmployeeIds.Contains(x.EmployeeId) && x.YearInt == year &&
+ x.MonthInt == month &&
+ x.ContractStart <= fineDate && x.ContractEnd >= fineDate))
+ {
+ return op.Failed("شما نمیتوانید برای پرسنلی در تاریخی که برای فیش حقوقی موقت صادر شده است جریمه ای دهید");
+
+ }
+
#endregion
+
DateTime date = command.FineDate.ToGeorgianDateTime();
+ var (userId, userType) = _authHelper.GetUserTypeWithId();
+ foreach (var employeeId in command.EmployeeIds)
+ {
+ Fine entity = new Fine(employeeId, command.WorkshopId, command.Title, command.Amount.MoneyToDouble(), date,
+ userId, userType);
+ _fineRepository.Create(entity);
- foreach (var employeeId in command.EmployeeIds)
- {
- Fine entity = new Fine(employeeId, command.WorkshopId, command.Title, command.Amount.MoneyToDouble(), date);
- _fineRepository.Create(entity);
+ }
- }
+ _fineRepository.SaveChanges();
+ return op.Succcedded();
+ }
- _fineRepository.SaveChanges();
- return op.Succcedded();
- }
+ public OperationResult Edit(EditFineViewModel command)
+ {
+ OperationResult op = new();
+ var entity = _fineRepository.Get(command.Id);
+ if (entity == null)
+ return op.Failed("چنین جریمه ای یافت نشد");
+ if (command.EmployeeId <= 0)
+ {
+ return op.Failed("خطای سیستمی!");
+ }
- public OperationResult Edit(EditFineViewModel command)
- {
- OperationResult op = new();
- var entity = _fineRepository.Get(command.Id);
- if (entity == null)
- return op.Failed("چنین جریمه ای یافت نشد");
- if (command.EmployeeId <= 0)
- {
- return op.Failed("خطای سیستمی!");
- }
- if (!command.FineDate.TryToGeorgianDateTime(out var fineDate))
- {
- return op.Failed("تاریخ وارد شده نامعتبر است");
- }
- if (fineDate > DateTime.Now)
- {
- return op.Failed("تاریخ پرداخت جریمه می بایست تاریخ امروز یا قبل تر باشد");
+ if (!command.FineDate.TryToGeorgianDateTime(out var fineDate))
+ {
+ return op.Failed("تاریخ وارد شده نامعتبر است");
+ }
+
+ if (fineDate > DateTime.Now)
+ {
+ return op.Failed("تاریخ پرداخت جریمه می بایست تاریخ امروز یا قبل تر باشد");
+
+ }
- }
if (command.Amount.Length > 15)
{
return op.Failed("مبلغ وارد شده معتبر نیست");
}
+
var month = Convert.ToInt32(command.FineDate.Substring(5, 2));
var year = Convert.ToInt32(command.FineDate.Substring(0, 4));
+ if (!_employeeRepository.Exists(x => x.id == command.EmployeeId))
+ {
+ return op.Failed("شخص وارد شده معتبر نمیباشد");
+ }
- if (_customizeCheckoutRepository.Exists(x => x.WorkshopId == command.WorkshopId && command.EmployeeId == x.EmployeeId && x.YearInt == year && x.MonthInt == month))
+ if (_customizeCheckoutRepository.Exists(x =>
+ x.WorkshopId == command.WorkshopId && command.EmployeeId == x.EmployeeId && x.YearInt == year &&
+ x.MonthInt == month))
{
return op.Failed("شما نمیتوانید برای پرسنلی در تاریخی که برای فیش حقوقی صادر شده است جریمه ای دهید");
}
- if (!_employeeRepository.Exists(x=>x.id == command.EmployeeId))
- {
- return op.Failed("شخص وارد شده معتبر نمیباشد");
- }
- DateTime date = command.FineDate.ToGeorgianDateTime();
+ if (CustomizeCheckoutTempRepository.Exists(x =>
+ x.WorkshopId == command.WorkshopId && command.EmployeeId == x.EmployeeId && x.YearInt == year &&
+ x.MonthInt == month &&
+ x.ContractStart <= fineDate && x.ContractEnd >= fineDate))
+ {
+ return op.Failed("شما نمیتوانید برای پرسنلی در تاریخی که برای فیش حقوقی موقت صادر شده است جریمه ای دهید");
+ }
+
+ if (!_employeeRepository.Exists(x => x.id == command.EmployeeId))
+ {
+ return op.Failed("شخص وارد شده معتبر نمیباشد");
+ }
+
+ DateTime date = command.FineDate.ToGeorgianDateTime();
+ var (userId, userType) = _authHelper.GetUserTypeWithId();
- entity.Edit(command.EmployeeId, command.WorkshopId, command.Title, command.Amount.MoneyToDouble(), date);
+ entity.Edit(command.EmployeeId, command.WorkshopId, command.Title, command.Amount.MoneyToDouble(), date,
+ userId, userType);
- _fineRepository.SaveChanges();
- return op.Succcedded(entity.id);
+ _fineRepository.SaveChanges();
+ return op.Succcedded(entity.id);
- }
-}
\ No newline at end of file
+ }
+}
diff --git a/CompanyManagment.Application/LoanApplication.cs b/CompanyManagment.Application/LoanApplication.cs
index a5326dcc..9161e8f6 100644
--- a/CompanyManagment.Application/LoanApplication.cs
+++ b/CompanyManagment.Application/LoanApplication.cs
@@ -6,11 +6,13 @@ using System.Reflection.Metadata.Ecma335;
using _0_Framework.Application;
using Company.Domain.CheckoutAgg;
using Company.Domain.CustomizeCheckoutAgg;
+using Company.Domain.CustomizeCheckoutTempAgg;
using Company.Domain.LoanAgg;
using Company.Domain.LoanAgg.Entities;
using CompanyManagment.App.Contracts.Loan;
using Hangfire.States;
using Microsoft.AspNetCore.Mvc.Infrastructure;
+using Microsoft.Extensions.Configuration.UserSecrets;
namespace CompanyManagment.Application;
@@ -18,11 +20,15 @@ public class LoanApplication : ILoanApplication
{
private readonly ILoanRepository _loanRepository;
private readonly ICustomizeCheckoutRepository _customizeCheckoutRepository;
+ private readonly IAuthHelper _authHelper;
+ private readonly ICustomizeCheckoutTempRepository _customizeCheckoutTempRepository;
- public LoanApplication(ILoanRepository loanRepository, ICustomizeCheckoutRepository customizeCheckoutRepository)
+ public LoanApplication(ILoanRepository loanRepository, ICustomizeCheckoutRepository customizeCheckoutRepository, ICustomizeCheckoutTempRepository customizeCheckoutTempRepository, IAuthHelper authHelper)
{
_loanRepository = loanRepository;
_customizeCheckoutRepository = customizeCheckoutRepository;
+ _authHelper = authHelper;
+ _customizeCheckoutTempRepository = customizeCheckoutTempRepository;
}
public List GetSearchList(LoanSearchViewModel searchModel)
@@ -51,15 +57,15 @@ public class LoanApplication : ILoanApplication
var lastInstallment = installment.MaxBy(x => x.DateGr).DateGr;
#region Validation
- //if (startInstallmentDate.Date < now.Date)
- //{
- // return op.Failed("تاریخ شروع وام نمیتواند در گذشته باشد");
- //}
+ if (startInstallmentDate.Date < now.Date)
+ {
+ return op.Failed("تاریخ شروع وام نمیتواند در گذشته باشد");
+ }
- //if (loanGrantDate>now)
- //{
- // return op.Failed("تاریخ پرداخت وام می بایست تاریخ امروز یا قبل تر باشد");
- //}
+ if (loanGrantDate>now)
+ {
+ return op.Failed("تاریخ پرداخت وام می بایست تاریخ امروز یا قبل تر باشد");
+ }
if (!command.LoanGrantDate.TryToGeorgianDateTime(out var grantDate))
{
@@ -68,23 +74,32 @@ public class LoanApplication : ILoanApplication
if (amountD < 1000000)
return op.Failed("حداقل مبلغ وام 1.000.000 ریال میباشد");
- //if (_customizeCheckoutRepository.Exists(x =>
- // command.EmployeeIds.Contains(x.EmployeeId) && x.WorkshopId == command.WorkshopId &&
- // (x.ContractStart > startInstallmentDate && x.ContractStart < lastInstallment)))
- //{
- // return op.Failed("شما نمیتوانید برای پرسنلی در تاریخی که برای فیش حقوقی صادر شده است وام دهید");
- //}
+ if (_customizeCheckoutRepository.Exists(x =>
+ command.EmployeeIds.Contains(x.EmployeeId) && x.WorkshopId == command.WorkshopId &&
+ (x.ContractStart > startInstallmentDate && x.ContractStart < lastInstallment)))
+ {
+ return op.Failed("شما نمیتوانید برای پرسنلی در تاریخی که برای فیش حقوقی صادر شده است وام دهید");
+ }
+
+ if (_customizeCheckoutTempRepository.Exists(x =>
+ command.EmployeeIds.Contains(x.EmployeeId) && x.WorkshopId == command.WorkshopId &&
+ (x.ContractStart >= startInstallmentDate && x.ContractStart <= lastInstallment)))
+ {
+ return op.Failed("پرسنل در بازه اقساط خود دارای فیش غیررسمی است");
+ }
#endregion
- foreach (var employeeId in command.EmployeeIds)
+ var (userId, userType) = _authHelper.GetUserTypeWithId();
+
+ foreach (var employeeId in command.EmployeeIds)
{
var entity = new Loan(employeeId, command.WorkshopId, startInstallmentDate, command.Count.ToString(),
command.Amount.MoneyToDouble(),
installment.First().Amount.MoneyToDouble(),
installment.Select(x =>
new LoanInstallment(x.Amount.MoneyToDouble(), x.Month, x.Year, x.DateGr)).ToList()
- , command.GetRounded, grantDate);
+ , command.GetRounded, grantDate,userId,userType);
_loanRepository.Create(entity);
}
@@ -93,7 +108,6 @@ public class LoanApplication : ILoanApplication
return op.Succcedded();
}
-
public List CalculateLoanInstallment(string amount, int installmentCount, string loanStartDate, bool getRounded)
{
int day = Convert.ToInt32(loanStartDate.Substring(8, 2));
@@ -227,11 +241,19 @@ public class LoanApplication : ILoanApplication
if (_customizeCheckoutRepository.Exists(x =>
entity.EmployeeId == x.EmployeeId && x.WorkshopId == entity.WorkshopId &&
- (x.ContractStart > entity.StartInstallmentPayment && x.ContractStart < lastInstallment)))
+ (x.ContractStart >= entity.StartInstallmentPayment && x.ContractStart <= lastInstallment)))
{
return op.Failed("این پرسنل در این تاریخ دارای فیش حقوقی است");
}
+ if (_customizeCheckoutTempRepository.Exists(x =>
+ entity.EmployeeId == x.EmployeeId && x.WorkshopId == entity.WorkshopId &&
+ (x.ContractStart >= entity.StartInstallmentPayment && x.ContractStart <= lastInstallment)))
+ {
+ return op.Failed("پرسنل در بازه اقساط خود دارای فیش غیررسمی است");
+ }
+
+
_loanRepository.Remove(entity);
_loanRepository.SaveChanges();
@@ -247,4 +269,9 @@ public class LoanApplication : ILoanApplication
_loanRepository.SaveChanges();
return op.Succcedded();
}
+
+ public LoanGroupedViewModel GetSearchListAsGrouped(LoanSearchViewModel searchModel)
+ {
+ return _loanRepository.GetSearchListAsGrouped(searchModel);
+ }
}
\ No newline at end of file
diff --git a/CompanyManagment.Application/RewardApplication.cs b/CompanyManagment.Application/RewardApplication.cs
index f22ce26b..0d441e22 100644
--- a/CompanyManagment.Application/RewardApplication.cs
+++ b/CompanyManagment.Application/RewardApplication.cs
@@ -5,6 +5,7 @@ using System.Linq;
using _0_Framework.Application;
using Company.Domain.CheckoutAgg;
using Company.Domain.CustomizeCheckoutAgg;
+using Company.Domain.CustomizeCheckoutTempAgg;
using Company.Domain.RewardAgg;
using CompanyManagment.App.Contracts.Reward;
using Microsoft.AspNetCore.Components.Forms;
@@ -17,6 +18,7 @@ public class RewardApplication : IRewardApplication
private readonly IRewardRepository _rewardRepository;
private readonly IAuthHelper _authHelper;
private readonly ICustomizeCheckoutRepository _customizeCheckoutRepository;
+ private readonly ICustomizeCheckoutTempRepository _customizeCheckoutTempRepository;
public RewardApplication(IRewardRepository rewardRepository, IAuthHelper authHelper, ICustomizeCheckoutRepository customizeCheckoutRepository)
{
@@ -27,7 +29,7 @@ public class RewardApplication : IRewardApplication
public List GetSearchList(RewardSearchModel searchModel)
{
- return _rewardRepository.GetSearchList(searchModel);
+ return _rewardRepository.GetSearchList(searchModel);
}
@@ -37,23 +39,31 @@ public class RewardApplication : IRewardApplication
public EditRewardViewModel GetDetails(long id)
{
- return _rewardRepository.GetDetails(id);
+ return _rewardRepository.GetDetails(id);
}
public OperationResult Remove(long id)
{
OperationResult op = new OperationResult();
- var entity =_rewardRepository.Get(id);
+ var entity = _rewardRepository.Get(id);
if (entity == null)
- return op.Failed("این آیتم وجود ندارد");
+ return op.Failed("این آیتم وجود ندارد");
var month = Convert.ToInt32(entity.GrantDate.ToFarsi().Substring(5, 2));
- var year= Convert.ToInt32(entity.GrantDate.ToFarsi().Substring(0, 4));
+ var year = Convert.ToInt32(entity.GrantDate.ToFarsi().Substring(0, 4));
- if (_customizeCheckoutRepository.Exists(x => x.WorkshopId == entity.WorkshopId && entity.EmployeeId==x.EmployeeId && x.YearInt == year && x.MonthInt == month))
+ if (_customizeCheckoutRepository.Exists(x => x.WorkshopId == entity.WorkshopId && entity.EmployeeId == x.EmployeeId && x.YearInt == year && x.MonthInt == month))
{
return op.Failed("این پرسنل در این تاریخ دارای فیش حقوقی است");
}
+
+ if (_customizeCheckoutTempRepository.Exists(x => x.WorkshopId == entity.WorkshopId && entity.EmployeeId == x.EmployeeId &&
+ x.YearInt == year && x.MonthInt == month && x.ContractStart <= entity.GrantDate && x.ContractEnd >= entity.GrantDate))
+ {
+ return op.Failed("این پرسنل در این تاریخ دارای فیش حقوقی موقت است");
+
+ }
+
_rewardRepository.Remove(entity);
_rewardRepository.SaveChanges();
return op.Succcedded();
@@ -61,24 +71,24 @@ public class RewardApplication : IRewardApplication
public OperationResult RemoveRange(IEnumerable ids)
{
- OperationResult op = new OperationResult();
- var rewards = _rewardRepository.GetBy(ids);
- _rewardRepository.RemoveRange(rewards);
- _rewardRepository.SaveChanges();
- return op.Succcedded();
+ OperationResult op = new OperationResult();
+ var rewards = _rewardRepository.GetBy(ids);
+ _rewardRepository.RemoveRange(rewards);
+ _rewardRepository.SaveChanges();
+ return op.Succcedded();
- }
+ }
public OperationResult Create(CreateRewardViewModel command)
{
var op = new OperationResult();
- #region Validation
+ #region Validation
- if (!command.GrantDate.TryToGeorgianDateTime(out var grantDate))
- {
- return op.Failed("تاریخ وارد شده نامعتبر است");
- }
+ if (!command.GrantDate.TryToGeorgianDateTime(out var grantDate))
+ {
+ return op.Failed("تاریخ وارد شده نامعتبر است");
+ }
if (grantDate > DateTime.Now)
{
@@ -86,7 +96,7 @@ public class RewardApplication : IRewardApplication
}
- if (command.Amount.Length>15)
+ if (command.Amount.Length > 15)
{
return op.Failed("مبلغ وارد شده معتبر نیست");
}
@@ -97,19 +107,28 @@ public class RewardApplication : IRewardApplication
if (_customizeCheckoutRepository.Exists(x => x.WorkshopId == command.WorkshopId && command.EmployeeIds.Contains(x.EmployeeId) && x.YearInt == year && x.MonthInt == month))
{
return op.Failed("شما نمیتوانید برای پرسنلی در تاریخی که برای فیش حقوقی صادر شده است پاداشی دهید");
- }
+ }
+
+ if (_customizeCheckoutTempRepository.Exists(x => x.WorkshopId == command.WorkshopId && command.EmployeeIds.Contains(x.EmployeeId) &&
+ x.YearInt == year && x.MonthInt == month && x.ContractStart <= grantDate && x.ContractEnd >= grantDate))
+ {
+ return op.Failed("شما نمیتوانید برای پرسنلی در تاریخی که برای فیش حقوقی موقت صادر شده است پاداشی دهید");
+ }
+
+
+
-
#endregion
+ var (userId, userType) = _authHelper.GetUserTypeWithId();
- foreach (var employeeId in command.EmployeeIds)
+ foreach (var employeeId in command.EmployeeIds)
{
var entity = new Reward(employeeId, command.WorkshopId, command.Amount.MoneyToDouble(), command.Description,
- command.RewardedByAccountId, grantDate,command.Title);
+ userId, userType,grantDate,command.Title);
+
+ _rewardRepository.Create(entity);
+ }
- _rewardRepository.Create(entity);
- }
-
_rewardRepository.SaveChanges();
return op.Succcedded();
}
@@ -140,24 +159,33 @@ public class RewardApplication : IRewardApplication
var month = Convert.ToInt32(command.GrantDate.Substring(5, 2));
var year = Convert.ToInt32(command.GrantDate.Substring(0, 4));
- if (_customizeCheckoutRepository.Exists(x => x.WorkshopId == command.WorkshopId && command.EmployeeId==x.EmployeeId && x.YearInt == year && x.MonthInt == month))
+ if (_customizeCheckoutRepository.Exists(x => x.WorkshopId == command.WorkshopId && command.EmployeeId == x.EmployeeId && x.YearInt == year && x.MonthInt == month))
{
return op.Failed("شما نمیتوانید برای پرسنلی در تاریخی که برای فیش حقوقی صادر شده است پاداشی دهید");
}
+ var (userId, userType) = _authHelper.GetUserTypeWithId();
- entity.Edit(command.Amount.MoneyToDouble(),command.Description,command.RewardedByAccountId, grantDate,command.Title);
+ if (_customizeCheckoutTempRepository.Exists(x => x.WorkshopId == command.WorkshopId && entity.EmployeeId == x.EmployeeId &&
+ x.YearInt == year && x.MonthInt == month && x.ContractStart <= grantDate && x.ContractEnd >= grantDate))
+ {
+ return op.Failed("شما نمیتوانید برای پرسنلی در تاریخی که برای فیش حقوقی موقت صادر شده است پاداشی دهید");
+ }
+
+
+ entity.Edit(command.Amount.MoneyToDouble(),command.Description,userId,userType, grantDate,command.Title);
_rewardRepository.SaveChanges();
return op.Succcedded(entity.id);
}
- #region Pooya
+ #region Pooya
+
///
/// گروهبندی بر اساس ماه هنگام جستجو با انتخاب کارمند
///
- public List GetSearchListByEmployee(RewardSearchModel searchModel)
+ public RewardsGroupedViewModel GetSearchListAsGrouped(RewardSearchModel searchModel)
{
- return _rewardRepository.GetSearchListByEmployee(searchModel);
+ return _rewardRepository.GetSearchListAsGrouped(searchModel);
}
#endregion
diff --git a/CompanyManagment.Application/SalaryAidApplication.cs b/CompanyManagment.Application/SalaryAidApplication.cs
index c17684b6..3cd9f16d 100644
--- a/CompanyManagment.Application/SalaryAidApplication.cs
+++ b/CompanyManagment.Application/SalaryAidApplication.cs
@@ -8,7 +8,10 @@ using CompanyManagment.App.Contracts.Checkout;
using System;
using System.Threading.Tasks;
using Company.Domain.CustomizeCheckoutAgg;
+using Company.Domain.CustomizeCheckoutTempAgg;
using Company.Domain.EmployeeAgg;
+using CompanyManagment.App.Contracts.Reward;
+using OfficeOpenXml.Drawing.Chart;
namespace CompanyManagment.Application;
@@ -17,14 +20,21 @@ public class SalaryAidApplication : ISalaryAidApplication
private readonly ISalaryAidRepository _salaryAidRepository;
private readonly ICustomizeCheckoutRepository _customizeCheckoutRepository;
private readonly IEmployeeRepository _employeeRepository;
+ private readonly ICustomizeCheckoutTempRepository _customizeCheckoutTempRepository;
+ private readonly IAuthHelper _authHelper;
+
- public SalaryAidApplication(ISalaryAidRepository salaryAidRepository, ICustomizeCheckoutRepository customizeCheckoutRepository, IEmployeeRepository employeeRepository)
+ public SalaryAidApplication(ISalaryAidRepository salaryAidRepository, ICustomizeCheckoutRepository customizeCheckoutRepository,
+ IEmployeeRepository employeeRepository, ICustomizeCheckoutTempRepository customizeCheckoutTempRepository, IAuthHelper authHelper)
{
_salaryAidRepository = salaryAidRepository;
_customizeCheckoutRepository = customizeCheckoutRepository;
+ _authHelper = authHelper;
_employeeRepository = employeeRepository;
+ _customizeCheckoutTempRepository = customizeCheckoutTempRepository;
}
+
public List GetSearchList(SalaryAidSearchViewModel searchViewModel)
{
return _salaryAidRepository.GetSearchList(searchViewModel);
@@ -61,11 +71,17 @@ public class SalaryAidApplication : ISalaryAidApplication
{
return op.Failed("شما نمیتوانید برای پرسنلی در تاریخی که برای فیش حقوقی صادر شده است مساعده ای دهید");
}
+ if (_customizeCheckoutTempRepository.Exists(x => x.WorkshopId == command.WorkshopId && command.EmployeeIds.Contains(x.EmployeeId) &&
+ x.YearInt == year && x.MonthInt == month && x.ContractStart <= startDate && x.ContractEnd >= startDate))
+ {
+ return op.Failed("شما نمیتوانید برای پرسنلی در تاریخی که برای فیش حقوقی موقت صادر شده است مساعده ای دهید");
+ }
+ var (userId, userType) = _authHelper.GetUserTypeWithId();
- foreach (var employeeId in command.EmployeeIds)
+ foreach (var employeeId in command.EmployeeIds)
{
- var entity = new SalaryAid(employeeId, command.WorkshopId, command.Amount.MoneyToDouble(), startDate);
+ var entity = new SalaryAid(employeeId, command.WorkshopId, command.Amount.MoneyToDouble(), startDate,userId,userType);
_salaryAidRepository.Create(entity);
}
@@ -101,8 +117,14 @@ public class SalaryAidApplication : ISalaryAidApplication
if (_customizeCheckoutRepository.Exists(x => x.WorkshopId == entity.WorkshopId && entity.EmployeeId == x.EmployeeId && x.YearInt == year && x.MonthInt == month))
return op.Failed("شما نمیتوانید برای پرسنلی در تاریخی که برای فیش حقوقی صادر شده است مساعده ای دهید");
+ if (_customizeCheckoutTempRepository.Exists(x => x.WorkshopId == command.WorkshopId && command.EmployeeIds.Contains(x.EmployeeId) &&
+ x.YearInt == year && x.MonthInt == month && x.ContractStart <= startDate && x.ContractEnd >= startDate))
+ {
+ return op.Failed("شما نمیتوانید برای پرسنلی در تاریخی که برای فیش حقوقی موقت صادر شده است مساعده ای دهید");
+ }
+ var (userId, userType) = _authHelper.GetUserTypeWithId();
- entity.Edit(Tools.MoneyToDouble(command.Amount),startDate);
+ entity.Edit(Tools.MoneyToDouble(command.Amount),startDate,userId,userType);
_salaryAidRepository.SaveChanges();
return op.Succcedded();
}
@@ -121,6 +143,12 @@ public class SalaryAidApplication : ISalaryAidApplication
return op.Failed("این پرسنل در این تاریخ دارای فیش حقوقی است");
+ if (_customizeCheckoutTempRepository.Exists(x => x.WorkshopId == entity.WorkshopId && entity.EmployeeId == x.EmployeeId &&
+ x.YearInt == year && x.MonthInt == month && x.ContractStart <= entity.SalaryAidDateTime && x.ContractEnd >= entity.SalaryAidDateTime))
+ {
+ return op.Failed("این پرسنل در این تاریخ دارای فیش حقوقی موقت است");
+ }
+
_salaryAidRepository.Remove(entity);
_salaryAidRepository.SaveChanges();
return op.Succcedded();
@@ -135,6 +163,7 @@ public class SalaryAidApplication : ISalaryAidApplication
return op.Succcedded();
}
+
public async Task CreateRange(List commands)
{
var op = new OperationResult();
@@ -164,8 +193,8 @@ public class SalaryAidApplication : ISalaryAidApplication
{
return op.Failed("شما نمیتوانید برای پرسنلی در تاریخی که برای فیش حقوقی صادر شده است مساعده ای دهید");
}
-
- foreach (var employeeId in command.EmployeeIds)
+ var (userId, userType) = _authHelper.GetUserTypeWithId();
+ foreach (var employeeId in command.EmployeeIds)
{
var id = employeeId;
if (employeeId == 0)
@@ -174,11 +203,22 @@ public class SalaryAidApplication : ISalaryAidApplication
id = employee.id;
}
- var entity = new SalaryAid(id, command.WorkshopId, command.Amount.MoneyToDouble(), startDate);
+ var entity = new SalaryAid(id, command.WorkshopId, command.Amount.MoneyToDouble(), startDate, userId, userType);
await _salaryAidRepository.CreateAsync(entity);
}
}
await _salaryAidRepository.SaveChangesAsync();
return op.Succcedded();
}
+ #region Pooya
+ ///
+ /// گروهبندی بر اساس ماه هنگام جستجو با انتخاب کارمند
+ ///
+ public SalaryAidsGroupedViewModel GetSearchListAsGrouped(SalaryAidSearchViewModel searchModel)
+ {
+ return _salaryAidRepository.GetSearchListAsGrouped(searchModel);
+ }
+
+
+ #endregion
}
\ No newline at end of file
diff --git a/CompanyManagment.EFCore/Mapping/FineMapping.cs b/CompanyManagment.EFCore/Mapping/FineMapping.cs
index 049d1cf2..421f77b9 100644
--- a/CompanyManagment.EFCore/Mapping/FineMapping.cs
+++ b/CompanyManagment.EFCore/Mapping/FineMapping.cs
@@ -17,5 +17,8 @@ public class FineMapping:IEntityTypeConfiguration
v => v.ToString(),
v => (IsActive)Enum.Parse(typeof(IsActive), v)).HasMaxLength(5);
builder.Property(x => x.Title).HasMaxLength(255);
- }
+
+ builder.Property(x => x.CreatedByUserType).HasConversion().HasMaxLength(50);
+ builder.Property(x => x.LastModifiedByUserType).HasConversion().HasMaxLength(50);
+ }
}
\ No newline at end of file
diff --git a/CompanyManagment.EFCore/Mapping/LoanMapping.cs b/CompanyManagment.EFCore/Mapping/LoanMapping.cs
index 525cc771..fba8c6ca 100644
--- a/CompanyManagment.EFCore/Mapping/LoanMapping.cs
+++ b/CompanyManagment.EFCore/Mapping/LoanMapping.cs
@@ -31,5 +31,7 @@ public class LoanMapping : IEntityTypeConfiguration
builder.Ignore(x => x.StartDateYear);
builder.Ignore(x => x.StartDateMonth);
- }
+
+ builder.Property(x => x.CreatedByUserType).HasConversion().HasMaxLength(50);
+ }
}
\ No newline at end of file
diff --git a/CompanyManagment.EFCore/Mapping/RewardMapping.cs b/CompanyManagment.EFCore/Mapping/RewardMapping.cs
index 98f6c1c1..f32ecd66 100644
--- a/CompanyManagment.EFCore/Mapping/RewardMapping.cs
+++ b/CompanyManagment.EFCore/Mapping/RewardMapping.cs
@@ -3,6 +3,7 @@ using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using System;
using _0_Framework.Application;
+using CompanyManagment.App.Contracts.Reward.Enums;
namespace CompanyManagment.EFCore.Mapping;
@@ -19,5 +20,9 @@ public class RewardMapping:IEntityTypeConfiguration
builder.Property(x => x.Title).HasMaxLength(255);
builder.Property(x => x.RewardType).HasConversion().HasMaxLength(50);
+
+ builder.Property(x => x.CreatedByUserType).HasConversion().HasMaxLength(50);
+ builder.Property(x => x.LastModifiedByUserType).HasConversion().HasMaxLength(50);
+
}
}
\ No newline at end of file
diff --git a/CompanyManagment.EFCore/Mapping/SalaryAidMapping.cs b/CompanyManagment.EFCore/Mapping/SalaryAidMapping.cs
index 2817e517..982ca1ba 100644
--- a/CompanyManagment.EFCore/Mapping/SalaryAidMapping.cs
+++ b/CompanyManagment.EFCore/Mapping/SalaryAidMapping.cs
@@ -10,6 +10,10 @@ public class SalaryAidMapping:IEntityTypeConfiguration
{
builder.ToTable("SalaryAids");
builder.HasKey(x => x.id);
-
- }
+
+ builder.Property(x => x.CreatedByUserType).HasConversion().HasMaxLength(50);
+ builder.Property(x => x.LastModifiedByUserType).HasConversion().HasMaxLength(50);
+
+
+ }
}
\ No newline at end of file
diff --git a/CompanyManagment.EFCore/Migrations/20250413184901_add grouping loan reward SA fine.Designer.cs b/CompanyManagment.EFCore/Migrations/20250413184901_add grouping loan reward SA fine.Designer.cs
new file mode 100644
index 00000000..ba9fc70d
--- /dev/null
+++ b/CompanyManagment.EFCore/Migrations/20250413184901_add grouping loan reward SA fine.Designer.cs
@@ -0,0 +1,9346 @@
+//
+using System;
+using CompanyManagment.EFCore;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+
+#nullable disable
+
+namespace CompanyManagment.EFCore.Migrations
+{
+ [DbContext(typeof(CompanyContext))]
+ [Migration("20250413184901_add grouping loan reward SA fine")]
+ partial class addgroupingloanrewardSAfine
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "8.0.10")
+ .HasAnnotation("Relational:MaxIdentifierLength", 128);
+
+ SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
+
+ modelBuilder.Entity("Company.Domain.AndroidApkVersionAgg.AndroidApkVersion", b =>
+ {
+ b.Property("id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id"));
+
+ b.Property("CreationDate")
+ .HasColumnType("datetime2");
+
+ b.Property("IsActive")
+ .IsRequired()
+ .HasMaxLength(5)
+ .HasColumnType("nvarchar(5)");
+
+ b.Property("Path")
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.Property("Title")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("VersionCode")
+ .HasMaxLength(20)
+ .HasColumnType("nvarchar(20)");
+
+ b.Property("VersionName")
+ .HasMaxLength(35)
+ .HasColumnType("nvarchar(35)");
+
+ b.HasKey("id");
+
+ b.ToTable("AndroidApkVersions", (string)null);
+ });
+
+ modelBuilder.Entity("Company.Domain.BankAgg.Bank", b =>
+ {
+ b.Property("id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id"));
+
+ b.Property("BankLogoMediaId")
+ .HasColumnType("bigint");
+
+ b.Property("BankName")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.HasKey("id");
+
+ b.ToTable("Banks", (string)null);
+ });
+
+ modelBuilder.Entity("Company.Domain.BillAgg.EntityBill", b =>
+ {
+ b.Property("id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id"));
+
+ b.Property("Appointed")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Contact")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("CreationDate")
+ .HasColumnType("datetime2");
+
+ b.Property("Description")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("IsActiveString")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ProcessingStage")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("SubjectBill")
+ .IsRequired()
+ .HasMaxLength(500)
+ .HasColumnType("nvarchar(500)");
+
+ b.HasKey("id");
+
+ b.ToTable("TextManager_Bill", (string)null);
+ });
+
+ modelBuilder.Entity("Company.Domain.Board.Board", b =>
+ {
+ b.Property("id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id"));
+
+ b.Property("BoardChairman")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("BoardType_Id")
+ .HasColumnType("int");
+
+ b.Property("Branch")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("CreationDate")
+ .HasColumnType("datetime2");
+
+ b.Property("DisputeResolutionPetitionDate")
+ .HasColumnType("datetime2");
+
+ b.Property("ExpertReport")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("File_Id")
+ .HasColumnType("bigint");
+
+ b.HasKey("id");
+
+ b.HasIndex("BoardType_Id");
+
+ b.HasIndex("File_Id");
+
+ b.ToTable("Boards", (string)null);
+ });
+
+ modelBuilder.Entity("Company.Domain.BoardType.BoardType", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"));
+
+ b.Property("Title")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("Id");
+
+ b.ToTable("BoardTypes", (string)null);
+ });
+
+ modelBuilder.Entity("Company.Domain.ChapterAgg.EntityChapter", b =>
+ {
+ b.Property("id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id"));
+
+ b.Property("Chapter")
+ .IsRequired()
+ .HasMaxLength(60)
+ .HasColumnType("nvarchar(60)");
+
+ b.Property("CreationDate")
+ .HasColumnType("datetime2");
+
+ b.Property("IsActiveString")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Subtitle_Id")
+ .HasColumnType("bigint");
+
+ b.HasKey("id");
+
+ b.HasIndex("Subtitle_Id");
+
+ b.ToTable("TextManager_Chapter", (string)null);
+ });
+
+ modelBuilder.Entity("Company.Domain.CheckoutAgg.Checkout", b =>
+ {
+ b.Property("id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id"));
+
+ b.Property("AbsenceDeduction")
+ .HasColumnType("float");
+
+ b.Property("AbsencePeriod")
+ .HasColumnType("float");
+
+ b.Property("AbsenceValue")
+ .HasMaxLength(10)
+ .HasColumnType("nvarchar(10)");
+
+ b.Property("ArchiveCode")
+ .HasMaxLength(15)
+ .HasColumnType("nvarchar(15)");
+
+ b.Property("AverageHoursPerDay")
+ .HasColumnType("float");
+
+ b.Property("BaseYearsPay")
+ .HasColumnType("float");
+
+ b.Property("BonusesPay")
+ .HasColumnType("float");
+
+ b.Property("ConsumableItems")
+ .HasColumnType("float");
+
+ b.Property("ContractEnd")
+ .HasColumnType("datetime2");
+
+ b.Property("ContractId")
+ .HasColumnType("bigint");
+
+ b.Property("ContractNo")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("ContractStart")
+ .HasColumnType("datetime2");
+
+ b.Property("CreationDate")
+ .HasColumnType("datetime2");
+
+ b.Property("CreditLeaves")
+ .HasColumnType("float");
+
+ b.Property("DateOfBirth")
+ .HasMaxLength(10)
+ .HasColumnType("nvarchar(10)");
+
+ b.Property("EmployeeFullName")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("EmployeeId")
+ .HasColumnType("bigint");
+
+ b.Property("FamilyAllowance")
+ .HasColumnType("float");
+
+ b.Property("FathersName")
+ .HasMaxLength(20)
+ .HasColumnType("nvarchar(20)");
+
+ b.Property("FridayPay")
+ .HasColumnType("float");
+
+ b.Property("FridayWorkValue")
+ .HasMaxLength(10)
+ .HasColumnType("nvarchar(10)");
+
+ b.Property("HasRollCall")
+ .HasColumnType("bit");
+
+ b.Property("HousingAllowance")
+ .HasColumnType("float");
+
+ b.Property("InstallmentDeduction")
+ .HasColumnType("float");
+
+ b.Property("InsuranceDeduction")
+ .HasColumnType("float");
+
+ b.Property("IsActiveString")
+ .HasMaxLength(10)
+ .HasColumnType("nvarchar(10)");
+
+ b.Property("LeaveCheckout")
+ .HasColumnType("bit");
+
+ b.Property("LeavePay")
+ .HasColumnType("float");
+
+ b.Property("MarriedAllowance")
+ .HasColumnType("float");
+
+ b.Property("MissionPay")
+ .HasColumnType("float");
+
+ b.Property("Month")
+ .HasMaxLength(10)
+ .HasColumnType("nvarchar(10)");
+
+ b.Property("MonthlySalary")
+ .HasColumnType("float");
+
+ b.Property("NationalCode")
+ .HasMaxLength(10)
+ .HasColumnType("nvarchar(10)");
+
+ b.Property("NightworkPay")
+ .HasColumnType("float");
+
+ b.Property("OverNightWorkValue")
+ .HasMaxLength(10)
+ .HasColumnType("nvarchar(10)");
+
+ b.Property("OverTimeWorkValue")
+ .HasMaxLength(10)
+ .HasColumnType("nvarchar(10)");
+
+ b.Property("OvertimePay")
+ .HasColumnType("float");
+
+ b.Property("PersonnelCode")
+ .HasMaxLength(10)
+ .HasColumnType("nvarchar(10)");
+
+ b.Property("RewardPay")
+ .HasColumnType("float");
+
+ b.Property("RotatingShiftValue")
+ .HasMaxLength(10)
+ .HasColumnType("nvarchar(10)");
+
+ b.Property("SalaryAidDeduction")
+ .HasColumnType("float");
+
+ b.Property("ShiftPay")
+ .HasColumnType("float");
+
+ b.Property("Signature")
+ .HasMaxLength(20)
+ .HasColumnType("nvarchar(20)");
+
+ b.Property("SumOfWorkingDays")
+ .HasMaxLength(6)
+ .HasColumnType("nvarchar(6)");
+
+ b.Property("TaxDeducation")
+ .HasColumnType("float");
+
+ b.Property("TotalClaims")
+ .HasMaxLength(25)
+ .HasColumnType("nvarchar(25)");
+
+ b.Property("TotalDayOfBunosesCompute")
+ .HasMaxLength(10)
+ .HasColumnType("nvarchar(10)");
+
+ b.Property("TotalDayOfLeaveCompute")
+ .HasMaxLength(10)
+ .HasColumnType("nvarchar(10)");
+
+ b.Property("TotalDayOfYearsCompute")
+ .HasMaxLength(10)
+ .HasColumnType("nvarchar(10)");
+
+ b.Property("TotalDeductions")
+ .HasMaxLength(25)
+ .HasColumnType("nvarchar(25)");
+
+ b.Property("TotalPayment")
+ .HasColumnType("float");
+
+ b.Property("WorkingHoursId")
+ .HasColumnType("bigint");
+
+ b.Property("WorkshopId")
+ .HasColumnType("bigint");
+
+ b.Property("WorkshopName")
+ .HasMaxLength(70)
+ .HasColumnType("nvarchar(70)");
+
+ b.Property("Year")
+ .HasMaxLength(4)
+ .HasColumnType("nvarchar(4)");
+
+ b.Property("YearsPay")
+ .HasColumnType("float");
+
+ b.HasKey("id");
+
+ b.HasIndex("WorkshopId");
+
+ b.ToTable("Checkouts", (string)null);
+ });
+
+ modelBuilder.Entity("Company.Domain.ClassifiedSalaryAgg.ClassifiedSalary", b =>
+ {
+ b.Property("id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id"));
+
+ b.Property("CreationDate")
+ .HasColumnType("datetime2");
+
+ b.Property("EndDate")
+ .HasColumnType("datetime2");
+
+ b.Property("Group1")
+ .HasColumnType("float");
+
+ b.Property("Group10")
+ .HasColumnType("float");
+
+ b.Property("Group11")
+ .HasColumnType("float");
+
+ b.Property("Group12")
+ .HasColumnType("float");
+
+ b.Property("Group13")
+ .HasColumnType("float");
+
+ b.Property("Group14")
+ .HasColumnType("float");
+
+ b.Property("Group15")
+ .HasColumnType("float");
+
+ b.Property("Group16")
+ .HasColumnType("float");
+
+ b.Property("Group17")
+ .HasColumnType("float");
+
+ b.Property("Group18")
+ .HasColumnType("float");
+
+ b.Property("Group19")
+ .HasColumnType("float");
+
+ b.Property("Group2")
+ .HasColumnType("float");
+
+ b.Property("Group20")
+ .HasColumnType("float");
+
+ b.Property("Group3")
+ .HasColumnType("float");
+
+ b.Property("Group4")
+ .HasColumnType("float");
+
+ b.Property("Group5")
+ .HasColumnType("float");
+
+ b.Property("Group6")
+ .HasColumnType("float");
+
+ b.Property("Group7")
+ .HasColumnType("float");
+
+ b.Property("Group8")
+ .HasColumnType("float");
+
+ b.Property("Group9")
+ .HasColumnType("float");
+
+ b.Property("StartDate")
+ .HasColumnType("datetime2");
+
+ b.Property("Year")
+ .HasColumnType("int");
+
+ b.HasKey("id");
+
+ b.ToTable("ClassifiedSalaries", (string)null);
+ });
+
+ modelBuilder.Entity("Company.Domain.ClientEmployeeWorkshopAgg.ClientEmployeeWorkshop", b =>
+ {
+ b.Property("WorkshopId")
+ .HasColumnType("bigint");
+
+ b.Property("EmployeeId")
+ .HasColumnType("bigint");
+
+ b.HasKey("WorkshopId", "EmployeeId");
+
+ b.HasIndex("EmployeeId");
+
+ b.ToTable("ClientWorkshopEmployee", (string)null);
+ });
+
+ modelBuilder.Entity("Company.Domain.Contact2Agg.EntityContact", b =>
+ {
+ b.Property("id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id"));
+
+ b.Property("CreationDate")
+ .HasColumnType("datetime2");
+
+ b.Property("IsActiveString")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("NameContact")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Signature")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("id");
+
+ b.ToTable("TextManager_Contact", (string)null);
+ });
+
+ modelBuilder.Entity("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", b =>
+ {
+ b.Property("id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id"));
+
+ b.Property("Address")
+ .HasMaxLength(500)
+ .HasColumnType("nvarchar(500)");
+
+ b.Property("AgentPhone")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("ArchiveCode")
+ .HasColumnType("int");
+
+ b.Property("BlockTimes")
+ .HasColumnType("int");
+
+ b.Property("City")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("CreationDate")
+ .HasColumnType("datetime2");
+
+ b.Property("DateOfBirth")
+ .HasColumnType("datetime2");
+
+ b.Property("FName")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("FatherName")
+ .HasMaxLength(20)
+ .HasColumnType("nvarchar(20)");
+
+ b.Property("Gender")
+ .IsRequired()
+ .HasMaxLength(6)
+ .HasColumnType("nvarchar(6)");
+
+ b.Property("IdNumber")
+ .HasMaxLength(20)
+ .HasColumnType("nvarchar(20)");
+
+ b.Property("IdNumberSeri")
+ .HasMaxLength(5)
+ .HasColumnType("nvarchar(5)");
+
+ b.Property("IdNumberSerial")
+ .HasMaxLength(15)
+ .HasColumnType("nvarchar(15)");
+
+ b.Property("IsActiveString")
+ .HasMaxLength(5)
+ .HasColumnType("nvarchar(5)");
+
+ b.Property("IsAuthenticated")
+ .HasColumnType("bit");
+
+ b.Property("IsBlock")
+ .HasMaxLength(5)
+ .HasColumnType("nvarchar(5)");
+
+ b.Property("IsLegal")
+ .IsRequired()
+ .HasMaxLength(10)
+ .HasColumnType("nvarchar(10)");
+
+ b.Property("LName")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("NationalId")
+ .IsRequired()
+ .HasMaxLength(15)
+ .HasColumnType("nvarchar(15)");
+
+ b.Property("Nationalcode")
+ .IsRequired()
+ .HasMaxLength(10)
+ .HasColumnType("nvarchar(10)");
+
+ b.Property("Phone")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("RegisterId")
+ .IsRequired()
+ .HasMaxLength(15)
+ .HasColumnType("nvarchar(15)");
+
+ b.Property("RepresentativeFullName")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("RepresentativeId")
+ .HasColumnType("bigint");
+
+ b.Property("State")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("SureName")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("Zone")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.HasKey("id");
+
+ b.HasIndex("RepresentativeId");
+
+ b.ToTable("PersonalContractingParties", (string)null);
+ });
+
+ modelBuilder.Entity("Company.Domain.ContractAgg.Contract", b =>
+ {
+ b.Property("id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id"));
+
+ b.Property("AgreementSalary")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("ArchiveCode")
+ .IsRequired()
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.Property("ConsumableItems")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("ContarctStart")
+ .HasColumnType("datetime2");
+
+ b.Property("ContractEnd")
+ .HasColumnType("datetime2");
+
+ b.Property("ContractNo")
+ .IsRequired()
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.Property("ContractPeriod")
+ .HasMaxLength(2)
+ .HasColumnType("nvarchar(2)");
+
+ b.Property("ContractType")
+ .IsRequired()
+ .HasMaxLength(20)
+ .HasColumnType("nvarchar(20)");
+
+ b.Property("CreationDate")
+ .HasColumnType("datetime2");
+
+ b.Property("DayliWage")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("EmployeeId")
+ .HasColumnType("bigint");
+
+ b.Property("EmployerId")
+ .HasColumnType("bigint");
+
+ b.Property("FamilyAllowance")
+ .IsRequired()
+ .HasMaxLength(100)
+ .HasColumnType("nvarchar(100)");
+
+ b.Property("GetWorkDate")
+ .HasColumnType("datetime2");
+
+ b.Property("HousingAllowance")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("IsActiveString")
+ .IsRequired()
+ .HasMaxLength(10)
+ .HasColumnType("nvarchar(10)");
+
+ b.Property("JobType")
+ .IsRequired()
+ .HasMaxLength(100)
+ .HasColumnType("nvarchar(100)");
+
+ b.Property("JobTypeId")
+ .HasColumnType("bigint");
+
+ b.Property("MandatoryHoursid")
+ .HasColumnType("bigint");
+
+ b.Property("PersonnelCode")
+ .HasColumnType("bigint");
+
+ b.Property("SetContractDate")
+ .HasColumnType("datetime2");
+
+ b.Property("Signature")
+ .HasMaxLength(1)
+ .HasColumnType("nvarchar(1)");
+
+ b.Property("WorkingHoursWeekly")
+ .IsRequired()
+ .HasMaxLength(10)
+ .HasColumnType("nvarchar(10)");
+
+ b.Property