diff --git a/0_Framework/Application/Tools.cs b/0_Framework/Application/Tools.cs
index d959c33e..98f58bb9 100644
--- a/0_Framework/Application/Tools.cs
+++ b/0_Framework/Application/Tools.cs
@@ -477,26 +477,42 @@ public static class Tools
string bb = string.Empty;
bool isNegative = false;
- for (int x = 0; x < myMoney.Length; x++)
+ try
{
- if (char.IsDigit(myMoney[x]))
+ if (!string.IsNullOrWhiteSpace(myMoney))
{
- bb += myMoney[x];
- }
- else if (myMoney[x] == '-' && bb.Length == 0)
- {
- // اگر علامت منفی قبل از اولین عدد آمد، در نظر بگیر
- isNegative = true;
- }
- }
+ for (int x = 0; x < myMoney.Length; x++)
+ {
+ if (char.IsDigit(myMoney[x]))
+ {
+ bb += myMoney[x];
+ }
+ else if (myMoney[x] == '-' && bb.Length == 0)
+ {
+ // اگر علامت منفی قبل از اولین عدد آمد، در نظر بگیر
+ isNegative = true;
+ }
+ }
- if (bb.Length > 0)
- {
- double res = double.Parse(bb);
- return isNegative ? -res : res;
+ if (bb.Length > 0)
+ {
+ double res = double.Parse(bb);
+ return isNegative ? -res : res;
+ }
+ else
+ {
+ return 0;
+ }
+ }
+ else
+ {
+ return 0;
+ }
+
}
- else
+ catch (Exception)
{
+
return 0;
}
}
diff --git a/Company.Domain/ClassifiedSalaryAgg/ClassifiedSalary.cs b/Company.Domain/ClassifiedSalaryAgg/ClassifiedSalary.cs
index 2de9ba33..1e67bc01 100644
--- a/Company.Domain/ClassifiedSalaryAgg/ClassifiedSalary.cs
+++ b/Company.Domain/ClassifiedSalaryAgg/ClassifiedSalary.cs
@@ -10,7 +10,7 @@ namespace Company.Domain.ClassifiedSalaryAgg
{
public class ClassifiedSalary : EntityBase
{
- //test
+ //test//test
public ClassifiedSalary(double group1, double group2, double group3, double group4, double group5, double group6, double group7, double group8, double group9, double group10, double group11, double group12, double group13, double group14, double group15, double group16, double group17, double group18, double group19, double group20, DateTime startDate, DateTime endDate, int year)
{
Group1 = group1;
diff --git a/Company.Domain/ContractAgg/Contract.cs b/Company.Domain/ContractAgg/Contract.cs
index 24e2e371..5ad80d1f 100644
--- a/Company.Domain/ContractAgg/Contract.cs
+++ b/Company.Domain/ContractAgg/Contract.cs
@@ -17,7 +17,7 @@ public class Contract : EntityBase
public Contract(long personnelCode, long employeeId, long employerId,
long workshopIds, long yearlySalaryId, DateTime contarctStart, DateTime contractEnd, string dayliWage,
string archiveCode, DateTime getWorkDate, DateTime setContractDate, string jobType,
- string contractType, string workshopAddress1, string workshopAddress2, string consumableItems, long jobTypeId, string housingAllowance, string agreementSalary, string workingHoursWeekly, string familyAllowance, string contractPeriod)
+ string contractType, string workshopAddress1, string workshopAddress2, string consumableItems, long jobTypeId, string housingAllowance, string agreementSalary, string workingHoursWeekly, string familyAllowance, string contractPeriod, double dailySalaryAffected, double baseYearAffected, double dailySalaryUnAffected, double baseYearUnAffected, bool hasManualDailyWage, string dailyWageType)
{
PersonnelCode = personnelCode;
EmployeeId = employeeId;
@@ -45,6 +45,19 @@ public class Contract : EntityBase
WorkingHoursWeekly = workingHoursWeekly;
FamilyAllowance = familyAllowance;
ContractPeriod = contractPeriod;
+
+ //پراپرتی های جدید برای دستمزد دلخواه
+ #region NewManualDailyWage
+ DailySalaryAffected = dailySalaryAffected;
+ BaseYearAffected = baseYearAffected;
+ DailySalaryUnAffected = dailySalaryUnAffected;
+ BaseYearUnAffected = baseYearUnAffected;
+ HasManualDailyWage = hasManualDailyWage;
+ DailyWageType = dailyWageType;
+
+ #endregion
+
+
Signature = "0";
@@ -65,7 +78,42 @@ public class Contract : EntityBase
public DateTime SetContractDate { get; private set; }
public string JobType { get; private set; }
public string ContractType { get; private set; }
+ ///
+ /// مزد تجمیعی یعد از تاثیر ساعت کار
+ ///
public string DayliWage { get; private set; }
+
+ ///
+ /// دستمزد روزانه خام بعد از تاثیر ساعت کار
+ ///
+ public double DailySalaryAffected { get; set; }
+
+ ///
+ /// پایه سنوات بعد از تاثیر ساعت کار
+ ///
+ public double BaseYearAffected { get; set; }
+
+
+ ///
+ /// دستمزد روزانه قبل از تاثیر ساعت کار
+ ///
+ public double DailySalaryUnAffected { get; set; }
+
+ ///
+ /// پایه سنوات قبل از تاثیر ساعت کار
+ ///
+ public double BaseYearUnAffected { get; set; }
+
+ ///
+ /// آیا دستمزد روزانه دستی وارد شده است؟
+ ///
+ public bool HasManualDailyWage { get; set; }
+
+ ///
+ /// نوع دستمزد انتخاب شده
+ ///
+ public string DailyWageType { get; set; }
+
public string IsActiveString { get; private set; }
public string ArchiveCode { get; private set; }
public string WorkshopAddress1 { get; private set; }
@@ -89,6 +137,7 @@ public class Contract : EntityBase
public Contract()
{
+
WorkingHoursList = new List();
}
public void Edit(long pesrsonnelCode, long employeeId, long employerId, long workshopId, long yearlySalaryId,
diff --git a/Company.Domain/ContractAgg/IContractRepository.cs b/Company.Domain/ContractAgg/IContractRepository.cs
index 808c7e3b..3d6ea269 100644
--- a/Company.Domain/ContractAgg/IContractRepository.cs
+++ b/Company.Domain/ContractAgg/IContractRepository.cs
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
+using System.Threading.Tasks;
using _0_Framework.Application;
using _0_Framework.Domain;
using CompanyManagment.App.Contracts.Contract;
@@ -9,6 +10,24 @@ namespace Company.Domain.ContractAgg;
public interface IContractRepository : IRepository
{
+ ///
+ /// دریافت مزد ارتقاء یافته
+ ///
+ ///
+ ///
+ ///
+ ///
+ Task GetManualDailWage(long workshopId, long employeeId, long yearlySalaryId, DateTime contractStart);
+
+ ///
+ /// دریافت لیست مزد ارتقاء یافته
+ ///
+ ///
+ ///
+ ///
+ ///
+ Task GetManualDailWageList(long workshopId, long employeeId,
+ DateTime contractStart);
EditContract GetDetails(long id);
EditContract GetContractByStartEnd(DateTime start, DateTime end, long workshopId, long employeeId);
diff --git a/Company.Domain/RollCallAgg/IRollCallMandatoryRepository.cs b/Company.Domain/RollCallAgg/IRollCallMandatoryRepository.cs
index 9c77aa59..9d501157 100644
--- a/Company.Domain/RollCallAgg/IRollCallMandatoryRepository.cs
+++ b/Company.Domain/RollCallAgg/IRollCallMandatoryRepository.cs
@@ -15,7 +15,7 @@ namespace Company.Domain.RollCallAgg;
public interface IRollCallMandatoryRepository : IRepository
{
- ComputingViewModel MandatoryCompute(long employeeId, long workshopId, DateTime contractStart, DateTime contractEnd, CreateWorkingHoursTemp command, bool holidayWorking, bool isStaticCheckout, bool rotatingShiftCompute, bool totalLeaveCompute);
+ ComputingViewModel MandatoryCompute(long employeeId, long workshopId, DateTime contractStart, DateTime contractEnd, CreateWorkingHoursTemp command, bool holidayWorking, bool isStaticCheckout, bool rotatingShiftCompute, double dailyWageUnAffected, bool totalLeaveCompute);
///
/// محاسبه ساعات کارکرد پرسنل در صورت داشتن حضور غیاب
diff --git a/Company.Domain/YearlySalaryAgg/IYearlySalaryRepository.cs b/Company.Domain/YearlySalaryAgg/IYearlySalaryRepository.cs
index 3c488984..cae19664 100644
--- a/Company.Domain/YearlySalaryAgg/IYearlySalaryRepository.cs
+++ b/Company.Domain/YearlySalaryAgg/IYearlySalaryRepository.cs
@@ -6,6 +6,7 @@ using CompanyManagment.App.Contracts.YearlySalary;
using System.Threading.Tasks;
using CompanyManagment.App.Contracts.Checkout;
using CompanyManagment.App.Contracts.Holiday;
+using CompanyManagment.App.Contracts.Contract;
namespace Company.Domain.YearlySalaryAgg;
@@ -17,11 +18,39 @@ public interface IYearlySalaryRepository : IRepository
void TestDayliFeeCompute();
List GetYears();
List GetYearlySalary();
+
+ ///
+ /// دریافت مزد روزانه فیش حقوقی
+ ///
+ ///
+ ///
+ ///
+ ///
+ Task GetCheckoutDailyWage(EditContract contract, DateTime checkoutStart, DateTime checkoutEnd);
+
+ ///
+ /// دریافت مزد روزانه بر اساس تاریخ شروع و پایان
+ ///
+ ///
+ ///
+ ///
+ Task<(double dailyWage, long yearlySalaryId)> GetDailyWageByStartEnd(DateTime start, DateTime end);
+
MontlywageBunosYearsViewModel GetMontlyBunosYears(TimeSpan weeklyTime, DateTime contractStart,DateTime contractEnd, double daylyWage, string weeklyWorkingTime, int officialholiday, int friday, string totalHoursH, string totalHorsM, string basic, int fridayStartToEnd, double dayliFeeComplete, bool hasRollCall, bool holidaysWorking,string shiftWork);
double GetLeavePay(DateTime contractStart, DateTime contractEnd, double daylyWage, double consumableItem, double housingAllowance, double familyAllowance , string weeklyWorkingTime, int officialholiday, int friday, string totalHoursH, string totalHorsM);
double GetOverTimeWorking(double dayliWage, string overTimeWorkH, string overTimeWorkM);
double GetOverNightWorking(double dayliWage, string overNightWorkH, string overNightWorkM, string weeklyWorkingTime, int officialholiday, int friday, DateTime contractStart, DateTime contractEnd, string totalHoursH, string totalHorsM);
-
+
+ ///
+ /// متد ارتقاء مزد دلخواه
+ ///
+ ///
+ ///
+ ///
+ ///
+ Task UpgradeManualDailyWage(DateTime newContractStart, DateTime lastContractStart,
+ double lastContractManualDailyWage);
+
///
/// متد محاسبه پایه سنوات و لیست پایه سنوات های پرسنل
///
diff --git a/CompanyManagment.App.Contracts/Checkout/CreateCheckout.cs b/CompanyManagment.App.Contracts/Checkout/CreateCheckout.cs
index b966a3c6..57f9691c 100644
--- a/CompanyManagment.App.Contracts/Checkout/CreateCheckout.cs
+++ b/CompanyManagment.App.Contracts/Checkout/CreateCheckout.cs
@@ -162,4 +162,35 @@ public class CreateCheckout
public bool HasLeft { get; set; }
+
+ ///
+ /// دستمزد روزانه خام بعد از تاثیر ساعت کار
+ ///
+ public double DailySalaryAffected { get; set; }
+
+ ///
+ /// پایه سنوات بعد از تاثیر ساعت کار
+ ///
+ public double BaseYearAffected { get; set; }
+
+
+ ///
+ /// دستمزد روزانه قبل از تاثیر ساعت کار
+ ///
+ public double DailySalaryUnAffected { get; set; }
+
+ ///
+ /// دستمزد روزانه دریافت شده از سمت فرانت
+ ///
+ public string DailySalaryUnAffectedStr { get; set; }
+
+ ///
+ /// مزد سالانه نرمال دریافت از سمت فرانت
+ ///
+ public string NormalDailyWage { get; set; }
+
+ ///
+ /// پایه سنوات قبل از تاثیر ساعت کار
+ ///
+ public double BaseYearUnAffected { get; set; }
}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/Contract/ComputingViewModel.cs b/CompanyManagment.App.Contracts/Contract/ComputingViewModel.cs
index 3a2c0ddd..ad0068e1 100644
--- a/CompanyManagment.App.Contracts/Contract/ComputingViewModel.cs
+++ b/CompanyManagment.App.Contracts/Contract/ComputingViewModel.cs
@@ -61,9 +61,23 @@ public class ComputingViewModel
///
public TimeSpan EmployeeMandatoryHours { get; set; }
+
///
- /// مجموع مرخصی های پرسنل در این فیش حقوقی
+ /// پایه سنوات قبل از تاثیر ساعت کار
///
- //public TimeSpan TotalLeaveOnThisCheckout { get; set; }
+ public double BaseYearUnAffected { get; set; }
+
+
+ ///
+ /// پایه سنوات بعد از تاثیر ساعت کار
+ ///
+ public double BaseYearAffected { get; set; }
+
+
+ ///
+ /// دستمزد روزانه خام بعد از تاثیر ساعت کار
+ ///
+ public double DailySalaryAffected { get; set; }
+
//public List holidays;
}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/Contract/ContractDailyWageAndBaseYearReport.cs b/CompanyManagment.App.Contracts/Contract/ContractDailyWageAndBaseYearReport.cs
new file mode 100644
index 00000000..69cd1dfc
--- /dev/null
+++ b/CompanyManagment.App.Contracts/Contract/ContractDailyWageAndBaseYearReport.cs
@@ -0,0 +1,70 @@
+using CompanyManagment.App.Contracts.YearlySalary;
+using System.Collections.Generic;
+
+namespace CompanyManagment.App.Contracts.Contract;
+///
+/// نمایش نحوه محاسبه پایه سنوات و دستمزد روزانه
+///
+public class ContractDailyWageAndBaseYearReport
+{
+ ///
+ /// لیست داده های محاسبه پایه سنوات
+ ///
+ public BaseYearDataViewModel BaseYearDataViewModel { get; set; }
+
+ ///
+ /// پایه سنوات متاثر از ساعت کار
+ ///
+ public string BaseYearAffected { get; set; }
+
+ ///
+ /// دستمزد روزانه متاثر از ساعت کار
+ ///
+ public string DailySalaryAffected { get; set; }
+
+ ///
+ /// دستمزد روزانه بدون تاثیر ساعت کار
+ ///
+ public string DailySalaryUnAffected { get; set; }
+
+ ///
+ /// دستمزد روزانه تجمیعی
+ ///
+ public string DailyWage { get; set; }
+
+ ///
+ /// تاریخ قراداد
+ ///
+ public string ContractDate { get; set; }
+
+
+ ///
+ /// نوع دستمزد انتخاب شده
+ ///
+ public string DailyWageType { get; set; }
+
+ ///
+ /// لیست ارتقاء
+ ///
+ public List UpgradeManualDailyWageLists { get; set; }
+
+ ///
+ /// نام پرسنل
+ ///
+ public string EmployeeName { get; set; }
+
+ ///
+ /// نام کارگاه
+ ///
+ public string WorkshopName { get; set; }
+
+ ///
+ /// آیا با متد جدید محاسبه شده
+ ///
+ public bool OldComputeMethod { get; set; }
+
+ ///
+ /// آیا محاسبات با مقادیر ذخیره شده مغایرت دارد
+ ///
+ public bool Contradiction { get; set; }
+}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/Contract/CreateContract.cs b/CompanyManagment.App.Contracts/Contract/CreateContract.cs
index 3a2f5bff..728ddd55 100644
--- a/CompanyManagment.App.Contracts/Contract/CreateContract.cs
+++ b/CompanyManagment.App.Contracts/Contract/CreateContract.cs
@@ -140,7 +140,36 @@ public class CreateContract
public string ConvertMonth { get; set; }
public string FormStep { get; set; }
-
+ ///
+ /// دستمزد روزانه خام بعد از تاثیر ساعت کار
+ ///
+ public double DailySalaryAffected { get; set; }
+
+ ///
+ /// پایه سنوات بعد از تاثیر ساعت کار
+ ///
+ public double BaseYearAffected { get; set; }
+
+
+ ///
+ /// دستمزد روزانه قبل از تاثیر ساعت کار
+ ///
+ public double DailySalaryUnAffected { get; set; }
+
+ ///
+ /// پایه سنوات قبل از تاثیر ساعت کار
+ ///
+ public double BaseYearUnAffected { get; set; }
+
+ ///
+ /// آیا دستمزد روزانه دستی وارد شده است؟
+ ///
+ public bool HasManualDailyWage { get; set; }
+
+ ///
+ /// نوع دستمزد انتخاب شده
+ ///
+ public string DailyWageType { get; set; }
public List Contracts { get; set; }
public List Workshops { get; set; }
public List Employers { get; set; }
diff --git a/CompanyManagment.App.Contracts/Contract/IContractApplication.cs b/CompanyManagment.App.Contracts/Contract/IContractApplication.cs
index d7dfbc79..5048b564 100644
--- a/CompanyManagment.App.Contracts/Contract/IContractApplication.cs
+++ b/CompanyManagment.App.Contracts/Contract/IContractApplication.cs
@@ -7,6 +7,14 @@ namespace CompanyManagment.App.Contracts.Contract;
public interface IContractApplication
{
+ ///
+ /// دریافت مزد ارتقاء یافته
+ ///
+ ///
+ ///
+ ///
+ ///
+ Task GetManualDailWage(long workshopId, long employeeId, long yearlySalaryId, DateTime contractStart);
OperationResult Create(CreateContract command);
OperationResult CreateNew(createContractModel command);
OperationResult Edit(EditContract command);
diff --git a/CompanyManagment.App.Contracts/Contract/UpgradeManualDailyWageModel.cs b/CompanyManagment.App.Contracts/Contract/UpgradeManualDailyWageModel.cs
new file mode 100644
index 00000000..3a3958da
--- /dev/null
+++ b/CompanyManagment.App.Contracts/Contract/UpgradeManualDailyWageModel.cs
@@ -0,0 +1,36 @@
+using System.Collections.Generic;
+
+namespace CompanyManagment.App.Contracts.Contract;
+
+///
+/// ویو مدل رتقاء دستمزد روزانه و لیست ارتقاء
+///
+public class UpgradeManualDailyWageModel
+{
+ ///
+ /// دستمزد روزانه
+ ///
+ public double DailyWage{ get; set; }
+
+
+ ///
+ /// لیست ارتقاء
+ ///
+ public List UpgradeManualDailyWageLists { get; set; }
+}
+
+///
+/// لیست ارتقاء
+///
+public class UpgradeManualDailyWageList
+{
+ ///
+ /// تاریخ شروع و پایان بازه ارتقاء
+ ///
+ public string StartEndDate { get; set; }
+
+ ///
+ /// دستمزد روزانه
+ ///
+ public string DailyWage { get; set; }
+}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/Leave/LeavErrorViewModel.cs b/CompanyManagment.App.Contracts/Leave/LeavErrorViewModel.cs
index 24953c80..d4fcfe49 100644
--- a/CompanyManagment.App.Contracts/Leave/LeavErrorViewModel.cs
+++ b/CompanyManagment.App.Contracts/Leave/LeavErrorViewModel.cs
@@ -14,5 +14,8 @@ namespace CompanyManagment.App.Contracts.Leave
public string LeftWorlErrMessage { get; set; }
public bool HasNotContract { get; set; }
public string ContractErrMessage { get; set; }
+
+ public bool HasHolidayError { get; set; }
+ public string HolidayErrorMessage { get; set; }
}
}
diff --git a/CompanyManagment.App.Contracts/RollCall/IRollCallMandatoryApplication.cs b/CompanyManagment.App.Contracts/RollCall/IRollCallMandatoryApplication.cs
index 27bdb4c0..f765d919 100644
--- a/CompanyManagment.App.Contracts/RollCall/IRollCallMandatoryApplication.cs
+++ b/CompanyManagment.App.Contracts/RollCall/IRollCallMandatoryApplication.cs
@@ -8,7 +8,8 @@ namespace CompanyManagment.App.Contracts.RollCall;
public interface IRollCallMandatoryApplication
{
bool HasRollCallRecord(long employeeId, long workshopId, DateTime contractStart);
- ComputingViewModel MandatoryCompute(long employeeId, long workshopId, DateTime contractStart, DateTime contractEnd, CreateWorkingHoursTemp command, bool holidayWorking, bool isStaticCheckout, bool rotatingShiftCompute, bool totalLeaveCompute);
+ ComputingViewModel MandatoryCompute(long employeeId, long workshopId, DateTime contractStart, DateTime contractEnd, CreateWorkingHoursTemp command, bool holidayWorking, bool isStaticCheckout, bool rotatingShiftCompute, double dailyWageUnAffected, bool totalLeaveCompute);
+
///
/// گزارش نوبت کاری حضور غیاب
diff --git a/CompanyManagment.App.Contracts/WorkingHoursTemp/CreateWorkingHoursTemp.cs b/CompanyManagment.App.Contracts/WorkingHoursTemp/CreateWorkingHoursTemp.cs
index a3ec46ad..52c5e421 100644
--- a/CompanyManagment.App.Contracts/WorkingHoursTemp/CreateWorkingHoursTemp.cs
+++ b/CompanyManagment.App.Contracts/WorkingHoursTemp/CreateWorkingHoursTemp.cs
@@ -311,4 +311,9 @@ public class CreateWorkingHoursTemp
public string WeeklyWorkingTime { get; set; }
public long ContractId { get; set; }
public long WorknigHoursId { get; set; }
+
+ ///
+ /// دستمزد روزانه قبل از تاثیر ساعت کار
+ ///
+ public double DailySalaryUnAffected { get; set; }
}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/Workshop/DTOs/AutoExtensionEmployeeListDto.cs b/CompanyManagment.App.Contracts/Workshop/DTOs/AutoExtensionEmployeeListDto.cs
index f92c4330..a431a8be 100644
--- a/CompanyManagment.App.Contracts/Workshop/DTOs/AutoExtensionEmployeeListDto.cs
+++ b/CompanyManagment.App.Contracts/Workshop/DTOs/AutoExtensionEmployeeListDto.cs
@@ -1,4 +1,6 @@
-namespace CompanyManagment.App.Contracts.Workshop.DTOs;
+using System.ComponentModel.DataAnnotations.Schema;
+
+namespace CompanyManagment.App.Contracts.Workshop.DTOs;
public class AutoExtensionEmployeeListDto
{
@@ -32,6 +34,17 @@ public class AutoExtensionEmployeeListDto
public bool EmployeeHasCreateContract { get; set; }
+ ///
+ /// دستمزد روزانه دریافت شده از سمت فرانت
+ ///
+ public string DailySalaryUnAffectedStr => "0";
+
+ ///
+ /// مزد سالانه نرمال دریافت از سمت فرانت
+ ///
+ public string NormalDailyWage => "0";
+
+
public string ContarctStart { get; set; }
public string ContractEnd { get; set; }
diff --git a/CompanyManagment.App.Contracts/Workshop/createContractModel.cs b/CompanyManagment.App.Contracts/Workshop/createContractModel.cs
index 347d21f6..678af61e 100644
--- a/CompanyManagment.App.Contracts/Workshop/createContractModel.cs
+++ b/CompanyManagment.App.Contracts/Workshop/createContractModel.cs
@@ -38,6 +38,46 @@ public class createContractModel
public long YearlySalaryId { get; set; }
public long EmployerId { get; set; }
-
+
+ ///
+ /// دستمزد روزانه خام بعد از تاثیر ساعت کار
+ ///
+ public double DailySalaryAffected { get; set; }
+
+ ///
+ /// پایه سنوات بعد از تاثیر ساعت کار
+ ///
+ public double BaseYearAffected { get; set; }
+
+
+ ///
+ /// دستمزد روزانه قبل از تاثیر ساعت کار
+ ///
+ public double DailySalaryUnAffected { get; set; }
+
+ ///
+ /// دستمزد روزانه دریافت شده از سمت فرانت
+ ///
+ public string DailySalaryUnAffectedStr { get; set; }
+
+ ///
+ /// مزد سالانه نرمال دریافت از سمت فرانت
+ ///
+ public string NormalDailyWage { get; set; }
+
+ ///
+ /// پایه سنوات قبل از تاثیر ساعت کار
+ ///
+ public double BaseYearUnAffected { get; set; }
+
+ ///
+ /// آیا دستمزد روزانه دستی وارد شده است؟
+ ///
+ public bool HasManualDailyWage { get; set; }
+
+ ///
+ /// نوع دستمزد انتخاب شده
+ ///
+ public string DailyWageType { get; set; }
}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/YearlySalary/BaseYearDataViewModel.cs b/CompanyManagment.App.Contracts/YearlySalary/BaseYearDataViewModel.cs
index 76e749ee..058e3dc2 100644
--- a/CompanyManagment.App.Contracts/YearlySalary/BaseYearDataViewModel.cs
+++ b/CompanyManagment.App.Contracts/YearlySalary/BaseYearDataViewModel.cs
@@ -24,6 +24,11 @@ public class BaseYearDataViewModel
///
public double BaseYearResult { get; set; }
+ ///
+ /// اولین روز شروع بکار
+ ///
+ public string FirstWorkDayInLeftWork { get; set; }
+
///
/// لیست تمام پایه سنوات های محاسبه شده
///
@@ -64,4 +69,29 @@ public class BaseYearDataList
/// سالی که در آن پایه سنوات تعلق گرفته
///
public string Year { get; set; }
+
+ ///
+ ///روزی که پایه سنوات تعلق گرفته
+ ///یا شروع بکار. ترک کار
+ /// شمسی
+ ///
+ public string BaseYearPayDay { get; set; }
+
+ ///
+ /// روزی که پایه سنوات تعلق گرفته
+ ///یا شروع بکار. ترک کار
+ /// میلادی
+ ///
+ public DateTime BaseYearPayDayGr { get; set; }
+
+
+
+ ///
+ /// آیا تاریخ شروع بکار دارد
+ ///
+ public bool HasStartWork { get; set; }
+ ///
+ /// آیا تاریخ پایان کار دارد
+ ///
+ public bool HasLeftWork { get; set; }
}
\ No newline at end of file
diff --git a/CompanyManagment.App.Contracts/YearlySalary/IYearlySalaryApplication.cs b/CompanyManagment.App.Contracts/YearlySalary/IYearlySalaryApplication.cs
index 42e5b33e..1ed7d4c5 100644
--- a/CompanyManagment.App.Contracts/YearlySalary/IYearlySalaryApplication.cs
+++ b/CompanyManagment.App.Contracts/YearlySalary/IYearlySalaryApplication.cs
@@ -2,7 +2,9 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using _0_Framework.Application;
+using CompanyManagment.App.Contracts.Contract;
using CompanyManagment.App.Contracts.Holiday;
+using CompanyManagment.App.Contracts.LeftWork;
namespace CompanyManagment.App.Contracts.YearlySalary;
@@ -14,6 +16,35 @@ public interface IYearlySalaryApplication
OperationResult Err();
EditYearlySalary GetDetails(long id);
List GetYearlySalary();
+
+ ///
+ /// متد ارتقاء مزد دلخواه
+ ///
+ ///
+ ///
+ ///
+ ///
+ Task UpgradeManualDailyWage(DateTime newContractStart, DateTime lastContractStart,
+ double lastContractManualDailyWage);
+
+ ///
+ /// متد محاسبه پایه سنوات و لیست پایه سنوات های پرسنل
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ Task BaseYearComputeByContractId(long contractId);
+ ///
+ /// دریافت مزد روزانه بر اساس تاریخ شروع و پایان
+ ///
+ ///
+ ///
+ ///
+ Task<(double dailyWage, long yearlySalaryId)> GetDailyWageByStartEnd(DateTime start, DateTime end);
+
List Search(YearlySalarySearchModel searchModel);
EditYearlySalary GetDetailsBySearchModel(YearlySalarySearchModel searchModel);
diff --git a/CompanyManagment.Application/CheckoutApplication.cs b/CompanyManagment.Application/CheckoutApplication.cs
index afc9bea7..9ef0b0f8 100644
--- a/CompanyManagment.Application/CheckoutApplication.cs
+++ b/CompanyManagment.Application/CheckoutApplication.cs
@@ -152,17 +152,38 @@ public class CheckoutApplication : ICheckoutApplication
var housingAllowance = command.HousingAllowance.MoneyToDouble();
//حق تاهل
var marriedAllowance = command.MarriedAllowance.MoneyToDouble();
- var MontlyYearsBunos =
- _yearlySalaryRepository.GetMontlyBunosYears(command.WeeklyTime, command.ContractStartGr, command.ContractEndGr, dayliWage, command.WorkingWeeklyTime, command.officialholiday, command.friday, command.TotalHolidaysAndNotH, command.TotalHolidaysAndNotM, command.Basic, command.FridayStarttoEnd, command.DailFeeComplete, command.HasRollCall, command.HolidayWorking, command.ShiftWork);
- //دستمزد ماهانه
- var monthlyWage = MontlyYearsBunos.MontlyWage;
- //سنوات
- var years = command.YearsPay;
+ //var MontlyYearsBunos =
+ //_yearlySalaryRepository.GetMontlyBunosYears(command.WeeklyTime, command.ContractStartGr, command.ContractEndGr, dayliWage, command.WorkingWeeklyTime, command.officialholiday, command.friday, command.TotalHolidaysAndNotH, command.TotalHolidaysAndNotM, command.Basic, command.FridayStarttoEnd, command.DailFeeComplete, command.HasRollCall, command.HolidayWorking, command.ShiftWork);
+ //دستمزد ماهانه
+
+ #region Salary
+
+ var totalDays = (command.ContractEndGr - command.ContractStartGr).TotalDays + 1;
+
+ var mandatoryDays = totalDays - command.FridayStarttoEnd - command.officialholiday;
+
+ if (!command.HasRollCall && command.ShiftWork != "4")
+ mandatoryDays = totalDays - command.FridayStarttoEnd;
+ var monthlyWage = command.DailySalaryAffected * totalDays;
+
+ //پایه سنوات
+ var bacicYears = command.BaseYearAffected * totalDays;
+ #endregion
+
+ //سنوات
+ var years = command.YearsPay;
//عیدی و پاداش
var bunos = command.BonusesPay;
- //پایه سنوات
- var bacicYears = MontlyYearsBunos.BasicYears;
- var sumOfWorkingDays = MontlyYearsBunos.SumOfWorkingDay;
+
+ //فاطمه احمدژاد === موقت عیدی و پاداش و سنوات حساب نشه
+ if (command.EmployeeId == 45104 && command.WorkshopId == 315)
+ {
+ years = 0;
+
+ bunos = 0;
+ }
+
+ var sumOfWorkingDays = $"{totalDays}";
if (command.friday > 0)
{
var fridayPercent = dayliWage * 40 / 100;
diff --git a/CompanyManagment.Application/ContractApplication.cs b/CompanyManagment.Application/ContractApplication.cs
index 4d670a54..085616ea 100644
--- a/CompanyManagment.Application/ContractApplication.cs
+++ b/CompanyManagment.Application/ContractApplication.cs
@@ -78,6 +78,11 @@ public class ContractApplication : IContractApplication
}
+ public async Task GetManualDailWage(long workshopId, long employeeId, long yearlySalaryId, DateTime contractStart)
+ {
+ return await _contractRepository.GetManualDailWage(workshopId, employeeId, yearlySalaryId, contractStart);
+ }
+
public OperationResult Create(CreateContract command)
{
var yearlysalaryList = _yearlySalaryRepository.GetYearlySalary();
@@ -142,7 +147,9 @@ public class ContractApplication : IContractApplication
yearlySalarId,
start, end, command.DayliWage, command.ArchiveCode, getWorkdate, setContractDate,
command.JobType, command.ContractType, command.WorkshopAddress1, command.WorkshopAddress2,
- command.ConsumableItems, command.JobTypeId, command.HousingAllowance, command.AgreementSalary, command.WorkingHoursWeekly, command.FamilyAllowance, command.ContractPeriod);
+ command.ConsumableItems, command.JobTypeId, command.HousingAllowance, command.AgreementSalary,
+ command.WorkingHoursWeekly, command.FamilyAllowance, command.ContractPeriod,command.DailySalaryAffected,
+ command.BaseYearAffected, command.DailySalaryUnAffected,command.BaseYearUnAffected, command.HasManualDailyWage, command.DailyWageType);
_contractRepository.Create(makeContract);
_contractRepository.SaveChanges();
@@ -356,7 +363,9 @@ public class ContractApplication : IContractApplication
command.YearlySalaryId,
start, end, command.DayliWage, command.ArchiveCode, getWorkdate, setContractDate,
command.JobName, command.ContractType, command.WorkshopAddress1, command.WorkshopAddress2,
- command.ConsumableItems, command.JobId, command.HousingAllowance, "0", command.WorkingHoursWeekly, command.FamilyAllowance, command.ContractPeriod);
+ command.ConsumableItems, command.JobId, command.HousingAllowance, "0", command.WorkingHoursWeekly, command.FamilyAllowance, command.ContractPeriod,
+ command.DailySalaryAffected,
+ command.BaseYearAffected, command.DailySalaryUnAffected, command.BaseYearUnAffected, command.HasManualDailyWage, command.DailyWageType);
_contractRepository.Create(makeContract);
_contractRepository.SaveChanges();
diff --git a/CompanyManagment.Application/LeaveApplication.cs b/CompanyManagment.Application/LeaveApplication.cs
index b504cab5..a532608e 100644
--- a/CompanyManagment.Application/LeaveApplication.cs
+++ b/CompanyManagment.Application/LeaveApplication.cs
@@ -96,6 +96,8 @@ public class LeaveApplication : ILeaveApplication
return op.Failed(checkErr.ContractErrMessage);
if (checkErr.HasLeftWork)
return op.Failed(checkErr.LeftWorlErrMessage);
+ if (checkErr.HasHolidayError)
+ return op.Failed(checkErr.HolidayErrorMessage);
if (start > end)
return op.Failed("تارخ شروع از پایان بزرگتر است");
@@ -304,6 +306,8 @@ public class LeaveApplication : ILeaveApplication
return op.Failed(checkErr.CheckoutErrMessage);
if (checkErr.HasLeftWork)
return op.Failed(checkErr.LeftWorlErrMessage);
+ if (checkErr.HasHolidayError)
+ return op.Failed(checkErr.HolidayErrorMessage);
if (start > end)
return op.Failed("تارخ شروع از پایان بزرگتر است");
diff --git a/CompanyManagment.Application/RollCallMandatoryApplication.cs b/CompanyManagment.Application/RollCallMandatoryApplication.cs
index 25e46b9f..dd9bbd39 100644
--- a/CompanyManagment.Application/RollCallMandatoryApplication.cs
+++ b/CompanyManagment.Application/RollCallMandatoryApplication.cs
@@ -21,9 +21,11 @@ public class RollCallMandatoryApplication : IRollCallMandatoryApplication
return _rollCallMandatoryRepository.Exists(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId && x.StartDate.Value.Date >= contractStart.Date);
}
- public ComputingViewModel MandatoryCompute(long employeeId, long workshopId, DateTime contractStart, DateTime contractEnd, CreateWorkingHoursTemp command, bool holidayWorking, bool isStaticCheckout, bool rotatingShiftCompute,bool totalLeaveCompute)
+ public ComputingViewModel MandatoryCompute(long employeeId, long workshopId, DateTime contractStart, DateTime contractEnd, CreateWorkingHoursTemp command, bool holidayWorking, bool isStaticCheckout, bool rotatingShiftCompute, double dailyWageUnAffected, bool totalLeaveCompute)
+
{
- return _rollCallMandatoryRepository.MandatoryCompute(employeeId,workshopId, contractStart, contractEnd, command, holidayWorking, isStaticCheckout, rotatingShiftCompute, totalLeaveCompute);
+ return _rollCallMandatoryRepository.MandatoryCompute(employeeId,workshopId, contractStart, contractEnd, command, holidayWorking, isStaticCheckout, rotatingShiftCompute, dailyWageUnAffected, totalLeaveCompute);
+
}
public async Task RotatingShiftReport(long workshopId, long employeeId, DateTime contractStart, DateTime contractEnd,
diff --git a/CompanyManagment.Application/YearlySalaryApplication.cs b/CompanyManagment.Application/YearlySalaryApplication.cs
index f5535933..82a5198a 100644
--- a/CompanyManagment.Application/YearlySalaryApplication.cs
+++ b/CompanyManagment.Application/YearlySalaryApplication.cs
@@ -1,12 +1,17 @@
using System;
using System.Collections.Generic;
using System.Globalization;
+using System.Linq;
using System.Threading.Tasks;
using _0_Framework.Application;
using Company.Domain.YearlySalaryAgg;
+using CompanyManagment.App.Contracts.Contract;
using CompanyManagment.App.Contracts.Holiday;
+using CompanyManagment.App.Contracts.LeftWork;
using CompanyManagment.App.Contracts.YearlySalary;
using CompanyManagment.EFCore;
+using Microsoft.EntityFrameworkCore;
+using static Microsoft.EntityFrameworkCore.DbLoggerCategory.Database;
namespace CompanyManagment.Application;
@@ -128,6 +133,41 @@ public class YearlySalaryApplication : IYearlySalaryApplication
return _yearlySalaryRepository.GetYearlySalary();
}
+ public Task UpgradeManualDailyWage(DateTime newContractStart, DateTime lastContractStart, double lastContractManualDailyWage)
+ {
+ return _yearlySalaryRepository.UpgradeManualDailyWage(newContractStart, lastContractStart,
+ lastContractManualDailyWage);
+ }
+
+ public async Task BaseYearComputeByContractId(long contractId)
+ {
+ var contract = await _context.Contracts.FirstOrDefaultAsync(x => x.id == contractId);
+
+ var leftWorkList = await _context.LeftWorkList.Where(x=>x.EmployeeId ==contract.EmployeeId && x.WorkshopId == contract.WorkshopIds).Select(x => new LeftWorkViewModel()
+ {
+ Id = x.id,
+ LeftWorkDate = x.LeftWorkDate.ToFarsi(),
+ StartWorkDate = x.StartWorkDate.ToFarsi(),
+ LeftWorkDateGr = x.LeftWorkDate,
+ StartWorkDateGr = x.StartWorkDate,
+ WorkshopId = x.WorkshopId,
+ EmployeeId = x.EmployeeId,
+ HasLeft = x.HasLeft,
+ }).ToListAsync();
+
+ var baseYearResult = await _yearlySalaryRepository.BaseYearCompute(contract.ContarctStart, contract.ContractEnd,
+ contract.EmployeeId, contract.WorkshopIds, leftWorkList);
+
+ return baseYearResult;
+
+ }
+
+
+ public async Task<(double dailyWage, long yearlySalaryId)> GetDailyWageByStartEnd(DateTime start, DateTime end)
+ {
+ return await _yearlySalaryRepository.GetDailyWageByStartEnd(start, end);
+ }
+
public List Search(YearlySalarySearchModel searchModel)
{
return _yearlySalaryRepository.Search(searchModel);
diff --git a/CompanyManagment.EFCore/Mapping/ContractMapping.cs b/CompanyManagment.EFCore/Mapping/ContractMapping.cs
index fe6c4379..f8185968 100644
--- a/CompanyManagment.EFCore/Mapping/ContractMapping.cs
+++ b/CompanyManagment.EFCore/Mapping/ContractMapping.cs
@@ -26,6 +26,8 @@ public class ContractMapping : IEntityTypeConfiguration
builder.Property(x => x.ContractPeriod).HasMaxLength(2).IsRequired(false);
builder.Property(x => x.AgreementSalary).HasMaxLength(50).IsRequired(false);
builder.Property(x => x.Signature).HasMaxLength(1).IsRequired(false);
+ builder.Property(x=>x.DailyWageType).HasMaxLength(30).IsRequired(false);
+
diff --git a/CompanyManagment.EFCore/Migrations/20250822223255_ManualDailyWageToContract.Designer.cs b/CompanyManagment.EFCore/Migrations/20250822223255_ManualDailyWageToContract.Designer.cs
new file mode 100644
index 00000000..9fde0f99
--- /dev/null
+++ b/CompanyManagment.EFCore/Migrations/20250822223255_ManualDailyWageToContract.Designer.cs
@@ -0,0 +1,10227 @@
+//
+using System;
+using System.Collections.Generic;
+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("20250822223255_ManualDailyWageToContract")]
+ partial class ManualDailyWageToContract
+ {
+ ///
+ 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.AdminMonthlyOverviewAgg.AdminMonthlyOverview", b =>
+ {
+ b.Property("id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id"));
+
+ b.Property("CreationDate")
+ .HasColumnType("datetime2");
+
+ b.Property("Month")
+ .HasColumnType("int");
+
+ b.Property("Status")
+ .IsRequired()
+ .HasMaxLength(155)
+ .HasColumnType("nvarchar(155)");
+
+ b.Property("WorkshopId")
+ .HasColumnType("bigint");
+
+ b.Property("Year")
+ .HasColumnType("int");
+
+ b.HasKey("id");
+
+ b.ToTable("AdminMonthlyOverviews");
+ });
+
+ 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("HasAmountConflict")
+ .HasColumnType("bit");
+
+ 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.ContactUsAgg.ContactUs", b =>
+ {
+ b.Property("id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id"));
+
+ b.Property("CreationDate")
+ .HasColumnType("datetime2");
+
+ b.Property("Email")
+ .HasMaxLength(200)
+ .HasColumnType("nvarchar(200)");
+
+ b.Property("FirstName")
+ .HasMaxLength(100)
+ .HasColumnType("nvarchar(100)");
+
+ b.Property("FullName")
+ .HasMaxLength(200)
+ .HasColumnType("nvarchar(200)");
+
+ b.Property("LastName")
+ .HasMaxLength(100)
+ .HasColumnType("nvarchar(100)");
+
+ b.Property("Message")
+ .HasMaxLength(500)
+ .HasColumnType("nvarchar(500)");
+
+ b.Property("PhoneNumber")
+ .HasMaxLength(20)
+ .HasColumnType("nvarchar(20)");
+
+ b.Property("Title")
+ .HasMaxLength(200)
+ .HasColumnType("nvarchar(200)");
+
+ b.HasKey("id");
+
+ b.ToTable("ContactUs");
+ });
+
+ 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("BaseYearAffected")
+ .HasColumnType("float");
+
+ b.Property("BaseYearUnAffected")
+ .HasColumnType("float");
+
+ 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("DailySalaryAffected")
+ .HasColumnType("float");
+
+ b.Property("DailySalaryUnAffected")
+ .HasColumnType("float");
+
+ 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("HasManualDailyWage")
+ .HasColumnType("bit");
+
+ 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("WorkshopAddress1")
+ .HasMaxLength(500)
+ .HasColumnType("nvarchar(500)");
+
+ b.Property("WorkshopAddress2")
+ .HasMaxLength(500)
+ .HasColumnType("nvarchar(500)");
+
+ b.Property("WorkshopIds")
+ .HasColumnType("bigint");
+
+ b.Property("YearlySalaryId")
+ .HasColumnType("bigint");
+
+ b.HasKey("id");
+
+ b.HasIndex("EmployeeId");
+
+ b.HasIndex("EmployerId");
+
+ b.HasIndex("JobTypeId");
+
+ b.HasIndex("MandatoryHoursid");
+
+ b.HasIndex("WorkshopIds");
+
+ b.HasIndex("YearlySalaryId");
+
+ b.ToTable("Contracts", (string)null);
+ });
+
+ modelBuilder.Entity("Company.Domain.ContractingPartyAccountAgg.ContractingPartyAccount", b =>
+ {
+ b.Property("PersonalContractingPartyId")
+ .HasColumnType("bigint");
+
+ b.Property("AccountId")
+ .HasColumnType("bigint");
+
+ b.HasKey("PersonalContractingPartyId", "AccountId");
+
+ b.ToTable("ContractingPartyAccount", (string)null);
+ });
+
+ modelBuilder.Entity("Company.Domain.ContractingPartyBankAccountsAgg.ContractingPartyBankAccount", b =>
+ {
+ b.Property("id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id"));
+
+ b.Property("AccountHolderName")
+ .HasMaxLength(200)
+ .HasColumnType("nvarchar(200)");
+
+ b.Property("AccountNumber")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("CardNumber")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("ContractingPartyId")
+ .HasColumnType("bigint");
+
+ b.Property("CreationDate")
+ .HasColumnType("datetime2");
+
+ b.Property("IBan")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("IsAuth")
+ .HasColumnType("bit");
+
+ b.HasKey("id");
+
+ b.HasIndex("ContractingPartyId");
+
+ b.ToTable("ContractingPartyBankAccounts", (string)null);
+ });
+
+ modelBuilder.Entity("Company.Domain.CrossJobAgg.CrossJob", b =>
+ {
+ b.Property("id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("id"));
+
+ b.Property("CreationDate")
+ .HasColumnType("datetime2");
+
+ b.Property("CrossJobGuildId")
+ .HasColumnType("bigint");
+
+ b.Property("EquivalentRialOver")
+ .HasColumnType("bigint");
+
+ b.Property("EquivalentRialUnder")
+ .HasColumnType("bigint");
+
+ b.Property("SalaryRatioOver")
+ .HasColumnType("float");
+
+ b.Property("SalaryRatioUnder")
+ .HasColumnType("float");
+
+ b.HasKey("id");
+
+ b.HasIndex("CrossJobGuildId");
+
+ b.ToTable("CrossJobs", (string)null);
+ });
+
+ modelBuilder.Entity("Company.Domain.CrossJobGuildAgg.CrossJobGuild", b =>
+ {
+ b.Property("id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bigint");
+
+ SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property