Compare commits

..

55 Commits

Author SHA1 Message Date
83b045c2b1 add employer controller 2025-06-17 14:17:26 +03:30
SamSys
9ca041ac18 add Authorization setting for next - subdomain 2025-06-11 15:32:40 +03:30
SamSys
031fb05f8c Menue Change for Next test 2025-06-08 17:09:09 +03:30
SamSys
4aed0ddd68 API ContractingParty Controller Merged 2025-06-07 17:25:27 +03:30
SamSys
9b455d4a2e Fix Conflict 2025-06-03 21:44:00 +03:30
SamSys
0c0e955800 new-Insurance-Opration Merged 2025-06-03 21:43:19 +03:30
SamSys
5f7f63689c build tailwind 2025-06-03 16:51:34 +03:30
SamSys
7db754af56 Merge branch 'Feature/Register/Init' into Upload/dad-mehr 2025-06-03 16:49:18 +03:30
SamSys
87afbbe44c change of register 2025-06-03 16:48:42 +03:30
5fa49a4988 change main pages 2025-06-01 18:23:51 +03:30
SamSys
5576ee5c24 api started 2025-05-30 23:04:53 +03:30
SamSys
42ea521e0b set Salary in create employee by Client merged 2025-05-27 21:38:14 +03:30
SamSys
c608e22062 AMO merged 2025-05-25 21:40:54 +03:30
MahanCh
bb80da6e3b add set salary tab in create employee 2025-05-25 19:24:29 +03:30
SamSys
4c734e0513 Camera icon Task merged 2025-05-21 21:39:17 +03:30
SamSys
cc3812ebee Static merged 2025-05-20 22:41:55 +03:30
MahanCh
99e807fa23 fix step4 bug 2025-05-20 17:45:43 +03:30
SamSys
17e390d840 ReCalculateValues Merged 2025-05-19 21:32:09 +03:30
SamSys
f4a16b8c69 Rgister Merge 2025-05-19 21:30:36 +03:30
MahanCh
2ce17dcac9 change some styles 2025-05-19 18:04:47 +03:30
MahanCh
233c1a3aa9 merge from master 2025-05-19 18:04:36 +03:30
SamSys
c2fa992369 Employer Confirm Insurance 2025-05-18 21:18:23 +03:30
SamSys
922ab6f32b RotatingShifrtReport Merged 2025-05-18 21:17:21 +03:30
SamSys
0eee2a53c3 register merged 2025-05-18 21:13:52 +03:30
MahanCh
37cd07c2b8 fix conflict 2025-05-18 17:54:55 +03:30
MahanCh
6201492879 change step4 2025-05-18 17:52:33 +03:30
SamSys
b0f5ec6bbd change 2025-05-14 21:37:12 +03:30
SamSys
9ef48b982d Mearge RecalCulate Valuse group 2025-05-14 21:33:38 +03:30
SamSys
2a306dedac merge New Version of RegisterFinancial 2025-05-14 21:31:56 +03:30
SamSys
489528d076 new version of Register 2025-05-14 21:24:06 +03:30
SamSys
400790a53b RotatingShiftReport BackEnd Changed 2025-05-14 18:53:34 +03:30
SamSys
6a2ff178d3 push 2025-05-13 22:15:06 +03:30
SamSys
5f64b945d1 RotatingShiftReport client 2025-05-13 21:37:41 +03:30
SamSys
280a475455 sepration contract index js on client 2025-05-13 13:06:56 +03:30
SamSys
a7b91fac18 merged loan and SalaryAid to OfficialCheckout 2025-05-12 21:26:07 +03:30
MahanCh
fcea7eed21 merge 2025-05-10 16:41:14 +03:30
MahanCh
0a293dfa8c fix application 2025-05-10 16:18:18 +03:30
MahanCh
5825c7b8e2 fix bug 2025-05-10 16:01:09 +03:30
ebdf26d93c merge from edit checkout on change salary aid and .... 2025-05-09 13:45:25 +03:30
SamSys
67ec735778 Register changes 2025-05-07 22:53:41 +03:30
MahanCh
3a6f87eaca fix some register financial bugs 2025-05-07 22:45:42 +03:30
MahanCh
1ebbd2d7a9 Merge branch 'Feature/EmployeeDocuments/V2' into Upload/dad-mehr 2025-05-06 14:17:32 +03:30
SamSys
a40a9643f4 employee document workflow V2 2025-05-05 22:08:00 +03:30
SamSys
55c139578d add workshopSetting page in client 2025-05-05 22:07:01 +03:30
MahanCh
e9588125c0 merge from register financial 2025-05-04 20:59:42 +03:30
MahanCh
ec277629fb fix register financial problems 2025-05-04 20:58:45 +03:30
SamSys
bf9c317565 uid autorize for create employee in admin side 2025-05-03 15:42:46 +03:30
SamSys
22bd435627 ReCalculate rollcall values in CWEs "PersonnelShiftChange" 2025-04-30 21:27:41 +03:30
MahanCh
423d6ada9b Merge branch 'Feature/Register/Init' into Upload/dad-mehr 2025-04-28 15:50:51 +03:30
MahanCh
faeb297f5c fix register problems 2025-04-28 15:49:56 +03:30
SamSys
8bdfd44bba fix bug 2025-04-27 21:57:28 +03:30
SamSys
104534ed96 CalculationDate for SalaryAid 2025-04-27 21:43:00 +03:30
MahanCh
c00a9c0864 fix task size validation 2025-04-27 20:52:04 +03:30
MahanCh
cdb29a80e1 Add Calculation date to salaryAid 2025-04-27 19:37:50 +03:30
MahanCh
c3457881b0 add register part 2025-04-23 23:22:26 +03:30
235 changed files with 32954 additions and 25090 deletions

View File

@@ -0,0 +1,8 @@
namespace _0_Framework.Application.Enums;
public enum ActivationStatus
{
None = 0,
Active = 1,
DeActive = 2
}

View File

@@ -0,0 +1,8 @@
namespace _0_Framework.Application.Enums;
public enum LegalType
{
None = 0,
Real = 1,
Legal = 2
}

View File

@@ -0,0 +1,7 @@
namespace _0_Framework.Application;
public class SelectListViewModel
{
public long Id { get; set; }
public string Text { get; set; }
}

View File

@@ -41,6 +41,23 @@ public static class Tools
return Regex.IsMatch(mobileNo, "^((09))(\\d{9})$");
}
/// <summary>
/// تاریخ شروع و تعداد ماه را میگیرد و تاریخ پایان قراردا را بر میگرداند
/// </summary>
/// <param name="startDate"></param>
/// <param name="monthPlus"></param>
/// <returns></returns>
public static (DateTime endDateGr, string endDateFa) FindEndOfContract(string startDate, string monthPlus)
{
int startYear = Convert.ToInt32(startDate.Substring(0, 4));
int startMonth = Convert.ToInt32(startDate.Substring(5, 2));
int startDay = Convert.ToInt32(startDate.Substring(8, 2));
var start = new PersianDateTime(startYear, startMonth, startDay);
var end = (start.AddMonths(Convert.ToInt32(monthPlus))).AddDays(-1);
return ($"{end}".ToGeorgianDateTime(), $"{end}");
}
/// <summary>
/// دریافت روزهای کارکرد پرسنل در لیست بیمه ماه مشخص شده
@@ -1396,73 +1413,6 @@ public static class Tools
return false;
return true;
}
/// <summary>
/// چک میکند که در دو شیفت استاتیک تداخل زمانی وجود دارد یا خیر
/// چک میکند که آیا ساعات وارد شده ولید هستند یا خیر
/// </summary>
/// <param name="start1"></param>
/// <param name="end1"></param>
/// <param name="start2"></param>
/// <param name="end2"></param>
/// <returns></returns>
public static bool InterferenceTime(string start1, string end1, string start2, string end2)
{
if (!CheckValidHm(start1))
return true;
if (!CheckValidHm(end1))
return true;
if (!CheckValidHm(start2))
return true;
if (!CheckValidHm(end2))
return true;
//اگه دو شیفت نبود
if (string.IsNullOrWhiteSpace(start1) || string.IsNullOrWhiteSpace(start2))
return false;
try
{
var start1Gr = Convert.ToDateTime(start1);
var end1Gr = Convert.ToDateTime(end1);
if (end1Gr < start1Gr)
end1Gr = end1Gr.AddDays(1);
var start2Gr = Convert.ToDateTime(start2);
var end2Gr = Convert.ToDateTime(end2);
start2Gr = new DateTime(end1Gr.Year, end1Gr.Month, end1Gr.Day, start2Gr.Hour, start2Gr.Minute,
start2Gr.Second);
end2Gr = new DateTime(end1Gr.Year, end1Gr.Month, end1Gr.Day, end2Gr.Hour, end2Gr.Minute,
end2Gr.Second);
if (end2Gr < start2Gr)
end2Gr = end2Gr.AddDays(1);
var diff = (end1Gr - start1Gr).Add((end2Gr - start2Gr));
if (diff > new TimeSpan(24,0,0))
return true;
if (start2Gr <= end1Gr)
return true;
return false;
}
catch (Exception)
{
return true;
}
}
public static DateTime FindFirstDayOfMonthGr(this DateTime date)
{
var pc = new PersianCalendar();

View File

@@ -2,7 +2,6 @@
using AccountManagement.Domain.TaskAgg;
using System;
using System.Collections.Generic;
using System.Linq;
using AccountManagement.Domain.TaskMessageAgg;
namespace AccountManagement.Domain.AssignAgg;
@@ -159,24 +158,4 @@ public class Assign : EntityBase
IsDoneRequest=isDoneRequest;
DoneDescription=doneDescription;
}
public void ChangeAssignedId(long assignedId)
{
AssignedId = assignedId;
}
public void SetAssignerId(long assignerId)
{
AssignerId = assignerId;
}
public void ChangeSender(long senderId)
{
Task.SetSender(senderId);
var taskMessageItemsEnumerable =TaskMessageList.SelectMany(m => m.TaskMessageItemsList);
foreach (var taskMessageItems in taskMessageItemsEnumerable)
{
taskMessageItems.SetSenderId(senderId);
}
}
}

View File

@@ -1,12 +1,10 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.AccessControl;
using _0_Framework.Domain;
using AccountManagement.Domain.AssignAgg;
using AccountManagement.Domain.TaskMediaAgg;
using AccountManagement.Domain.TaskScheduleAgg;
using OfficeOpenXml.Style;
namespace AccountManagement.Domain.TaskAgg;
@@ -82,40 +80,4 @@ public class Tasks : EntityBase
TaskScheduleId = taskScheduleId;
}
public void ChangeSender(long senderId)
{
var prevSender = SenderId;
var assigners = Assigns.Where(x => x.AssignerId == prevSender).ToList();
foreach (var assigner in assigners)
{
assigner.SetAssignerId(senderId);
}
var senderMessageItem = Assigns
.SelectMany(x=>x.TaskMessageList
.SelectMany(m=>m.TaskMessageItemsList)).Where(x=>x.SenderAccountId == prevSender).ToList();
var receiverMessageItem = Assigns.SelectMany(x=>x.TaskMessageList
.SelectMany(m=>m.TaskMessageItemsList)).Where(x=>x.ReceiverAccountId == prevSender).ToList();
SenderId = senderId;
foreach (var taskMessageItems in senderMessageItem)
{
taskMessageItems.SetSenderId(senderId);
}
foreach (var taskMessageItems in receiverMessageItem)
{
taskMessageItems.SetReceiver(senderId);
}
}
public void SetSender(long senderId)
{
SenderId = senderId;
}
}

View File

@@ -19,13 +19,4 @@ public class TaskMessageItems:EntityBase
public TaskMessage TaskMessage { get; set; }
public void SetSenderId(long senderId)
{
SenderAccountId = senderId;
}
public void SetReceiver(long receiverId)
{
ReceiverAccountId = receiverId;
}
}

View File

@@ -3,7 +3,6 @@ using System.Collections;
using System.Collections.Generic;
using _0_Framework.Application;
using _0_Framework.Domain;
using _0_Framework.Domain.CustomizeCheckoutShared.Enums;
using Company.Domain.CheckoutAgg.ValueObjects;
using Company.Domain.CustomizeCheckoutAgg.ValueObjects;
using Company.Domain.WorkshopAgg;
@@ -30,7 +29,7 @@ public class Checkout : EntityBase
string overNightWorkValue, string fridayWorkValue, string rotatingShifValue, string absenceValue,
string totalDayOfLeaveCompute, string totalDayOfYearsCompute, string totalDayOfBunosesCompute,
ICollection<CheckoutLoanInstallment> loanInstallments,
ICollection<CheckoutSalaryAid> salaryAids,CheckoutRollCall checkoutRollCall)
ICollection<CheckoutSalaryAid> salaryAids)
{
EmployeeFullName = employeeFullName;
FathersName = fathersName;
@@ -89,7 +88,6 @@ public class Checkout : EntityBase
TotalDayOfBunosesCompute = totalDayOfBunosesCompute;
LoanInstallments = loanInstallments;
SalaryAids = salaryAids;
CheckoutRollCall = checkoutRollCall;
}
public string EmployeeFullName { get; private set; }
@@ -198,8 +196,7 @@ public class Checkout : EntityBase
public ICollection<CheckoutLoanInstallment> LoanInstallments { get; set; } = [];
public ICollection<CheckoutSalaryAid> SalaryAids { get; set; } = [];
public CheckoutRollCall CheckoutRollCall { get; private set; }
#endregion
#endregion
public Workshop Workshop { get; set; }
@@ -311,149 +308,4 @@ public class Checkout : EntityBase
LoanInstallments = lonaInstallments;
InstallmentDeduction = installmentsAmount;
}
public void SetCheckoutRollCall(CheckoutRollCall checkoutRollCall)
{
CheckoutRollCall = checkoutRollCall;
}
}
public class CheckoutRollCall
{
private CheckoutRollCall(){}
public CheckoutRollCall(TimeSpan totalMandatoryTimeSpan, TimeSpan totalPresentTimeSpan, TimeSpan totalBreakTimeSpan,
TimeSpan totalWorkingTimeSpan, TimeSpan totalPaidLeaveTmeSpan, TimeSpan totalSickLeaveTimeSpan,
ICollection<CheckoutRollCallDay> rollCallDaysCollection)
{
TotalMandatoryTimeSpan = totalMandatoryTimeSpan;
TotalPresentTimeSpan = totalPresentTimeSpan;
TotalBreakTimeSpan = totalBreakTimeSpan;
TotalWorkingTimeSpan = totalWorkingTimeSpan;
TotalPaidLeaveTmeSpan = totalPaidLeaveTmeSpan;
TotalSickLeaveTimeSpan = totalSickLeaveTimeSpan;
RollCallDaysCollection = rollCallDaysCollection;
}
/// <summary>
/// مجموع ساعت موظفی
/// </summary>
public TimeSpan TotalMandatoryTimeSpan { get; private set; }
/// <summary>
/// مجموع ساعت حضور
/// </summary>
public TimeSpan TotalPresentTimeSpan { get; private set; }
/// <summary>
/// مجموع ساعت استراحت
/// </summary>
public TimeSpan TotalBreakTimeSpan { get; private set; }
/// <summary>
/// مجموع ساعت کارکرد
/// </summary>
public TimeSpan TotalWorkingTimeSpan { get; private set; }
/// <summary>
/// مجموع ساعت مرخصی استحقاقی
/// </summary>
public TimeSpan TotalPaidLeaveTmeSpan { get; private set; }
/// <summary>
/// مجموع ساعت مرخصی استعلاجی
/// </summary>
public TimeSpan TotalSickLeaveTimeSpan { get; private set; }
/// <summary>
/// روز های حضور غیاب
/// </summary>
public ICollection<CheckoutRollCallDay> RollCallDaysCollection { get; private set; }
}
public class CheckoutRollCallDay
{
private CheckoutRollCallDay(){}
public CheckoutRollCallDay(DateTime date, string firstStartDate, string firstEndDate,
string secondStartDate, string secondEndDate, TimeSpan breakTimeSpan,
bool isSliced, TimeSpan workingTimeSpan, bool isAbsent, bool isFriday,
bool isHoliday, string leaveType)
{
Date = date;
FirstStartDate = firstStartDate;
FirstEndDate = firstEndDate;
SecondStartDate = secondStartDate;
SecondEndDate = secondEndDate;
BreakTimeSpan = breakTimeSpan;
IsSliced = isSliced;
WorkingTimeSpan = workingTimeSpan;
IsAbsent = isAbsent;
IsFriday = isFriday;
IsHoliday = isHoliday;
LeaveType = leaveType;
}
public long Id { get; set; }
/// <summary>
/// تاریخ
/// </summary>
public DateTime Date { get; private set; }
/// <summary>
/// ورود اول
/// </summary>
public string FirstStartDate { get; private set; }
/// <summary>
/// خروج اول
/// </summary>
public string FirstEndDate { get; private set; }
/// <summary>
/// ورود دوم
/// </summary>
public string SecondStartDate { get; private set; }
/// <summary>
/// خروج دوم
/// </summary>
public string SecondEndDate { get; private set; }
/// <summary>
/// ساعت استراحت
/// </summary>
public TimeSpan BreakTimeSpan { get; private set; }
/// <summary>
/// مقدار زمان کارکرد
/// </summary>
public TimeSpan WorkingTimeSpan { get; private set; }
/// <summary>
/// آیا منقطع است؟
/// </summary>
public bool IsSliced { get; private set; }
/// <summary>
/// آیا غیبت است
/// </summary>
public bool IsAbsent { get; private set; }
/// <summary>
/// آیا جمعه است
/// </summary>
public bool IsFriday { get; private set; }
/// <summary>
/// آیا تعطیل رسمی است
/// </summary>
public bool IsHoliday { get; private set; }
/// <summary>
/// نوع مرخصی - درصورت نداشتن مرخصی مقدارش null میباشد
/// </summary>
public string LeaveType { get; private set; }
public long CheckoutId { get; set; }
}

View File

@@ -0,0 +1,26 @@
using _0_Framework.Domain;
namespace Company.Domain.ContactUsAgg;
public class ContactUs:EntityBase
{
public ContactUs(string firstName, string lastName, string email, string phoneNumber, string title, string message)
{
FirstName = firstName.Trim();
LastName = lastName.Trim();
Email = email;
PhoneNumber = phoneNumber;
Title = title;
Message = message;
FullName = FirstName + " " + LastName;
}
public string FirstName { get; private set; }
public string LastName { get; private set; }
public string Email { get; private set; }
public string PhoneNumber { get; private set; }
public string Title { get; private set; }
public string Message { get; private set; }
public string FullName { get; private set; }
}

View File

@@ -0,0 +1,8 @@
using _0_Framework.Domain;
namespace Company.Domain.ContactUsAgg;
public interface IContactUsRepository : IRepository<long, ContactUs>
{
}

View File

@@ -3,6 +3,7 @@ using System.Collections.Generic;
using _0_Framework.Application;
using _0_Framework.Domain;
using AccountManagement.Application.Contracts.Account;
using System.Threading.Tasks;
namespace Company.Domain.ContarctingPartyAgg;
@@ -42,6 +43,34 @@ public interface IPersonalContractingPartyRepository :IRepository<long, Personal
#endregion
/// <summary>
/// لیست طرف حساب ها
/// </summary>
/// <param name="searchModel"></param>
/// <returns></returns>
Task<ICollection<ContractingPartyGetListViewModel>> GetList(ContractingPartyGetListSearchModel searchModel);
/// <summary>
/// لیست طرف حساب برای سلکت لیست سرچ
/// </summary>
/// <returns></returns>
Task<List<ContractingPartySelectListViewModel>> GetSelectList();
/// <summary>
/// لیستی از شماره ملی یا شناسه ملی بر اساس حقیقی یا حقوقی بودن
/// </summary>
/// <returns></returns>
Task<List<GetContractingPartyNationalCodeOrNationalIdViewModel>> GetNationalCodeOrNationalId();
/// <summary>
/// غیرفعال کردن طرف حساب و زیرمجموعه های آن
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task<OperationResult<string>> DeactivateWithSubordinates(long id);
void Remove(PersonalContractingParty entity);
Task<GetRealContractingPartyDetailsViewModel> GetRealDetails(long id);
Task<GetLegalContractingPartyDetailsViewModel> GetLegalDetails(long id);
}

View File

@@ -213,6 +213,7 @@ public class CustomizeWorkshopEmployeeSettings : BaseCustomizeEntity
earlyExit.EarlyExitTimeFines.Select(x => new EarlyExitTimeFine(x.Minute, x.FineMoney))
.ToList(), earlyExit.Value);
}
public void UpdateIsShiftChange()
{
var groupSetting = CustomizeWorkshopGroupSettings;
@@ -269,4 +270,10 @@ public class CustomizeWorkshopEmployeeSettings : BaseCustomizeEntity
IsShiftChanged = isShiftChange;
}
public void SetSalary(double salary)
{
Salary = salary;
}
}

View File

@@ -9,83 +9,30 @@ namespace Company.Domain.EmployeeComputeOptionsAgg
{
public class EmployeeComputeOptions : EntityBase
{
public EmployeeComputeOptions(long workshopId, long employeeId, string computeOptions, string bonusesOptions, string yearsOptions,
bool createContract, bool signContract, bool createCheckout, bool signCheckout)
{
WorkshopId = workshopId;
EmployeeId = employeeId;
ComputeOptions = computeOptions;
BonusesOptions = bonusesOptions;
YearsOptions = yearsOptions;
public EmployeeComputeOptions(long workshopId, long employeeId, string computeOptions, string bonusesOptions, string yearsOptions)
{
WorkshopId = workshopId;
EmployeeId = employeeId;
ComputeOptions = computeOptions;
BonusesOptions = bonusesOptions;
YearsOptions = yearsOptions;
}
SetContractAndCheckoutOptions(createContract, signContract, createCheckout, signCheckout);
}
public long WorkshopId { get; private set;}
public long EmployeeId { get; private set;}
//نحوه محاسبه مزد مرخصی
public string ComputeOptions { get; private set; }
//نحوه محاسبه عیدی
public string BonusesOptions { get; private set; }
//نحوه محاسبه سنوات
public string YearsOptions { get; private set; }
public long WorkshopId { get; private set; }
public long EmployeeId { get; private set; }
//نحوه محاسبه مزد مرخصی
public string ComputeOptions { get; private set; }
//نحوه محاسبه عیدی
public string BonusesOptions { get; private set; }
//نحوه محاسبه سنوات
public string YearsOptions { get; private set; }
/// <summary>
/// ایجاد قرارداد
/// </summary>
public bool CreateContract { get; private set; }
/// <summary>
/// امضای قرارداد
/// </summary>
public bool SignContract { get; private set; }
/// <summary>
/// ایجاد تصفیه
/// </summary>
public bool CreateCheckout { get; private set; }
/// <summary>
/// امضای تصفیه
/// </summary>
public bool SignCheckout { get; private set; }
public void Edit(string computeOptions, string bonusesOptions, string yearsOptions, bool createContract, bool signContract, bool createCheckout,
bool signCheckout)
{
ComputeOptions = computeOptions;
BonusesOptions = bonusesOptions;
YearsOptions = yearsOptions;
SetContractAndCheckoutOptions(createContract, signContract, createCheckout, signCheckout);
}
private void SetContractAndCheckoutOptions(bool createContract, bool signContract, bool createCheckout,
bool signCheckout)
{
CreateContract = createContract;
if (createContract)
{
SignContract = signContract;
CreateCheckout = createCheckout;
if (createCheckout)
{
SignCheckout = signCheckout;
}
else
{
SignCheckout = false;
}
}
else
{
SignContract = false;
CreateCheckout = false;
SignCheckout = false;
}
}
}
public void Edit(string computeOptions, string bonusesOptions, string yearsOptions)
{
ComputeOptions = computeOptions;
BonusesOptions = bonusesOptions;
YearsOptions = yearsOptions;
}
}
}

View File

@@ -64,9 +64,9 @@ public interface IInsuranceListRepository:IRepository<long, InsuranceList>
#region Mahan
Task<InsuranceListConfirmOperation> GetInsuranceOperationDetails(long id);
Task<InsuranceListTabsCountViewModel> GetTabCounts(InsuranceListSearchModel searchModel);
Task<InsuranceListTabsCountViewModel> GetTabCounts(long accountId,int month,int year);
#endregion
#endregion
}

View File

@@ -38,6 +38,12 @@ public interface IRollCallMandatoryRepository : IRepository<long, RollCall>
List<LateToWorkEarlyExistSpannig> LateToWorkEarlyExit(List<GroupedRollCalls> groupedRollCall,
ICollection<CustomizeWorkshopEmployeeSettingsShift> shiftSettings, List<LeaveViewModel> leavList);
List<LoanInstallmentViewModel> LoanInstallmentForCheckout(long employeeId, long workshopId, DateTime contractStart,
DateTime contractEnd);
List<SalaryAidViewModel> SalaryAidsForCheckout(long employeeId, long workshopId, DateTime checkoutStart,
DateTime checkoutEnd);
/// <summary>
/// گزارش نوبت کاری حضور غیاب
/// </summary>
@@ -47,12 +53,6 @@ public interface IRollCallMandatoryRepository : IRepository<long, RollCall>
/// <param name="contractEnd"></param>
/// <param name="shiftwork"></param>
/// <returns></returns>
List<LoanInstallmentViewModel> LoanInstallmentForCheckout(long employeeId, long workshopId, DateTime contractStart,
DateTime contractEnd);
List<SalaryAidViewModel> SalaryAidsForCheckout(long employeeId, long workshopId, DateTime checkoutStart,
DateTime checkoutEnd);
Task<ComputingViewModel> RotatingShiftReport(long workshopId, long employeeId, DateTime contractStart,
DateTime contractEnd, string shiftwork, bool hasRollCall, CreateWorkingHoursTemp command,bool holidayWorking);
}

View File

@@ -23,7 +23,6 @@ public class SalaryAid : EntityBase
CalculationMonth = calculationMonth;
CalculationYear = calculationYear;
}
public long EmployeeId { get; private set; }
public long WorkshopId { get; private set; }
public double Amount { get; private set; }

View File

@@ -14,5 +14,7 @@ public interface IWorkshopTempRepository : IRepository<long, WorkshopTemp>
/// <returns></returns>
Task<List<WorkshopTempViewModel>> GetWorkshopTemp(long contractingPartyTemp);
System.Threading.Tasks.Task RemoveWorkshopTemps(List<long> workshopTempIds);
}

View File

@@ -34,12 +34,14 @@ public class InstitutionContractTemp : EntityBase
/// بصورت یکجا
/// -
/// بصئورت ماهیانه
/// OneTime
/// </summary>
public string PaymentModel { get; private set; }
/// <summary>
/// مدت قرارداد
/// چند ماهه؟
/// "12"
/// </summary>
public string PeriodModel { get; private set; }

View File

@@ -1,7 +1,6 @@
using System.Collections.Generic;
using System.Globalization;
using System.Security.AccessControl;
using _0_Framework.Application;
using _0_Framework.Domain;
using Company.Domain.CheckoutAgg;
using Company.Domain.ClientEmployeeWorkshopAgg;
@@ -93,7 +92,7 @@ public class Workshop : EntityBase
string state, string city, string address, string typeOfInsuranceSend, string typeOfContract, string contractTerm,
string agreementNumber, bool fixedSalary, string population,long? insuranceJobId, string zoneName, bool addBonusesPay, bool addYearsPay, bool addLeavePay, bool totalPaymentHide,
bool isClassified, string computeOptions, string bonusesOptions, string yearsOptions, string hasRollCallFreeVip, bool workshopHolidayWorking,
bool insuranceCheckoutOvertime, bool insuranceCheckoutFamilyAllowance, bool createContract, bool signContract, bool createCheckout, bool signCheckout, IsActive cutContractEndOfYear)
bool insuranceCheckoutOvertime, bool insuranceCheckoutFamilyAllowance)
{
WorkshopName = workshopName;
WorkshopSureName = workshopSureName;
@@ -137,12 +136,7 @@ public class Workshop : EntityBase
WorkshopHolidayWorking = workshopHolidayWorking;
InsuranceCheckoutOvertime = insuranceCheckoutOvertime;
InsuranceCheckoutFamilyAllowance = insuranceCheckoutFamilyAllowance;
CreateContract = createContract;
SignContract = signContract;
CreateCheckout = createCheckout;
SignCheckout = signCheckout;
CutContractEndOfYear = cutContractEndOfYear;
}
}
public string WorkshopName { get; private set; }
@@ -216,19 +210,6 @@ public class Workshop : EntityBase
/// محاسبه حق اولاد در لیست بیمه
/// </summary>
public bool InsuranceCheckoutFamilyAllowance { get; private set; }
public bool CreateContract { get; private set; }
public bool SignContract { get; private set; }
public bool CreateCheckout { get; private set; }
public bool SignCheckout { get; private set; }
/// <summary>
/// اگر قرارداد بیش از یک ماه باشد و گزینه انتخاب شده منتهی به پایان سال باشد
/// این آیتم
/// True
/// است
/// </summary>
public IsActive CutContractEndOfYear { get; private set; }
//public Employer Employer { get; private set; }
public Workshop()
@@ -262,7 +243,7 @@ public class Workshop : EntityBase
string state, string city, string address, string typeOfInsuranceSend, string typeOfContract, string contractTerm,
string agreementNumber, bool fixedSalary, string population, long? insuranceJobId, string zoneName, bool addBonusesPay, bool addYearsPay, bool addLeavePay,
bool totalPaymentHide, bool isClassified, string computeOptions, string bonusesOptions, string yearsOptions, string hasRollCallFreeVip, bool workshopHolidayWorking,
bool insuranceCheckoutOvertime, bool insuranceCheckoutFamilyAllowance, bool createContract, bool signContract, bool createCheckout, bool signCheckout, IsActive cutContractEndOfYear)
bool insuranceCheckoutOvertime, bool insuranceCheckoutFamilyAllowance)
{
WorkshopName = workshopName;
WorkshopSureName = workshopSureName;
@@ -303,12 +284,7 @@ public class Workshop : EntityBase
WorkshopHolidayWorking = workshopHolidayWorking;
InsuranceCheckoutOvertime = insuranceCheckoutOvertime;
InsuranceCheckoutFamilyAllowance = insuranceCheckoutFamilyAllowance;
CreateContract = createContract;
SignContract = signContract;
CreateCheckout = createCheckout;
SignCheckout = signCheckout;
CutContractEndOfYear = cutContractEndOfYear;
}
}
public void Active(string archiveCode)

View File

@@ -56,6 +56,16 @@ public interface IEmployerRepository : IRepository<long, Employer>
#endregion
#region Api
Task<List<GetEmployerListViewModel>> GetEmployerList(GetEmployerSearchModel searchModel);
Task<GetLegalEmployerDetailViewModel> GetLegalEmployerDetail(long id);
Task<GetRealEmployerDetailViewModel> GetRealEmployerDetail(long id);
//Task<List<EmployerSelectListViewModel>> GetSelectList(string search);
Task<OperationResult<string>> DeactivateWithSubordinates(long id);
#endregion
}

View File

@@ -132,115 +132,7 @@ public class CheckoutViewModel
/// مدت مرخصی استحقاقی
/// </summary>
public string TotalPaidLeave { get; set; }
public TimeSpan TotalHourlyLeave { get; set; }
public List<CheckoutDailyRollCallViewModel> MonthlyRollCall { get; set; }
public List<LoanInstallmentViewModel> InstallmentViewModels { get; set; }
public List<SalaryAidViewModel> SalaryAidViewModels { get; set; }
public CheckoutRollCallViewModel CheckoutRollCall { get; set; }
}
public class CheckoutRollCallViewModel
{
/// <summary>
/// مجموع ساعت موظفی
/// </summary>
public TimeSpan TotalMandatoryTimeSpan { get; set; }
/// <summary>
/// مجموع ساعت حضور
/// </summary>
public TimeSpan TotalPresentTimeSpan { get; set; }
/// <summary>
/// مجموع ساعت استراحت
/// </summary>
public TimeSpan TotalBreakTimeSpan { get; set; }
/// <summary>
/// مجموع ساعت کارکرد
/// </summary>
public TimeSpan TotalWorkingTimeSpan { get; set; }
/// <summary>
/// مجموع ساعت مرخصی استحقاقی
/// </summary>
public TimeSpan TotalPaidLeaveTmeSpan { get; set; }
/// <summary>
/// مجموع ساعت مرخصی استعلاجی
/// </summary>
public TimeSpan TotalSickLeaveTimeSpan { get; set; }
/// <summary>
/// روز های حضور غیاب
/// </summary>
public ICollection<CheckoutRollCallDayViewModel> RollCallDaysCollection { get; set; }
}
public class CheckoutRollCallDayViewModel
{
public long Id { get; set; }
/// <summary>
/// تاریخ
/// </summary>
public DateTime Date { get; set; }
/// <summary>
/// ورود اول
/// </summary>
public string FirstStartDate { get; set; }
/// <summary>
/// خروج اول
/// </summary>
public string FirstEndDate { get; set; }
/// <summary>
/// ورود دوم
/// </summary>
public string SecondStartDate { get; set; }
/// <summary>
/// خروج دوم
/// </summary>
public string SecondEndDate { get; set; }
/// <summary>
/// ساعت استراحت
/// </summary>
public TimeSpan BreakTimeSpan { get; set; }
/// <summary>
/// مقدار زمان کارکرد
/// </summary>
public TimeSpan WorkingTimeSpan { get; set; }
/// <summary>
/// آیا منقطع است؟
/// </summary>
public bool IsSliced { get; set; }
/// <summary>
/// آیا غیبت است
/// </summary>
public bool IsAbsent { get; set; }
/// <summary>
/// آیا جمعه است
/// </summary>
public bool IsFriday { get; set; }
/// <summary>
/// آیا تعطیل رسمی است
/// </summary>
public bool IsHoliday { get; set; }
/// <summary>
/// نوع مرخصی - درصورت نداشتن مرخصی مقدارش null میباشد
/// </summary>
public string LeaveType { get; set; }
public long CheckoutId { get; set; }
}

View File

@@ -5,7 +5,6 @@ using System.Text;
using System.Threading.Tasks;
using CompanyManagment.App.Contracts.Contract;
using CompanyManagment.App.Contracts.Employee;
using CompanyManagment.App.Contracts.RollCall;
using CompanyManagment.App.Contracts.YearlySalary;
using Microsoft.AspNetCore.Mvc.Rendering;
@@ -139,20 +138,4 @@ public class CreateCheckout
public string ShiftWork { get; set; }
/// <summary>
/// محاسبه اضافه کار در بیمه
/// </summary>
public bool HasInsuranceChekoutOverTime {get; set; }
public List<GroupedRollCalls> GroupedRollCalls { get; set; }
public TimeSpan TotalWorkingTimeSpan { get; set; }
public TimeSpan TotalBreakTimeSpan { get; set; }
public TimeSpan TotalPresentTimeSpan { get; set; }
public TimeSpan TotalPaidLeave { get; set; }
public TimeSpan TotalSickLeave { get; set; }
}

View File

@@ -0,0 +1,18 @@
using _0_Framework.Application;
namespace CompanyManagment.App.Contracts.ContactUs;
public interface IContactUsApplication
{
OperationResult Create(CreateContactUs command);
}
public class CreateContactUs
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public string PhoneNumber { get; set; }
public string Title { get; set; }
public string Message { get; set; }
}

View File

@@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using CompanyManagment.App.Contracts.Loan;
using CompanyManagment.App.Contracts.RollCall;
using CompanyManagment.App.Contracts.SalaryAid;
using CompanyManagment.App.Contracts.WorkingHoursTemp;
@@ -46,15 +45,6 @@ public class ComputingViewModel
public bool HasRotatingShift { get; set; }
public List<GroupedRollCalls> GroupedRollCalls { get; set; }
public TimeSpan TotalWorkingTimeSpan { get; set; }
public TimeSpan TotalBreakTimeSpan { get; set; }
public TimeSpan TotalPresentTimeSpan { get; set; }
public TimeSpan TotalPaidLeave { get; set; }
public TimeSpan TotalSickLeave { get; set; }
//public List<string> holidays;
}

View File

@@ -8,6 +8,7 @@ public class CustomizeWorkshopGroupSettingsViewModel
{
public long Id { get; set; }
public double Salary { get; set; }
public string SalaryStr { get; set; }
public string GroupName { get; set; }
public bool MainGroup { get; set; }
public List<CustomizeWorkshopShiftViewModel> RollCallWorkshopShifts { get; set; }
@@ -18,4 +19,5 @@ public class CustomizeWorkshopGroupSettingsViewModel
public BreakTime BreakTime { get; set; }
public FridayWork FridayWork { get; set; }
public HolidayWork HolidayWork { get; set; }
public int LeavePermitted { get; set; }
}

View File

@@ -28,8 +28,10 @@ public class CreateEmployeeByClient
public List<AddEmployeeDocumentItem> EmployeeDocumentItems { get; set; }
public bool HasEmployeeDocument { get; set; }
public bool HasRollCallService { get; set; }
public bool CanceledAuthorize { get; set; }
public string BirthDate { get; set; }
public bool HasCustomizeCheckoutService { get; set; }
}

View File

@@ -17,7 +17,6 @@ public record EmployeeByNationalCodeInWorkshopViewModel
public long PersonnelCode { get; set; }
public List<EmployeeByNationalCodeEmployeeBankInfoViewModel> EmployeeBankInfos { get; set; }
public EmployeeByNationalCodeEmployeeDocumentViewModel EmployeeDocument { get; set; }
public bool AuthorizedCanceled { get; set; }
}

View File

@@ -17,22 +17,5 @@ namespace CompanyManagment.App.Contracts.EmployeeComputeOptions
public string BonusesOptions { get; set; }
//نحوه محاسبه سنوات
public string YearsOptions { get; set; }
/// <summary>
/// ایجاد قرارداد
/// </summary>
public bool CreateContract { get; set; }
/// <summary>
/// امضای قرارداد
/// </summary>
public bool SignContract { get; set; }
/// <summary>
/// ایجاد تصفیه
/// </summary>
public bool CreateCheckout { get; set; }
/// <summary>
/// امضای تصفیه
/// </summary>
public bool SignCheckout { get; set; }
}
}
}

View File

@@ -12,20 +12,4 @@ public class EmployeeComputeOptionsViewModel
public string BonusesOptions { get; set; }
//نحوه محاسبه سنوات
public string YearsOptions { get; set; }
/// <summary>
/// ایجاد قرارداد
/// </summary>
public bool CreateContract { get; set; }
/// <summary>
/// امضای قرارداد
/// </summary>
public bool SignContract { get; set; }
/// <summary>
/// ایجاد تصفیه
/// </summary>
public bool CreateCheckout { get; set; }
/// <summary>
/// امضای تصفیه
/// </summary>
public bool SignCheckout { get; set; }
}

View File

@@ -0,0 +1,84 @@
using System.ComponentModel.DataAnnotations;
using _0_Framework.Application;
using _0_Framework.Application.Enums;
namespace CompanyManagment.App.Contracts.Employer;
/// <summary>
/// ایجاد کارفرمای حقیقی
/// </summary>
public class CreateLegalEmployer
{
/// <summary>
/// آیدی طرف حساب
/// </summary>
[Required]
public long ContractingPartyId { get; set; }
/// <summary>
/// نام شرکت
/// </summary>
public string CompanyName { get; set; }
/// <summary>
/// شناسه ملی
/// </summary>
public string NationalId { get; set; }
/// <summary>
/// شماره ثبت
/// </summary>
public string RegisterId { get; set; }
/// <summary>
/// شماره تلفن همراه
/// </summary>
public string PhoneNumber { get; set; }
/// <summary>
/// شماره تلفن ثابت
/// </summary>
public string TelephoneNumber { get; set; }
/// <summary>
/// نام مدیر عامل
/// </summary>
public string EmployerFName { get; set; }
/// <summary>
/// نام خانوادگی مدیر عامل
/// </summary>
public string EmployerLName { get; set; }
/// <summary>
/// جنسیت مدیر عامل
/// </summary>
public Gender EmployerGender { get; set; }
/// <summary>
/// کد ملی مدیر عامل
/// </summary>
public string EmployerNationalCode { get; set; }
/// <summary>
/// شماره شناسنامه مدیر عامل
/// </summary>
public string EmployerIdNumber { get; set; }
/// <summary>
/// نام پدر مدیر عامل
/// </summary>
public string EmployerFatherName { get; set; }
/// <summary>
/// تاریخ تولد مدیر عامل
/// </summary>
public string EmployerDateOfBirth { get; set; }
/// <summary>
/// تاریخ صدور شناسنامه مدیر عامل
/// </summary>
public string EmployerDateOfIssue { get; set; }
/// <summary>
/// محل صدور شناسنامه مدیر عامل
/// </summary>
public string EmployerPlaceOfIssue { get; set; }
/// <summary>
/// اطلاعات سامانه ای
/// </summary>
public GovernmentSystemInfo GovernmentSystemInfo { get; set; }
}

View File

@@ -0,0 +1,80 @@
using System.ComponentModel.DataAnnotations;
using _0_Framework.Application;
using _0_Framework.Application.Enums;
namespace CompanyManagment.App.Contracts.Employer;
/// <summary>
/// ایجاد کارفرما حقیقی
/// </summary>
public class CreateRealEmployer
{
/// <summary>
/// آیدی طرف حساب
/// </summary>
[Required]
public long ContractingPartyId { get; set; }
/// <summary>
/// جنسیت
/// </summary>
[Required]
public Gender Gender { get; set; }
/// <summary>
/// نام
/// </summary>
[Required]
public string FName { get; set; }
/// <summary>
///نام خانوادگی
/// </summary>
[Required]
public string LName { get; set; }
/// <summary>
/// کد ملی
/// </summary>
public string NationalCode { get; set; }
/// <summary>
/// شماره شناسنامه
/// </summary>
public string IdNumber { get; set; }
/// <summary>
/// شماره تلفن همراه
/// </summary>
public string PhoneNumber { get; set; }
/// <summary>
/// شماره تلفن ثابت
/// </summary>
public string Telephone { get; set; }
/// <summary>
/// تاریخ صدور شناسنامه
/// </summary>
public string DateOfIssue { get; set; }
/// <summary>
/// محل صدور شناسنامه
/// </summary>
public string PlaceOfIssue { get; set; }
/// <summary>
/// تاریخ تولد
/// </summary>
public string DateOfBirth { get; set; }
/// <summary>
/// نام پدر
/// </summary>
public string FatherName { get; set; }
/// <summary>
/// اطلاعات سامانه ای
/// </summary>
public GovernmentSystemInfo GovernmentSystemInfo { get; set; }
}

View File

@@ -0,0 +1,9 @@
namespace CompanyManagment.App.Contracts.Employer;
public class EditLegalEmployer: CreateLegalEmployer
{
/// <summary>
/// آیدی کارفرما
/// </summary>
public long Id { get; set; }
}

View File

@@ -0,0 +1,12 @@
namespace CompanyManagment.App.Contracts.Employer;
/// <summary>
/// ویرایش کارفرما حقیقی
/// </summary>
public class EditRealEmployer:CreateRealEmployer
{
/// <summary>
/// آیدی کارفرما
/// </summary>
public long Id { get; set; }
}

View File

@@ -0,0 +1,50 @@
using System.Collections.Generic;
using _0_Framework.Application.Enums;
namespace CompanyManagment.App.Contracts.Employer;
/// <summary>
/// مدل برای گرفتن لیست کارفرما
/// </summary>
public class GetEmployerListViewModel
{
/// <summary>
/// آیدی کارفرما
/// </summary>
public long Id { get; set; }
/// <summary>
/// کدملی / شناسه ملی
/// </summary>
public string NationalCodeOrNationalId { get; set; }
/// <summary>
/// نام کارفرما
/// </summary>
public string FullName { get; set; }
/// <summary>
/// نام های کارگاه
/// </summary>
public ICollection<string> WorkshopNames { get; set; }
/// <summary>
/// دارای طرف حساب
/// </summary>
public bool HasContractingParty { get; set; }
/// <summary>
/// طرف حساب بلاک شده یا نه
/// </summary>
public bool HasBlockContractingParty { get; set; }
/// <summary>
/// نوع کارفرما
/// </summary>
public LegalType LegalType { get; set; }
/// <summary>
/// وضعیت کارفرما
/// </summary>
public ActivationStatus EmployerStatus { get; set; }
}

View File

@@ -0,0 +1,44 @@
using _0_Framework.Application.Enums;
namespace CompanyManagment.App.Contracts.Employer;
/// <summary>
/// مدل جستجوی لیست کارفرما
/// </summary>
public class GetEmployerSearchModel
{
/// <summary>
/// نام شرکت / نام و نام خانوادگی
/// </summary>
public string FullNameOrCompanyName { get; set; }
/// <summary>
/// کدملی/ شناسه ملی
/// </summary>
public string NationalCodeOrNationalId { get; set; }
/// <summary>
/// شماره شناسنامه یا شماره ثبت
/// </summary>
public string IdNumberOrRegisterId { get; set; }
/// <summary>
/// نام طرف حساب
/// </summary>
public string ContractingPartyName { get; set; }
/// <summary>
/// وضعیت کارفرما
/// </summary>
public ActivationStatus EmployerStatus { get; set; }
/// <summary>
/// نوع کارفرما
/// </summary>
public LegalType EmployerType { get; set; }
/// <summary>
/// پیج ایندکس برای دسته بندی سی تایی
/// </summary>
public int PageIndex { get; set; }
}

View File

@@ -0,0 +1,120 @@
using _0_Framework.Application;
using _0_Framework.Application.Enums;
namespace CompanyManagment.App.Contracts.Employer;
/// <summary>
/// اطلاعات کارفرمای حقوقی
/// </summary>
public class GetLegalEmployerDetailViewModel
{
/// <summary>
/// آیدی کارفرما
/// </summary>
public long Id { get; set; }
/// <summary>
/// نام شرکت
/// </summary>
public string CompanyName { get; set; }
/// <summary>
/// شناسه ملی
/// </summary>
public string NationalId { get; set; }
/// <summary>
/// شماره ثبت
/// </summary>
public string RegisterId { get; set; }
/// <summary>
/// شماره تلفن همراه
/// </summary>
public string PhoneNumber { get; set; }
/// <summary>
/// شماره تلفن ثابت
/// </summary>
public string TelephoneNumber { get; set; }
/// <summary>
/// کد کارفرما
/// </summary>
public string EmployerNo { get; set; }
/// <summary>
/// نام کارفرما
/// </summary>
public string ContractingPartyName { get; set; }
/// <summary>
/// نام کارفرما
/// </summary>
public long ContractingPartyId { get; set; }
/// <summary>
/// نام و خانوادگی مدیر عامل
/// </summary>
public string CeoFullName { get; set; }
/// <summary>
/// نام و خانوادگی مدیر عامل
/// </summary>
public string CeoFName { get; set; }
/// <summary>
/// نام و خانوادگی مدیر عامل
/// </summary>
public string CeoLName { get; set; }
/// <summary>
/// جنسیت مدیر عامل
/// </summary>
public Gender Gender { get; set; }
/// <summary>
/// جنیست
/// </summary>
public string GenderStr { get; set; }
/// <summary>
/// ملیت
/// </summary>
public string Nationality { get; set; }
/// <summary>
/// نام پدر
/// </summary>
public string FatherName { get; set; }
/// <summary>
/// کد ملی
/// </summary>
public string NationalCode { get; set; }
/// <summary>
/// شماره شناسنامه
/// </summary>
public string IdNumber { get; set; }
/// <summary>
/// تاریخ تولد
/// </summary>
public string DateOfBirth { get; set; }
/// <summary>
/// تاریخ صدور شناسنامه
/// </summary>
public string DateOfIssue { get; set; }
/// <summary>
/// محل صدور شناسنامه
/// </summary>
public string PlaceOfIssue { get; set; }
/// <summary>
/// اطلاعات سامانه های دولتی
/// </summary>
public GovernmentSystemInfo GovernmentSystemInfo { get; set; }
}

View File

@@ -0,0 +1,107 @@
using _0_Framework.Application;
using _0_Framework.Application.Enums;
namespace CompanyManagment.App.Contracts.Employer;
/// <summary>
/// اطلاعات کارفرمای حقوقی
/// </summary>
public class GetRealEmployerDetailViewModel
{
/// <summary>
/// آیدی کارفرما
/// </summary>
public long Id { get; set; }
/// <summary>
/// نام و نام خانوادگی
/// </summary>
public string FullName { get; set; }
/// <summary>
/// نام
/// </summary>
public string FName{ get; set; }
/// <summary>
/// نام خانوادگی
/// </summary>
public string LName { get; set; }
/// <summary>
/// کدملی
/// </summary>
public string NationalCode { get; set; }
/// <summary>
/// جنسیت فارسی
/// </summary>
public string GenderStr { get; set; }
/// <summary>
/// جنسیت
/// </summary>
public Gender Gender { get; set; }
/// <summary>
/// ملیت
/// </summary>
public string Nationality { get; set; }
/// <summary>
/// شماره تلفن همراه
/// </summary>
public string PhoneNumber { get; set; }
/// <summary>
/// نام پدر
/// </summary>
public string FatherName { get; set; }
/// <summary>
/// شماره شناسنامه
/// </summary>
public string IdNumber { get; set; }
/// <summary>
/// تاریخ تولد
/// </summary>
public string DateOfBirth { get; set; }
/// <summary>
/// نام طرف حساب
/// </summary>
public string ContractingPartyName { get; set; }
/// <summary>
/// آیدی طرف حساب
/// </summary>
public long ContractingPartyId { get; set; }
/// <summary>
/// کد کارفرما
/// </summary>
public string EmployerNo { get; set; }
/// <summary>
/// شماره تلفن ثابت
/// </summary>
public string TelephoneNumber { get; set; }
/// <summary>
/// تاریخ صدور شناسنامه
/// </summary>
public string DateOfIssue { get; set; }
/// <summary>
/// محل صدور شناسنامه
/// </summary>
public string PlaceOfIssue { get; set; }
/// <summary>
/// اطلاعات سامانه های دولتی
/// </summary>
public GovernmentSystemInfo GovernmentSystemInfo { get; set; }
}

View File

@@ -0,0 +1,54 @@
using System;
namespace CompanyManagment.App.Contracts.Employer;
/// <summary>
/// اطلاعات سامانه های دولتی
/// </summary>
public class GovernmentSystemInfo
{
#region MCL
/// <summary>
/// نام کاربری اداره کار
/// </summary>
public string MclUsername { get; set; }
/// <summary>
/// رمز عبور اداره کار
/// </summary>
public string MclPassword { get; set; }
#endregion
#region E-Service تامین اجتماعی
/// <summary>
/// نام کاربری سازمان تامین اجتماعی
/// </summary>
public string EServiceUsername { get; set; }
/// <summary>
/// رمز عبور سازمان تامین اجتماعی
/// </summary>
public string EServicePassword { get; set; }
#endregion
#region Tax سامانه مالیاتی
/// <summary>
/// نام کاربری سامانه مالیاتی
/// </summary>
public string TaxUsername { get; set; }
/// <summary>
/// رمز عبور سامانه مالیاتی
/// </summary>
public string TaxPassword { get; set; }
#endregion
#region Sana سامانه ثنا
/// <summary>
/// نام کاربری ثنا
/// </summary>
public string SanaUsername { get; set; }
/// <summary>
/// رمز عبور ثنا
/// </summary>
public string SanaPassword { get; set; }
#endregion
}

View File

@@ -55,4 +55,71 @@ public interface IEmployerApplication
#endregion
}
#region Api
/// <summary>
/// لیست کارفرما ها
/// </summary>
/// <returns></returns>
Task<List<GetEmployerListViewModel>> GetEmployerList(GetEmployerSearchModel searchModel);
/// <summary>
/// جزئیات کارفرما حقوقی
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task<GetLegalEmployerDetailViewModel> GetLegalEmployerDetail(long id);
/// <summary>
/// جزئیات کارفرما حقیقی
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task<GetRealEmployerDetailViewModel> GetRealEmployerDetail(long id);
/// <summary>
/// ایجاد کارفرمای حقیقی
/// </summary>
/// <param name="command"></param>
/// <returns></returns>
Task<OperationResult> CreateReal(CreateRealEmployer command);
/// <summary>
/// ایجاد کارفرمای حقوقی
/// </summary>
/// <param name="command"></param>
/// <returns></returns>
Task<OperationResult> CreateLegal(CreateLegalEmployer command);
/// <summary>
/// ویرایش کارفرمای حقیقی
/// </summary>
/// <param name="command"></param>
/// <returns></returns>
Task<OperationResult> EditReal(EditRealEmployer command);
/// <summary>
/// ویرایش کارفرمای حقوقی
/// </summary>
/// <param name="command"></param>
/// <returns></returns>
Task<OperationResult> EditLegal(EditLegalEmployer command);
///// <summary>
///// لیست نام کارفرما ها برای جستجو
///// </summary>
///// <param name="search"></param>
///// <returns></returns>
//public Task<List<EmployerSelectListViewModel>> GetSelectList(string search);
/// <summary>
/// حذف کارفرما - درصورت داشتن کارگاه کارفرما غیرفعال میشود
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public Task<OperationResult<string>> RemoveApi(long id);
#endregion
}

View File

@@ -298,6 +298,4 @@ public class EmployeeDetailsForInsuranceListViewModel
///// DSK_SPOUSE
///// </summary>
//public double SumOfMarriedAllowance { get; set; }
public string Month { get; set; }
public string Year { get; set; }
}

View File

@@ -44,7 +44,7 @@ public interface IInsuranceListApplication
Task<OperationResult> ConfirmInsuranceOperation(InsuranceListConfirmOperation command);
Task<InsuranceListConfirmOperation> GetInsuranceOperationDetails(long id);
Task<InsuranceListTabsCountViewModel> GetTabCounts(InsuranceListSearchModel searchModel);
Task<InsuranceListTabsCountViewModel> GetTabCounts(long accountId, int month, int year);
#endregion
#endregion
}

View File

@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CompanyManagment.App.Contracts.InsuranceList.Enums;
namespace CompanyManagment.App.Contracts.InsuranceList;
@@ -33,11 +32,6 @@ public class InsuranceListViewModel
public bool InspectionDone { get; set; }
/// <summary>وضعیت بدهی</summary>
public bool DebtDone { get; set; }
/// <summary>تاییدیه کارفرما</summary>
/// <summary>وضعیت تاییدیه کارفرما</summary>
public bool EmployerApproved { get; set; }
/// <summary>
/// نوع تاییدیه کارفرما
/// </summary>
public InsuranceListEmployerApprovalStatus EmployerApprovalStatus { get; set; }
}

View File

@@ -0,0 +1,37 @@
using _0_Framework.Application.Enums;
namespace CompanyManagment.App.Contracts.PersonalContractingParty;
public class ContractingPartyGetListSearchModel
{
/// <summary>
/// تعدادی که برای لیست بعدی آیتم باید رد کنه
/// </summary>
public int PageIndex { get; set; }
/// <summary>
/// نام شرکت یا نام و نام خانوادگی طرف حساب
/// </summary>
public string FullNameOrCompanyName { get; set; }
/// <summary>
/// شناسه ملی یا شماره ملی
/// </summary>
public string NationalIdOrNationalCode { get; set; }
/// <summary>
/// نام معرف
/// </summary>
public string RepresentativeName { get; set; }
/// <summary>
/// نوع طرف حساب
/// </summary>
public LegalType ContractingPartyType { get; set; }
/// <summary>
/// وضعیت طرف حساب
/// </summary>
public ActivationStatus ContractingPartyStatus { get; set; }
}

View File

@@ -0,0 +1,60 @@
using System.Collections.Generic;
using _0_Framework.Application.Enums;
namespace CompanyManagment.App.Contracts.PersonalContractingParty;
public record ContractingPartyGetListEmployerViewModel(long EmployerId, string EmployerName);
public class ContractingPartyGetListViewModel
{
/// <summary>
/// آیدی طرف حساب
/// </summary>
public long Id { get; set; }
/// <summary>
/// کد طرف حساب
/// </summary>
public int ArchiveCode { get; set; }
/// <summary>
/// شناسه ملی یا شماره ملی
/// </summary>
public string NationalIdOrNationalCode { get; set; }
/// <summary>
/// نام طرف حساب
/// </summary>
public string ContractingPartyName { get; set; }
/// <summary>
/// لیست کارفرما ها
/// </summary>
public ICollection<ContractingPartyGetListEmployerViewModel> Employers { get; set; }
/// <summary>
/// تعداد بلاک
/// </summary>
public int BlockTimes { get; set; }
/// <summary>
/// آیا بلاک هست
/// </summary>
public bool IsBlock { get; set; }
/// <summary>
/// آیا دارای قرارداد مالی است
/// </summary>
public bool HasInstitutionContract { get; set; }
/// <summary>
/// نوع طرف حساب
/// </summary>
public LegalType ContractingPartyType { get; set; }
/// <summary>
/// وضعیت طرف حساب
/// </summary>
public ActivationStatus Status { get; set; }
}

View File

@@ -0,0 +1,8 @@
using _0_Framework.Application;
namespace CompanyManagment.App.Contracts.PersonalContractingParty;
public class ContractingPartySelectListViewModel: SelectListViewModel
{
}

View File

@@ -0,0 +1,74 @@
using System.ComponentModel.DataAnnotations;
namespace CompanyManagment.App.Contracts.PersonalContractingParty;
public class CreateLegalContractingParty
{
/// <summary>
/// آیدی معرف
/// </summary>
[Required]
public long RepresentativeId { get; set; }
/// <summary>
/// نام شرکت
/// </summary>
[Required]
public string CompanyName { get; set; }
/// <summary>
/// شناسه ملی
/// </summary>
[Required]
public string NationalId { get; set; }
/// <summary>
/// کد طرف حساب
/// </summary>
[Required]
public int ArchiveCode { get; set; }
/// <summary>
/// نام مستعار
/// </summary>
public string SureName { get; set; }
/// <summary>
/// شماره ثبت
/// </summary>
public string RegisterId { get; set; }
/// <summary>
/// شماره تلفن
/// </summary>
public string PhoneNumber { get; set; }
/// <summary>
/// شماره تلفن نماینده
/// </summary>
public string AgentPhone { get; set; }
/// <summary>
/// استان
/// </summary>
public string State { get; set; }
/// <summary>
/// شهر
/// </summary>
public string City { get; set; }
/// <summary>
/// محله
/// </summary>
public string Zone { get; set; }
/// <summary>
/// نشانی
/// </summary>
public string Address { get; set; }
}

View File

@@ -0,0 +1,77 @@
using System.ComponentModel.DataAnnotations;
namespace CompanyManagment.App.Contracts.PersonalContractingParty;
public class CreateRealContractingParty
{
/// <summary>
/// نام
/// </summary>
[Required]
public string FName { get; set; }
/// <summary>
/// نام خانوادگی
/// </summary>
[Required]
public string LName { get; set; }
/// <summary>
/// آیدی معرف
/// </summary>
[Required]
public long RepresentativeId { get; set; }
/// <summary>
/// کد ملی
/// </summary>
[Required]
public string NationalCode { get; set; }
/// <summary>
/// شماره شناسنامه
/// </summary>
[Required]
public string IdNumber { get; set; }
/// <summary>
/// کد طرف حساب
/// </summary>
[Required]
public int ArchiveCode { get; set; }
/// <summary>
/// نام مستعار
/// </summary>
public string SureName { get; set; }
/// <summary>
/// شماره تلفن
/// </summary>
public string PhoneNumber { get; set; }
/// <summary>
/// شماره تلفن نماینده
/// </summary>
public string AgentPhone { get; set; }
/// <summary>
/// استان
/// </summary>
public string State { get; set; }
/// <summary>
/// شهر
/// </summary>
public string City { get; set; }
/// <summary>
/// محله
/// </summary>
public string Zone { get; set; }
/// <summary>
/// نشانی
/// </summary>
public string Address { get; set; }
}

View File

@@ -0,0 +1,12 @@
namespace CompanyManagment.App.Contracts.PersonalContractingParty;
/// <summary>
/// ویرایش طرف حساب حقوقی
/// </summary>
public class EditLegalContractingParty:CreateLegalContractingParty
{
/// <summary>
/// آیدی طرف حساب
/// </summary>
public long Id { get; set; }
}

View File

@@ -0,0 +1,13 @@
namespace CompanyManagment.App.Contracts.PersonalContractingParty;
/// <summary>
/// ویرایش طرف حساب حقیقی
/// </summary>
public class EditRealContractingParty:CreateRealContractingParty
{
/// <summary>
/// آیدی طرف حساب
/// </summary>
public long Id { get; set; }
}

View File

@@ -0,0 +1,12 @@
namespace CompanyManagment.App.Contracts.PersonalContractingParty;
/// <summary>
/// شماره ملی یا شناسه ملی بر اساس حقیقی یا حقوقی بودن
/// </summary>
public class GetContractingPartyNationalCodeOrNationalIdViewModel
{
/// <summary>
/// شماره ملی یا شناسه ملی
/// </summary>
public string NationalCodeOrNationalId { get; set; }
}

View File

@@ -0,0 +1,83 @@
namespace CompanyManagment.App.Contracts.PersonalContractingParty;
/// <summary>
/// ویو مدل جزئیات طرف حساب حقوقی
/// </summary>
public class GetLegalContractingPartyDetailsViewModel
{
/// <summary>
/// آیدی طرف حساب
/// </summary>
public long Id { get; set; }
/// <summary>
/// نام کامل شرکت(به همراه نام مستعار)ء
/// </summary>
public string CompanyFullName { get; set; }
/// <summary>
/// نام شرکت (بدون نام مستعار)ء
/// </summary>
public string CompanyName { get; set; }
/// <summary>
/// نام مستعار
/// </summary>
public string SureName { get; set; }
/// <summary>
/// شماره ثبت
/// </summary>
public string RegisterId { get; set; }
/// <summary>
/// شماره ملی
/// </summary>
public string NationalId { get; set; }
/// <summary>
/// شماره تماس
/// </summary>
public string PhoneNumber { get; set; }
/// <summary>
/// شماره تماس نماینده
/// </summary>
public string AgentPhone { get; set; }
/// <summary>
/// آدرس
/// </summary>
public string Address { get; set; }
/// <summary>
/// معرف
/// </summary>
public string RepresentativeName { get; set; }
/// <summary>
/// آیدی معرف
/// </summary>
public long RepresentativeId { get; set; }
/// <summary>
/// کد طرف حساب
/// </summary>
public int ArchiveCode { get; set; }
/// <summary>
/// استان
/// </summary>
public string State { get; set; }
/// <summary>
/// شهر
/// </summary>
public string City { get; set; }
/// <summary>
/// محله
/// </summary>
public string Zone { get; set; }
}

View File

@@ -0,0 +1,94 @@
using System.Runtime.CompilerServices;
using Microsoft.AspNetCore.Builder;
namespace CompanyManagment.App.Contracts.PersonalContractingParty;
/// <summary>
/// ویو مدل جزئیات طرف حساب حقیقی
/// </summary>
public class GetRealContractingPartyDetailsViewModel
{
/// <summary>
/// آیدی طرف حساب
/// </summary>
public long Id { get; set; }
/// <summary>
/// نام
/// </summary>
public string FName { get; set; }
/// <summary>
/// نام خانوادگی
/// </summary>
public string LName { get; set; }
/// <summary>
/// نام و نام خانوادگی
/// </summary>
public string FullName { get; set; }
/// <summary>
/// کد ملی
/// </summary>
public string NationalCode { get; set; }
/// <summary>
/// شماره شناسنامه
/// </summary>
public string IdNumber { get; set; }
/// <summary>
/// شماره تلفن
/// </summary>
public string PhoneNumber { get; set; }
/// <summary>
/// شماره تلفن نماینده
/// </summary>
public string AgentPhone { get; set; }
/// <summary>
/// آدرس
/// </summary>
public string Address { get; set; }
/// <summary>
/// نام معرف
/// </summary>
public string RepresentativeName { get; set; }
/// <summary>
/// آیدی معرف
/// </summary>
public long RepresentativeId { get; set; }
/// <summary>
/// نام مستعار
/// </summary>
public string SureName { get; set; }
/// <summary>
/// کد طرف حساب
/// </summary>
public int ArchiveCode { get; set; }
/// <summary>
/// استان
/// </summary>
public string State { get; set; }
/// <summary>
/// شهر
/// </summary>
public string City { get; set; }
/// <summary>
/// محله
/// </summary>
public string Zone { get; set; }
}

View File

@@ -1,5 +1,6 @@
using _0_Framework.Application;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace CompanyManagment.App.Contracts.PersonalContractingParty;
@@ -54,4 +55,79 @@ public interface IPersonalContractingPartyApp
#endregion
#region Api
/// <summary>
/// لیست طرف حساب ها
/// </summary>
/// <param name="searchModel"></param>
/// <returns></returns>
Task<ICollection<ContractingPartyGetListViewModel>> GetList(ContractingPartyGetListSearchModel searchModel);
/// <summary>
/// لیست طرف حساب برای سلکت لیست سرچ
/// </summary>
/// <returns></returns>
Task<List<ContractingPartySelectListViewModel>> GetSelectList();
/// <summary>
/// ایجاد طرف حساب حقیقی
/// </summary>
/// <param name="command"></param>
/// <returns></returns>
Task<OperationResult> CreateReal(CreateRealContractingParty command);
/// <summary>
/// ایجاد ظرف حساب حقوقی
/// </summary>
/// <param name="command"></param>
/// <returns></returns>
Task<OperationResult> CreateLegal(CreateLegalContractingParty command);
/// <summary>
/// لیستی از شماره ملی یا شناسه ملی بر اساس حقیقی یا حقوقی بودن
/// </summary>
/// <returns></returns>
Task<List<GetContractingPartyNationalCodeOrNationalIdViewModel>> GetNationalCodeOrNationalId();
/// <summary>
/// حذف طرف حساب. در صورتی که طرف حساب دارای قرارداد مالی یا دارای کارفرما باشد غیرفعال میشود
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task<OperationResult<string>> Delete(long id);
/// <summary>
/// ویرایش طرف حساب حقیقی
/// </summary>
/// <param name="command"></param>
/// <returns></returns>
OperationResult EditRealApi(EditRealContractingParty command);
/// <summary>
/// ویرایش طرف حساب حقوقی
/// </summary>
/// <param name="command"></param>
/// <returns></returns>
OperationResult EditLegal(EditLegalContractingParty command);
/// <summary>
/// گرفتن جزئیات طرف حساب حقوقی
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task<GetRealContractingPartyDetailsViewModel> GetRealDetails(long id);
/// <summary>
/// گرفتن جزئیات طرف حساب حقوقی
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task<GetLegalContractingPartyDetailsViewModel> GetLegalDetails(long id);
#endregion
}

View File

@@ -47,4 +47,6 @@ public class PersonalContractingPartyViewModel
public bool IsAuthenticated { get; set; }
public List<EmployerViewModel> EmployerList { get; set; }
}

View File

@@ -6,12 +6,10 @@ public class ShiftList
{
public DateTime Start { get; set; }
public DateTime End { get; set; }
public DateTime EndWithOutResTime { get; set; }
/// <summary>
/// تاخیر در ورود (مدت زمانی که کارمند با تأخیر وارد شده است)
/// </summary>
public TimeSpan LateEntryDuration { get; set; }
/// <summary>
/// تاخیر در ورود (مدت زمانی که کارمند با تأخیر وارد شده است)
/// </summary>
public TimeSpan LateEntryDuration { get; set; }
/// <summary>
/// تعجیل در ورود (مدت زمانی که کارمند زودتر از زمان مشخص وارد شده است)

View File

@@ -1,4 +1,5 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using _0_Framework.Application;
using CompanyManagment.App.Contracts.InstitutionPlan;
@@ -38,7 +39,7 @@ public interface ITemporaryClientRegistrationApplication
/// </summary>
/// <param name="command"></param>
/// <returns></returns>
Task<OperationResult> CreateOrUpdateWorkshopTemp(List<WorkshopTempViewModel> command);
Task<OperationResult> CreateOrUpdateWorkshopTemp(List<WorkshopTempViewModel> command, long contractingPartyTempId);
/// <summary>
/// دریافت جمع کل خدمات برای یک کارگاه
@@ -55,14 +56,14 @@ public interface ITemporaryClientRegistrationApplication
/// <param name="paymentModel"></param>
/// <returns></returns>
Task<ReviewAndPaymentViewModel> GetTotalPaymentAndWorkshopList(long contractingPartyTempId,
string periodModel = "12", string paymentModel = "OneTime");
string periodModel = "12", string paymentModel = "OneTime", string contractStartType = "currentMonth");
/// <summary>
/// ایجاد یا ویرایش قرارداد موقت
/// </summary>
/// <param name="contractingPartyTempId"></param>
/// <returns></returns>
Task<OperationResult> CreateOrUpdateInstitutionContractTemp(long contractingPartyTempId, string periodModel, string paymentModel, double totalPayment, double valueAddedTax);
Task<OperationResult> CreateOrUpdateInstitutionContractTemp(long contractingPartyTempId, string periodModel, string paymentModel, double totalPayment, double valueAddedTax, DateTime contractStart);
/// <summary>
/// دریافت کد برای کلاینت

View File

@@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CompanyManagment.App.Contracts.TemporaryClientRegistration;
public class MonthlyInstallment
{
/// <summary>
/// مبلغ قسط ماهانه
/// </summary>
public string InstallmentAmountStr { get; set; }
/// <summary>
/// تاریخ قسط ماهانه
/// </summary>
public string InstalmentDate { get; set; }
/// <summary>
/// شمارنده قسط
/// </summary>
public string InstallmentCounter{ get; set; }
}

View File

@@ -1,4 +1,5 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
namespace CompanyManagment.App.Contracts.TemporaryClientRegistration;
@@ -23,28 +24,54 @@ public class ReviewAndPaymentViewModel
/// مبلغ پرداخت بدون مالیات
/// Double
/// </summary>
public double WithoutTaxPaymentDouble { get; set; }
public double OneTimeWithoutTaxPaymentDouble { get; set; }
/// <summary>
/// مبلغ پرداخت بدون مالیات
/// string
/// </summary>
public string WithoutTaxPaymentStr { get; set; }
public string OneTimeWithoutTaxPaymentStr { get; set; }
/// <summary>
/// مبلغ پرداخت کامل
/// Double
/// </summary>
public double TotalPaymentDouble { get; set; }
public double OneTimeTotalPaymentDouble { get; set; }
/// <summary>
/// مبلغ پرداخت کامل
/// string
/// </summary>
public string TotalPaymentStr { get; set; }
public string OneTimeTotalPaymentStr { get; set; }
/// <summary>
/// مبلغ پرداخت بدون مالیات
/// Double
/// </summary>
public double MonthlyWithoutTaxPaymentDouble { get; set; }
/// <summary>
/// مبلغ پرداخت بدون مالیات
/// string
/// </summary>
public string MonthlyWithoutTaxPaymentStr { get; set; }
/// <summary>
/// مبلغ پرداخت کامل
/// Double
/// </summary>
public double MonthlyTotalPaymentDouble { get; set; }
/// <summary>
/// مبلغ پرداخت کامل
/// string
/// </summary>
public string MonthlyTotalPaymentStr { get; set; }
/// <summary>
/// مالیات بر ارزش افزوده
/// Double
@@ -83,4 +110,52 @@ public class ReviewAndPaymentViewModel
/// آی دی طرف حساب
/// </summary>
public long ContractingPartTempId { get; set; }
/// <summary>
/// لیست اقساط ماهیانه
/// </summary>
public List<MonthlyInstallment> MonthlyInstallments { get; set; }
/// <summary>
/// تاریخ شروع قرارداد در اول ماه جاری
/// -
/// شمسی
/// </summary>
public string ContractStartCurrentMonthFa { get; set; }
/// <summary>
/// تاریخ شروع قرارداد در اول ماه جاری
/// -
/// میلادی
/// </summary>
public DateTime ContractStartCurrentMonthGr { get; set; }
/// <summary>
/// تاریخ شروع قرارداد در اول ماه بعد
/// -
/// شمسی
/// </summary>
public string ContractStartNextMonthFa{ get; set; }
/// <summary>
/// تاریخ شروع قرارداد در اول ماه بعد
/// -
/// میلادی
/// </summary>
public DateTime ContractStartNextMonthGr { get; set; }
/// <summary>
/// تاریخ پایان قرارداد
/// -
/// میلادی
/// </summary>
public DateTime ContractEndGr { get; set; }
/// <summary>
/// تاریخ پایان قرارداد
/// -
/// شمسی
/// </summary>
public string ContractEndFa { get; set; }
}

View File

@@ -26,21 +26,4 @@ public class ConnectedPersonnelViewModel
public string BonusesOptions { get; set; }
//نحوه محاسبه سنوات
public string YearsOptions { get; set; }
/// <summary>
/// ایجاد قرارداد
/// </summary>
public bool CreateContract { get; set; }
/// <summary>
/// امضای قرارداد
/// </summary>
public bool SignContract { get; set; }
/// <summary>
/// ایجاد تصفیه
/// </summary>
public bool CreateCheckout { get; set; }
/// <summary>
/// امضای تصفیه
/// </summary>
public bool SignCheckout { get; set; }
}

View File

@@ -1,6 +1,5 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using _0_Framework.Application;
using AccountManagement.Application.Contracts.Account;
using CompanyManagment.App.Contracts.Employer;
using CompanyManagment.App.Contracts.InsuranceJob;
@@ -117,29 +116,4 @@ public class CreateWorkshop
/// </summary>
public bool InsuranceCheckoutFamilyAllowance { get; set; }
/// <summary>
/// ایجاد قرارداد
/// </summary>
public bool CreateContract { get; set; }
/// <summary>
/// امضاء قراداد
/// </summary>
public bool SignContract { get; set; }
/// <summary>
/// ایجات تصفیه حساب
/// </summary>
public bool CreateCheckout { get; set; }
/// <summary>
/// امضاء تصفیه حساب
/// </summary>
public bool SignCheckout { get; set; }
/// <summary>
/// اگر قرارداد بیش از یک ماه باشد و گزینه انتخاب شده منتهی به پایان سال باشد
/// این آیتم
/// True
/// است
/// </summary>
public IsActive CutContractEndOfYear { get; set; }
}

View File

@@ -1,5 +1,4 @@
using System.Collections.Generic;
using _0_Framework.Application;
using CompanyManagment.App.Contracts.Employee;
using CompanyManagment.App.Contracts.Employer;
using CompanyManagment.App.Contracts.LeftWork;
@@ -81,31 +80,5 @@ public class WorkshopViewModel
public string HasRollCallFreeVip { get; set; }
#endregion
/// <summary>
/// ایجاد قرارداد
/// </summary>
public bool CreateContract { get; set; }
/// <summary>
/// امضاء قراداد
/// </summary>
public bool SignContract { get; set; }
/// <summary>
/// ایجات تصفیه حساب
/// </summary>
public bool CreateCheckout { get; set; }
/// <summary>
/// امضاء تصفیه حساب
/// </summary>
public bool SignCheckout { get; set; }
/// <summary>
/// اگر قرارداد بیش از یک ماه باشد و گزینه انتخاب شده منتهی به پایان سال باشد
/// این آیتم
/// True
/// است
/// </summary>
public IsActive CutContractEndOfYear { get; set; }
#endregion
}

View File

@@ -25,5 +25,4 @@ public interface IYearlySalaryApplication
InsuranceYearlySalaryModel GetInsuranceItems(DateTime startDate, DateTime endDate, string year);
#endregion
}

View File

@@ -48,9 +48,9 @@ public class AndroidApkVersionApplication : IAndroidApkVersionApplication
Directory.CreateDirectory(path);
//var apk = new ApkReader.ApkReader().Read(file.OpenReadStream());
var apk = new ApkReader.ApkReader().Read(file.OpenReadStream());
string uniqueFileName = $"{Path.GetFileNameWithoutExtension(file.FileName)}{Path.GetExtension(file.FileName)}";
string uniqueFileName = $"{Path.GetFileNameWithoutExtension(file.FileName)}.v{apk.VersionName}{Path.GetExtension(file.FileName)}";
string filepath = Path.Combine(path, uniqueFileName);
@@ -60,7 +60,7 @@ public class AndroidApkVersionApplication : IAndroidApkVersionApplication
await file.CopyToAsync(stream);
}
var entity = new AndroidApkVersion("0", "0", IsActive.True, filepath);
var entity = new AndroidApkVersion(apk.VersionName, apk.VersionCode, IsActive.True, filepath);
_androidApkVersionRepository.Create(entity);
_androidApkVersionRepository.SaveChanges();
return op.Succcedded();

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,70 @@
using System.Text.RegularExpressions;
using _0_Framework.Application;
using Company.Domain.ContactUsAgg;
using CompanyManagment.App.Contracts.ContactUs;
namespace CompanyManagment.Application;
public class ContactUsApplication : IContactUsApplication
{
private readonly IContactUsRepository _contactUsRepository;
public ContactUsApplication(IContactUsRepository contactUsRepository)
{
_contactUsRepository = contactUsRepository;
}
public OperationResult Create(CreateContactUs command)
{
var op = new OperationResult();
if (string.IsNullOrWhiteSpace(command.FirstName))
{
return op.Failed("لطفا نام خود را وارد کنید");
}
if (string.IsNullOrWhiteSpace(command.LastName))
{
return op.Failed("لطفا نام خانوادگی خود را وارد کنید");
}
if (string.IsNullOrWhiteSpace(command.Email))
{
return op.Failed("لطفا ایمیل خود را وارد کنید");
}
if (string.IsNullOrWhiteSpace(command.PhoneNumber))
{
return op.Failed("لطفا شماره تماس خود را وارد کنید");
}
if (!Regex.IsMatch(command.PhoneNumber, @"^(\+98|0)?9\d{9}$"))
{
return op.Failed("شماره تماس وارد شده نامعتبر است");
}
if (!Regex.IsMatch(command.Email, @"^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$"))
{
return op.Failed("ایمیل وارد شده نامعتبر است");
}
if (string.IsNullOrWhiteSpace(command.Title))
{
return op.Failed("لطفا عنوان پیغام خود را وارد کنید");
}
if (string.IsNullOrWhiteSpace(command.Message))
{
return op.Failed("لطفا پیغام خود را وارد کنید");
}
var entity = new ContactUs(command.FirstName, command.LastName, command.Email, command.PhoneNumber,
command.Title, command.Message);
_contactUsRepository.Create(entity);
_contactUsRepository.SaveChanges();
return op.Succcedded();
}
}

View File

@@ -19,12 +19,13 @@ using System.IO;
using System.Linq;
using System.Threading.Tasks;
using System.Transactions;
using CompanyManagment.App.Contracts.RollCall;
using Microsoft.EntityFrameworkCore.Query;
using Company.Domain.CheckoutAgg;
using Company.Domain.CustomizeCheckoutAgg;
using Company.Domain.CustomizeCheckoutTempAgg;
using CompanyManagment.EFCore.Repository;
using CompanyManagment.App.Contracts.RollCall;
using Hangfire.States;
using Microsoft.AspNetCore.Mvc.ModelBinding.Validation;
using Microsoft.EntityFrameworkCore.Query;
namespace CompanyManagment.Application;
@@ -372,10 +373,10 @@ public class CustomizeWorkshopSettingsApplication(ICustomizeWorkshopSettingsRepo
}
if (customizeWorkshopGroupSettings.MainGroup)
{
var createDefaultEmployee = CreateEmployeeSettings(command);
return createDefaultEmployee;
}
{
var createDefaultEmployee = CreateEmployeeSettings(command);
return createDefaultEmployee;
}
List<CustomizeWorkshopEmployeeSettingsShift> shiftCollection = new List<CustomizeWorkshopEmployeeSettingsShift>();
@@ -557,7 +558,13 @@ public class CustomizeWorkshopSettingsApplication(ICustomizeWorkshopSettingsRepo
_customizeWorkshopEmployeeSettingsRepository.Create(entity);
entity.SimpleEdit(shiftCollection, command.IrregularShift, command.WorkshopShiftStatus, command.BreakTime, isChanged, command.FridayWork, command.HolidayWork, rotatingShift);
entity.SimpleEdit(shiftCollection, command.IrregularShift, command.WorkshopShiftStatus, command.BreakTime, isChanged, command.FridayWork, command.HolidayWork, rotatingShift);
var employeeSalary = command.Salary?.MoneyToDouble() ?? 0;
if (employeeSalary > 0)
{
entity.SetSalary(employeeSalary);
}
_customizeWorkshopGroupSettingsRepository.SaveChanges();
return op.Succcedded();
@@ -681,7 +688,7 @@ public class CustomizeWorkshopSettingsApplication(ICustomizeWorkshopSettingsRepo
return op.Succcedded();
}
public OperationResult EditSimpleRollCallGroupSetting(EditCustomizeWorkshopGroupSettings command,
List<ReCalculateRollCallValues> reCalculateCommand)
List<ReCalculateRollCallValues> reCalculateCommand)
{
OperationResult op = new();
@@ -712,15 +719,15 @@ public class CustomizeWorkshopSettingsApplication(ICustomizeWorkshopSettingsRepo
{
groupSettingsShifts = command.ShiftViewModel.Select(x =>
{
if (!TimeOnly.TryParseExact(x.StartTime, "HH:mm", out TimeOnly start))
throw new InvalidDataException();
if (!TimeOnly.TryParseExact(x.EndTime, "HH:mm", out TimeOnly end))
throw new InvalidDataException();
{
if (!TimeOnly.TryParseExact(x.StartTime, "HH:mm", out TimeOnly start))
throw new InvalidDataException();
if (!TimeOnly.TryParseExact(x.EndTime, "HH:mm", out TimeOnly end))
throw new InvalidDataException();
return new CustomizeWorkshopGroupSettingsShift(start, end, x.Placement);
return new CustomizeWorkshopGroupSettingsShift(start, end, x.Placement);
}).ToList();
}).ToList();
if (groupSettingsShifts.All(x => workshopSettings.CustomizeWorkshopSettingsShifts.Any(y => x.Equals(y)))
&& command.WorkshopShiftStatus == workshopSettings.WorkshopShiftStatus && command.FridayWork == workshopSettings.FridayWork &&
@@ -1589,10 +1596,6 @@ public class CustomizeWorkshopSettingsApplication(ICustomizeWorkshopSettingsRepo
return _customizeWorkshopGroupSettingsRepository.GetEmployeesGroupSettingsByEmployeeId(employeeId, workshopId);
}
public bool HasAnyEmployeeWithoutGroup(long workshopId)
{
return _customizeWorkshopGroupSettingsRepository.HasAnyEmployeeWithoutGroup(workshopId);
}
public OperationResult<List<long>> ValidateReCalculateValueForGroupEdit(List<ReCalculateRollCallValues> commands,
long workshopId)
{
@@ -1623,10 +1626,16 @@ public class CustomizeWorkshopSettingsApplication(ICustomizeWorkshopSettingsRepo
employeeIdsHasCheckout = employeeIdsHasCheckout.Distinct().ToList();
return isSuccess ?
operationResult.Succcedded(employeeIdsHasCheckout)
operationResult.Succcedded(employeeIdsHasCheckout)
:
operationResult.Failed("پرسنل هایی دارای فیش هستند لطفا نسبت به تعیین تکلیف این ها اقدام نمایید", employeeIdsHasCheckout);
}
public bool HasAnyEmployeeWithoutGroup(long workshopId)
{
return _customizeWorkshopGroupSettingsRepository.HasAnyEmployeeWithoutGroup(workshopId);
}
public bool CheckEmployeeShiftHasChanged(EditCustomizeEmployeeSettings command)
{
return _customizeWorkshopEmployeeSettingsRepository.CheckEmployeeShiftHasChanged(command);

View File

@@ -1,35 +1,38 @@
using System;
using System.IO;
using System.Collections.Generic;
using _0_Framework.Application;
using _0_Framework.InfraStructure;
using Company.Domain.EmployeeAgg;
using CompanyManagment.App.Contracts.Employee;
using CompanyManagment.EFCore;
using _0_Framework.Application;
using CompanyManagment.App.Contracts.EmployeeInsuranceRecord;
using Company.Domain.EmployeeInsuranceRecordAgg;
using Company.Domain.LeftWorkAgg;
using Company.Domain.WorkshopAgg;
using CompanyManagment.App.Contracts.Employee;
using CompanyManagment.App.Contracts.EmployeeInsuranceRecord;
using CompanyManagment.EFCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Transactions;
using Company.Domain.EmployeeClientTempAgg;
using Company.Domain.PersonnelCodeAgg;
using EmployeeInsuranceRecord = Company.Domain.EmployeeInsuranceRecordAgg.EmployeeInsuranceRecord;
using Microsoft.AspNetCore.Hosting;
using System.IO;
using _0_Framework.Application.UID;
using Company.Domain.CustomizeWorkshopEmployeeSettingsAgg;
using Company.Domain.CustomizeWorkshopGroupSettingsAgg;
using Company.Domain.EmployeeDocumentsAgg;
using Company.Domain.LeftWorkTempAgg;
using Company.Domain.RollCallEmployeeAgg;
using CompanyManagment.App.Contracts.CustomizeWorkshopSettings;
using CompanyManagment.App.Contracts.EmployeeBankInformation;
using CompanyManagment.App.Contracts.EmployeeDocuments;
using CompanyManagment.App.Contracts.RollCallEmployeeStatus;
using Microsoft.AspNetCore.Hosting;
using System.IO;
using System.Transactions;
using Company.Domain.EmployeeClientTempAgg;
using Company.Domain.LeftWorkTempAgg;
using CompanyManagment.App.Contracts.LeftWorkTemp;
using _0_Framework.Application.UID;
using Company.Domain.CustomizeWorkshopEmployeeSettingsAgg;
using Company.Domain.EmployeeDocumentsAgg;
using Company.Domain.RollCallEmployeeAgg;
using Company.Domain.CustomizeWorkshopGroupSettingsAgg;
using Company.Domain.LeftWorkAgg;
using RollCallEmployee = Company.Domain.RollCallEmployeeAgg.RollCallEmployee;
using CompanyManagment.App.Contracts.Employee.DTO;
using CompanyManagment.App.Contracts.LeftWorkTemp;
using System.Reflection;
using Company.Domain.EmployeeAuthorizeTempAgg;
using Company.Domain.RollCallServiceAgg;
using Microsoft.Extensions.Configuration;
using Company.Domain.LeftWorkInsuranceAgg;
namespace CompanyManagment.Application;
@@ -38,6 +41,9 @@ public class EmployeeAplication : RepositoryBase<long, Employee>, IEmployeeAppli
{
private readonly IEmployeeRepository _EmployeeRepository;
private readonly IWorkshopRepository _WorkShopRepository;
private readonly ILeftWorkRepository _leftWorkRepository;
private readonly IPersonnelCodeRepository _personnelCodeRepository;
private readonly IEmployeeClientTempRepository _employeeClientTempRepository;
private readonly CompanyContext _context;
public bool nationalCodValid = false;
public bool idnumberIsOk = true;
@@ -55,17 +61,32 @@ public class EmployeeAplication : RepositoryBase<long, Employee>, IEmployeeAppli
private readonly ILeftWorkTempRepository _leftWorkTempRepository;
private readonly IUidService _uidService;
private readonly ICustomizeWorkshopEmployeeSettingsRepository _customizeWorkshopEmployeeSettingsRepository;
private readonly ILeftWorkRepository _leftWorkRepository;
private readonly IPersonnelCodeRepository _personnelCodeRepository;
private readonly IEmployeeClientTempRepository _employeeClientTempRepository;
private readonly ICustomizeWorkshopGroupSettingsRepository _customizeWorkshopGroupSettingsRepository;
private readonly IEmployeeAuthorizeTempRepository _employeeAuthorizeTempRepository;
private readonly ILeftWorkInsuranceRepository _leftWorkInsuranceRepository ;
private readonly IRollCallServiceRepository _rollCallServiceRepository;
public EmployeeAplication(IEmployeeRepository employeeRepository, CompanyContext context, IWorkshopRepository workShopRepository, IWebHostEnvironment webHostEnvironment, IRollCallEmployeeStatusApplication rollCallEmployeeStatusApplication, IRollCallEmployeeRepository rollCallEmployeeRepository, ICustomizeWorkshopSettingsApplication customizeWorkshopSettingsApplication, IEmployeeDocumentsApplication employeeDocumentsApplication, IEmployeeDocumentsRepository employeeDocumentsRepository, IEmployeeBankInformationApplication employeeBankInformationApplication, ILeftWorkTempRepository leftWorkTempRepository, IUidService uidService, ICustomizeWorkshopEmployeeSettingsRepository customizeWorkshopEmployeeSettingsRepository, IPersonnelCodeRepository personnelCodeRepository, IEmployeeClientTempRepository employeeClientTempRepository, ICustomizeWorkshopGroupSettingsRepository customizeWorkshopGroupSettingsRepository, ILeftWorkRepository leftWorkRepository, IEmployeeAuthorizeTempRepository employeeAuthorizeTempRepository, ILeftWorkInsuranceRepository leftWorkInsuranceRepository) : base(context)
public EmployeeAplication(IEmployeeRepository employeeRepository, CompanyContext context,
IWorkshopRepository workShopRepository,
ILeftWorkRepository leftWorkRepository, IPersonnelCodeRepository personnelCodeRepository,
IEmployeeClientTempRepository employeeClientTempRepository, IWebHostEnvironment webHostEnvironment,
IRollCallEmployeeStatusApplication rollCallEmployeeStatusApplication,
IRollCallEmployeeRepository rollCallEmployeeRepository,
ICustomizeWorkshopGroupSettingsRepository customizeWorkshopGroupSettingsRepository,
ICustomizeWorkshopSettingsApplication customizeWorkshopSettingsApplication,
IEmployeeDocumentsApplication employeeDocumentsApplication,
IEmployeeBankInformationApplication employeeBankInformationApplication,
ILeftWorkTempRepository leftWorkTempRepository,
IUidService uidService,
ICustomizeWorkshopEmployeeSettingsRepository customizeWorkshopEmployeeSettingsRepository,
IEmployeeAuthorizeTempRepository employeeAuthorizeTempRepository,
IRollCallServiceRepository rollCallServiceRepository, ILeftWorkInsuranceRepository leftWorkInsuranceRepository) : base(context)
{
_context = context;
_WorkShopRepository = workShopRepository;
_EmployeeRepository = employeeRepository;
this._leftWorkRepository = leftWorkRepository;
_personnelCodeRepository = personnelCodeRepository;
_employeeClientTempRepository = employeeClientTempRepository;
_webHostEnvironment = webHostEnvironment;
_rollCallEmployeeStatusApplication = rollCallEmployeeStatusApplication;
_rollCallEmployeeRepository = rollCallEmployeeRepository;
@@ -75,19 +96,17 @@ public class EmployeeAplication : RepositoryBase<long, Employee>, IEmployeeAppli
_leftWorkTempRepository = leftWorkTempRepository;
_uidService = uidService;
_customizeWorkshopEmployeeSettingsRepository = customizeWorkshopEmployeeSettingsRepository;
_personnelCodeRepository = personnelCodeRepository;
_employeeClientTempRepository = employeeClientTempRepository;
_leftWorkRepository = leftWorkRepository;
_employeeAuthorizeTempRepository = employeeAuthorizeTempRepository;
_leftWorkInsuranceRepository = leftWorkInsuranceRepository;
_EmployeeRepository = employeeRepository;
_rollCallServiceRepository = rollCallServiceRepository;
}
public OperationResult Create(CreateEmployee command)
{
var opration = new OperationResult();
if (_EmployeeRepository.Exists(x =>
x.LName == command.LName && x.NationalCode == command.NationalCode && !string.IsNullOrWhiteSpace(command.NationalCode) && x.NationalCode != null && x.IsActiveString == "true"))
x.LName == command.LName && x.NationalCode == command.NationalCode && !string.IsNullOrWhiteSpace(command.NationalCode) && x.NationalCode != null))
return opration.Failed("امکان ثبت رکورد تکراری وجود ندارد");
//if (_EmployeeRepository.Exists(x => x.IdNumber == command.IdNumber && x.IdNumber !=null))
@@ -105,7 +124,7 @@ public class EmployeeAplication : RepositoryBase<long, Employee>, IEmployeeAppli
//}
if (command.Address != null && command.State == null)
{
@@ -144,8 +163,8 @@ public class EmployeeAplication : RepositoryBase<long, Employee>, IEmployeeAppli
{
case "0000000000":
case "1111111111":
case "22222222222":
case "33333333333":
case "2222222222":
case "3333333333":
case "4444444444":
case "5555555555":
case "6666666666":
@@ -197,9 +216,9 @@ public class EmployeeAplication : RepositoryBase<long, Employee>, IEmployeeAppli
return opration.Failed("کد ملی وارد شده تکراری است");
}
}
string initial = "1300/10/11";
var dateOfBirth = command.DateOfBirth != null ? command.DateOfBirth.ToGeorgianDateTime() : initial.ToGeorgianDateTime();
var dateOfIssue = command.DateOfIssue != null ? command.DateOfIssue.ToGeorgianDateTime() : initial.ToGeorgianDateTime();
@@ -224,9 +243,10 @@ public class EmployeeAplication : RepositoryBase<long, Employee>, IEmployeeAppli
return opration.Succcedded(employeeData.id);
}
public OperationResult Edit(EditEmployee command)
{
var opration = new OperationResult();
@@ -235,11 +255,11 @@ public class EmployeeAplication : RepositoryBase<long, Employee>, IEmployeeAppli
return opration.Failed("رکورد مورد نظر یافت نشد");
if (_EmployeeRepository.Exists(x =>
x.LName == command.LName && x.NationalCode == command.NationalCode && !string.IsNullOrWhiteSpace(command.NationalCode) && x.id != command.Id && x.IsActiveString == "true"))
x.LName == command.LName && x.NationalCode == command.NationalCode && !string.IsNullOrWhiteSpace(command.NationalCode) && x.id != command.Id))
return opration.Failed("امکان ثبت رکورد تکراری وجود ندارد");
//if (_EmployeeRepository.Exists(x => x.IdNumber == command.IdNumber && x.IdNumber != null && x.id != command.Id))
// return opration.Failed("شماره شناسنامه وارد شده تکراری است");
if (command.Address != null && command.State == null)
{
StatCity = false;
@@ -277,8 +297,8 @@ public class EmployeeAplication : RepositoryBase<long, Employee>, IEmployeeAppli
{
case "0000000000":
case "1111111111":
case "22222222222":
case "33333333333":
case "2222222222":
case "3333333333":
case "4444444444":
case "5555555555":
case "6666666666":
@@ -331,7 +351,7 @@ public class EmployeeAplication : RepositoryBase<long, Employee>, IEmployeeAppli
}
}
string initial = "1300/10/11";
var dateOfBirth = command.DateOfBirth != null ? command.DateOfBirth.ToGeorgianDateTime() : initial.ToGeorgianDateTime();
var dateOfIssue = command.DateOfIssue != null ? command.DateOfIssue.ToGeorgianDateTime() : initial.ToGeorgianDateTime();
@@ -339,7 +359,7 @@ public class EmployeeAplication : RepositoryBase<long, Employee>, IEmployeeAppli
dateOfIssue,
command.PlaceOfIssue, command.NationalCode, command.IdNumber, command.Gender, command.Nationality,
command.Phone, command.Address,
command.State,command.City, command.MaritalStatus, command.MilitaryService, command.LevelOfEducation,
command.State, command.City, command.MaritalStatus, command.MilitaryService, command.LevelOfEducation,
command.FieldOfStudy, command.BankCardNumber,
command.BankBranch, command.InsuranceCode, command.InsuranceHistoryByYear,
command.InsuranceHistoryByMonth, command.NumberOfChildren, command.OfficePhone
@@ -352,7 +372,7 @@ public class EmployeeAplication : RepositoryBase<long, Employee>, IEmployeeAppli
return opration.Succcedded();
}
public EditEmployee GetDetails(long id)
@@ -360,6 +380,11 @@ public class EmployeeAplication : RepositoryBase<long, Employee>, IEmployeeAppli
return _EmployeeRepository.GetDetails(id);
}
public EditEmployee GetDetailsIgnoreQueryFilter(long id)
{
return _EmployeeRepository.GetDetails(id);
}
public OperationResult Active(long id)
{
var opration = new OperationResult();
@@ -398,8 +423,8 @@ public class EmployeeAplication : RepositoryBase<long, Employee>, IEmployeeAppli
public async Task<List<EmployeeViewModel>> Search(EmployeeSearchModel searchModel)
{
var res=await _EmployeeRepository.Search(searchModel);
var res = await _EmployeeRepository.Search(searchModel);
foreach (var item in res)
{
var children = _context.EmployeeChildrenSet.Count(x => x.EmployeeId == item.Id);
@@ -690,8 +715,8 @@ public class EmployeeAplication : RepositoryBase<long, Employee>, IEmployeeAppli
{
case "0000000000":
case "1111111111":
case "22222222222":
case "33333333333":
case "2222222222":
case "3333333333":
case "4444444444":
case "5555555555":
case "6666666666":
@@ -820,8 +845,8 @@ public class EmployeeAplication : RepositoryBase<long, Employee>, IEmployeeAppli
{
case "0000000000":
case "1111111111":
case "22222222222":
case "33333333333":
case "2222222222":
case "3333333333":
case "4444444444":
case "5555555555":
case "6666666666":
@@ -901,11 +926,17 @@ public class EmployeeAplication : RepositoryBase<long, Employee>, IEmployeeAppli
return res;
}
#endregion
#region Pooya
public List<EmployeeViewModel> GetWorkingEmployeesByWorkshopId(long workshopId)
{
return _EmployeeRepository.GetWorkingEmployeesByWorkshopId(workshopId);
}
public EmployeeViewModel GetEmployeeByNationalCodeIfHasActiveLeftWork(string nationalCode, List<long> workshopIds)
{
if (nationalCode.NationalCodeValid() != "valid")
@@ -913,7 +944,6 @@ public class EmployeeAplication : RepositoryBase<long, Employee>, IEmployeeAppli
var workshopEmployeesWithLeftWork = _EmployeeRepository.GetWorkingEmployeesByWorkshopIdsAndNationalCodeAndDate(workshopIds, nationalCode, DateTime.Now.Date);
return workshopEmployeesWithLeftWork.FirstOrDefault();
}
public EmployeeViewModel GetEmployeeByNationalCodeIfHasLeftWork(string nationalCode, List<long> workshopIds)
{
if (nationalCode.NationalCodeValid() != "valid")
@@ -921,11 +951,8 @@ public class EmployeeAplication : RepositoryBase<long, Employee>, IEmployeeAppli
var workshopEmployeesWithLeftWork = _EmployeeRepository.GetWorkedEmployeesByWorkshopIdsAndNationalCodeAndDate(workshopIds, nationalCode, DateTime.Now.Date);
return workshopEmployeesWithLeftWork.FirstOrDefault();
}
public List<EmployeeViewModel> GetWorkingEmployeesByWorkshopId(long workshopId)
{
return _EmployeeRepository.GetWorkingEmployeesByWorkshopId(workshopId);
}
public List<EmployeeViewModel> GetRangeByIds(IEnumerable<long> employeeIds)
{
@@ -961,6 +988,7 @@ public class EmployeeAplication : RepositoryBase<long, Employee>, IEmployeeAppli
}).ToList();
}
#endregion
#region Mahan
@@ -995,24 +1023,10 @@ public class EmployeeAplication : RepositoryBase<long, Employee>, IEmployeeAppli
//{
// return op.Failed("این پرسنل قبلا افزوده شده است و در انتظار تایید میباشد");
//}
var employee = _EmployeeRepository.GetByNationalCodeIgnoreQueryFilter(command.NationalCode);
var workshop = _WorkShopRepository.GetDetails(command.WorkshopId);
if (employee == null && command.CanceledAuthorize)
{
var birthDate = command.BirthDate.ToGeorgianDateTime();
var dateOfIssue = new DateTime(1922, 1, 1);
employee = new Employee(command.FirstName, command.LastName, null, birthDate,
dateOfIssue, null, command.NationalCode, null, command.Gender, "ایرانی", null, null);
_EmployeeRepository.Create(employee);
_EmployeeRepository.SaveChanges();
}
if (employee == null)
if (employee == null)
{
return op.Failed("خطای سیستمی. لطفا دوباره تلاش کنید . درصورت تکرار این مشکل با تیم پشتیبان تماس بگیرید");
}
@@ -1066,6 +1080,7 @@ public class EmployeeAplication : RepositoryBase<long, Employee>, IEmployeeAppli
_personnelCodeRepository.SaveChanges();
}
var rollCallService = _rollCallServiceRepository.GetActiveServiceByWorkshopId(command.WorkshopId);
if (string.IsNullOrWhiteSpace(command.RollCallUploadEmployeePicture?.Picture1) == false &&
string.IsNullOrWhiteSpace(command.RollCallUploadEmployeePicture?.Picture2) == false)
@@ -1075,14 +1090,14 @@ public class EmployeeAplication : RepositoryBase<long, Employee>, IEmployeeAppli
Directory.CreateDirectory(directoryPath);
var filePath1 = Path.Combine(directoryPath) + $@"\1.jpg";
CreateImageFromBase64(command.RollCallUploadEmployeePicture.Picture1, filePath1);
CreateImageFromBase64(command.RollCallUploadEmployeePicture.Picture1, filePath1);
var filePath2 = Path.Combine(directoryPath) + $@"\2.jpg";
CreateImageFromBase64(command.RollCallUploadEmployeePicture.Picture2, filePath2);
CreateImageFromBase64(command.RollCallUploadEmployeePicture.Picture2, filePath2);
var rollCallEmployee =
@@ -1115,6 +1130,16 @@ public class EmployeeAplication : RepositoryBase<long, Employee>, IEmployeeAppli
if (command.CreateCustomizeEmployeeSettings.GroupId > 0)
{
if (rollCallService?.HasCustomizeCheckoutService == "true")
{
var employeeSalary = command.CreateCustomizeEmployeeSettings.Salary?.MoneyToDouble() ?? 0;
if (employeeSalary < 1)
{
return op.Failed("لطفا حقوق پرسنل را وارد کنید");
}
}
if (_customizeWorkshopEmployeeSettingsRepository
.Exists(x => x.WorkshopId == workshop.Id && x.EmployeeId == employee.id))
{
@@ -1142,6 +1167,16 @@ public class EmployeeAplication : RepositoryBase<long, Employee>, IEmployeeAppli
}
else if (command.CreateCustomizeEmployeeSettings.GroupId > 0)
{
if (rollCallService?.HasCustomizeCheckoutService == "true")
{
var employeeSalary = command.CreateCustomizeEmployeeSettings.Salary?.MoneyToDouble() ?? 0;
if (employeeSalary < 1)
{
return op.Failed("لطفا حقوق پرسنل را وارد کنید");
}
}
if (_customizeWorkshopEmployeeSettingsRepository
.Exists(x => x.WorkshopId == workshop.Id && x.EmployeeId == employee.id))
{
@@ -1235,6 +1270,7 @@ public class EmployeeAplication : RepositoryBase<long, Employee>, IEmployeeAppli
byte[] bytes = Convert.FromBase64String(subBase64);
System.IO.File.WriteAllBytes(filePath, bytes);
}
public async Task<OperationResult<EmployeeByNationalCodeInWorkshopViewModel>>
ValidateCreateEmployeeClientByNationalCodeAndWorkshopId(string nationalCode, string birthDate, long workshopId)
{
@@ -1255,11 +1291,6 @@ public class EmployeeAplication : RepositoryBase<long, Employee>, IEmployeeAppli
if (employee == null)
{
var personalInfo = await _uidService.GetPersonalInfo(nationalCode, birthDate);
if (personalInfo.ResponseContext.Status.Code == 14)
{
return op.Failed("سامانه احراز هویت در دسترس نمیباشد لطفا اطلاعات پرسنل را به صورت دستی وارد کنید",new EmployeeByNationalCodeInWorkshopViewModel(){AuthorizedCanceled = true});
}
if (personalInfo.ResponseContext.Status.Code != 0)
{
return op.Failed("کد ملی و تاریخ تولد با هم همخانی ندارند");
@@ -1529,9 +1560,9 @@ public class EmployeeAplication : RepositoryBase<long, Employee>, IEmployeeAppli
{
employee.EditAuthorizeEmployee(employee.DateOfIssue, employee.PlaceOfIssue,
employee.Phone, employee.Address, employee.State, employee.City, command.MaritalStatus,
command.MilitaryService, employee.LevelOfEducation, employee.FieldOfStudy,
command.MilitaryService, employee.LevelOfEducation, employee.FieldOfStudy,
employee.BankCardNumber, employee.BankBranch, employee.InsuranceCode,
employee.InsuranceHistoryByYear, employee.InsuranceHistoryByMonth, employee.NumberOfChildren,
employee.InsuranceHistoryByYear, employee.InsuranceHistoryByMonth, employee.NumberOfChildren,
employee.OfficePhone, employee.MclsUserName, employee.MclsPassword,
employee.EserviceUserName, employee.EservicePassword, employee.TaxOfficeUserName,
employee.TaxOfficepassword, employee.SanaUserName, employee.SanaPassword);
@@ -1645,6 +1676,5 @@ public class EmployeeAplication : RepositoryBase<long, Employee>, IEmployeeAppli
}
#endregion
}

View File

@@ -21,46 +21,41 @@ public class EmployeeComputeOptionsApplication : IEmployeeComputeOptionsApplicat
public OperationResult Create(CreateEmployeeComputeOptions command)
{
var opration = new OperationResult();
try
{
if (_employeeComputeOptionsRepository.Exists(x =>
x.EmployeeId == command.EmployeeId && x.WorkshopId == command.WorkshopId))
{
var query = GetEmployeeOptions(command.WorkshopId, command.EmployeeId);
var editOptions = _employeeComputeOptionsRepository.Get(query.Id);
editOptions.Edit(command.ComputeOptions, command.BonusesOptions, command.YearsOptions,
command.CreateContract, command.SignContract, command.CreateCheckout, command.SignCheckout);
_employeeComputeOptionsRepository.SaveChanges();
return opration.Succcedded();
}
else
{
var createOptions = new EmployeeComputeOptions(command.WorkshopId, command.EmployeeId,
command.ComputeOptions, command.BonusesOptions, command.YearsOptions, command.CreateContract,
command.SignContract, command.CreateCheckout, command.SignCheckout);
_employeeComputeOptionsRepository.Create(createOptions);
_employeeComputeOptionsRepository.SaveChanges();
return opration.Succcedded();
}
}
catch (Exception a)
{
return opration.Failed("ثبت با خطا مواجه شد");
}
var opration = new OperationResult();
try
{
if (_employeeComputeOptionsRepository.Exists(x =>
x.EmployeeId == command.EmployeeId && x.WorkshopId == command.WorkshopId))
{
var query = GetEmployeeOptions(command.WorkshopId, command.EmployeeId);
var editOptions = _employeeComputeOptionsRepository.Get(query.Id);
editOptions.Edit(command.ComputeOptions, command.BonusesOptions, command.YearsOptions);
_employeeComputeOptionsRepository.SaveChanges();
return opration.Succcedded();
}
else
{
var createOptions = new EmployeeComputeOptions(command.WorkshopId, command.EmployeeId,
command.ComputeOptions, command.BonusesOptions, command.YearsOptions);
_employeeComputeOptionsRepository.Create(createOptions);
_employeeComputeOptionsRepository.SaveChanges();
return opration.Succcedded();
}
}
catch (Exception a)
{
return opration.Failed("ثبت با خطا مواجه شد");
}
}
public EmployeeComputeOptionsViewModel GetEmployeeOptions(long workshopId, long employeeId)
{
return _employeeComputeOptionsRepository.GetEmployeeOptions(workshopId, employeeId);
return _employeeComputeOptionsRepository.GetEmployeeOptions(workshopId, employeeId);
}
public List<EmployeeComputeOptionsViewModel> GetAllByWorkshopId(long workshopId)
{
return _employeeComputeOptionsRepository.GetAllByWorkshopId(workshopId);
return _employeeComputeOptionsRepository.GetAllByWorkshopId(workshopId);
}
}

View File

@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using _0_Framework.Application;
using _0_Framework.Exceptions;
using Company.Domain.empolyerAgg;
using Company.Domain.WorkshopAgg;
using CompanyManagment.App.Contracts.Checkout;
@@ -957,4 +958,256 @@ public class EmployerApplication : IEmployerApplication
}
#endregion
#region Api
public async Task<List<GetEmployerListViewModel>> GetEmployerList(GetEmployerSearchModel searchModel)
{
return await _EmployerRepository.GetEmployerList(searchModel);
}
public async Task<GetLegalEmployerDetailViewModel> GetLegalEmployerDetail(long id)
{
var employer = await _EmployerRepository.GetLegalEmployerDetail(id);
if (employer == null)
{
throw new NotFoundException("کارفرمای مورد نطر یافت نشد");
}
return employer;
}
public async Task<GetRealEmployerDetailViewModel> GetRealEmployerDetail(long id)
{
var employer = await _EmployerRepository.GetRealEmployerDetail(id);
if (employer == null)
{
throw new NotFoundException("کارفرمای مورد نطر یافت نشد");
}
return employer;
}
public async Task<OperationResult> CreateReal(CreateRealEmployer command)
{
var opration = new OperationResult();
if (_EmployerRepository.Exists(x =>
(x.FName == command.FName && x.LName == command.LName) && x.Nationalcode == command.NationalCode && x.Nationalcode != null))
return opration.Failed("امکان ثبت رکورد تکراری وجود ندارد");
if (string.IsNullOrWhiteSpace(command.FName))
return opration.Failed("لطفا نام را وارد کنید");
if (!string.IsNullOrWhiteSpace(command.NationalCode))
{
if (command.NationalCode.NationalCodeValid() != "valid")
{
return opration.Failed("کدملی وارد شده نامعتبر است");
}
if (_EmployerRepository.Exists(x => x.Nationalcode == command.NationalCode && !string.IsNullOrWhiteSpace(command.NationalCode)))
{
return opration.Failed("کد ملی وارد شده تکراری است");
}
}
string initial = "1300/10/11";
var dateOfBirth = command.DateOfBirth?.ToGeorgianDateTime() ?? initial.ToGeorgianDateTime();
var dateOfIssue = command.DateOfIssue?.ToGeorgianDateTime() ?? initial.ToGeorgianDateTime();
var gender = command.Gender switch
{
Gender.Male => "مرد",
Gender.Female => "زن",
Gender.None => null,
_ => throw new BadRequestException("جنسیت وارد شده نامعتبر است")
};
var employerData = new Employer(command.FName, command.LName, command.ContractingPartyId, gender,
command.NationalCode, command.IdNumber, "ایرانی", command.FatherName, dateOfBirth,
dateOfIssue, command.PlaceOfIssue, "*", "*", "*", "حقیقی", command.PhoneNumber,
command.Telephone, "true", command.GovernmentSystemInfo.MclUsername, command.GovernmentSystemInfo.MclPassword, command.GovernmentSystemInfo.EServiceUsername, command.GovernmentSystemInfo.EServicePassword,
command.GovernmentSystemInfo.TaxUsername, command.GovernmentSystemInfo.TaxPassword, command.GovernmentSystemInfo.SanaUsername, command.GovernmentSystemInfo.SanaPassword);
await _EmployerRepository.CreateAsync(employerData);
await _EmployerRepository.SaveChangesAsync();
return opration.Succcedded();
}
public async Task<OperationResult> CreateLegal(CreateLegalEmployer command)
{
if (string.IsNullOrWhiteSpace(command.EmployerLName))
command.EmployerLName = "#";
var opration = new OperationResult();
if (_EmployerRepository.Exists(x =>
x.LName == command.CompanyName && x.NationalId == command.NationalId && x.EmployerLName == command.EmployerLName))
return opration.Failed("امکان ثبت رکورد تکراری وجود ندارد");
if (_EmployerRepository.Exists(x => x.NationalId == command.NationalId && !string.IsNullOrWhiteSpace(command.NationalId) && x.NationalId != null))
{
return opration.Failed(" شناسه ملی وارد شده تکراری است");
}
if (_EmployerRepository.Exists(x => x.LName == command.CompanyName))
{
return opration.Failed("نام شرکت وارد شده تکراری است");
}
if (_EmployerRepository.Exists(x => x.RegisterId == command.RegisterId && !string.IsNullOrWhiteSpace(command.RegisterId) && x.RegisterId != null))
{
return opration.Failed(" شماره ثبت وارد شده تکراری است");
}
if (!string.IsNullOrEmpty(command.NationalId) && command.NationalId.Length != 11)
{
return opration.Failed(" شناسه ملی باید 11 رقم باشد");
}
if (!string.IsNullOrWhiteSpace(command.EmployerNationalCode))
{
if (command.EmployerNationalCode.NationalCodeValid() != "valid")
{
return opration.Failed("کد ملی وارد شده نا معتبر است");
}
}
string initial = "1300/10/11";
var dateOfBirth = command.EmployerDateOfBirth?.ToGeorgianDateTime() ?? initial.ToGeorgianDateTime();
var dateOfIssue = command.EmployerDateOfIssue?.ToGeorgianDateTime() ?? initial.ToGeorgianDateTime();
var gender = command.EmployerGender switch
{
Gender.Male => "مرد",
Gender.Female => "زن",
Gender.None => null,
_ => throw new BadRequestException("جنسیت وارد شده نامعتبر است")
};
var legalEmployerData = new Employer(command.EmployerFName, command.CompanyName, command.ContractingPartyId, gender,
command.EmployerNationalCode, command.EmployerIdNumber, "ایرانی", command.EmployerFatherName, dateOfBirth,
dateOfIssue, command.EmployerPlaceOfIssue, command.RegisterId, command.NationalId, command.EmployerLName, "حقوقی", command.PhoneNumber,
command.TelephoneNumber, "true", command.GovernmentSystemInfo.MclUsername, command.GovernmentSystemInfo.MclPassword,
command.GovernmentSystemInfo.EServiceUsername, command.GovernmentSystemInfo.EServicePassword,
command.GovernmentSystemInfo.TaxUsername, command.GovernmentSystemInfo.TaxPassword, command.GovernmentSystemInfo.SanaUsername, command.GovernmentSystemInfo.SanaPassword);
await _EmployerRepository.CreateAsync(legalEmployerData);
await _EmployerRepository.SaveChangesAsync();
return opration.Succcedded();
}
public async Task<OperationResult> EditReal(EditRealEmployer command)
{
var opration = new OperationResult();
var employer = _EmployerRepository.Get(command.Id);
if (employer == null)
return opration.Failed("رکورد مورد نظر یافت نشد");
if (_EmployerRepository.Exists(x =>
(x.FName == command.FName && x.LName == command.LName) && x.Nationalcode == command.NationalCode && x.id != command.Id))
return opration.Failed("امکان ثبت رکورد تکراری وجود ندارد");
if (!string.IsNullOrWhiteSpace(command.NationalCode))
{
if (command.NationalCode.NationalCodeValid() != "valid")
{
return opration.Failed("کد ملی وارد شده نا معتبر است");
}
}
if (_EmployerRepository.Exists(x => x.Nationalcode == command.NationalCode && !string.IsNullOrWhiteSpace(command.NationalCode) && x.id != command.Id))
{
return opration.Failed(" کد ملی وارد شده تکراری است");
}
string initial = "1300/10/11";
var dateOfBirth = command.DateOfBirth?.ToGeorgianDateTime() ?? initial.ToGeorgianDateTime();
var dateOfIssue = command.DateOfIssue?.ToGeorgianDateTime() ?? initial.ToGeorgianDateTime();
var gender = command.Gender switch
{
Gender.Male => "مرد",
Gender.Female => "زن",
Gender.None => null,
_ => throw new BadRequestException("جنسیت وارد شده نامعتبر است")
};
employer.Edit(command.FName, command.LName, command.ContractingPartyId,
gender, command.NationalCode, command.IdNumber, "ایرانی", command.FatherName,
dateOfBirth, dateOfIssue, command.PlaceOfIssue, command.PhoneNumber, command.Telephone,
command.GovernmentSystemInfo.MclUsername, command.GovernmentSystemInfo.MclPassword, command.GovernmentSystemInfo.EServiceUsername, command.GovernmentSystemInfo.EServicePassword,
command.GovernmentSystemInfo.TaxUsername, command.GovernmentSystemInfo.TaxPassword, command.GovernmentSystemInfo.SanaUsername, command.GovernmentSystemInfo.SanaPassword, null);
await _EmployerRepository.SaveChangesAsync();
return opration.Succcedded();
}
public async Task<OperationResult> EditLegal(EditLegalEmployer command)
{
var opration = new OperationResult();
var legalEmployer = _EmployerRepository.Get(command.Id);
if (legalEmployer == null)
return opration.Failed("رکورد مورد نظر یافت نشد");
if (_EmployerRepository.Exists(x =>
x.LName == command.CompanyName && x.NationalId == command.NationalId && !string.IsNullOrWhiteSpace(command.NationalId) && x.id != command.Id))
return opration.Failed("امکان ثبت رکورد تکراری وجود ندارد");
if (!string.IsNullOrEmpty(command.NationalId) && command.NationalId.Length != 11)
{
return opration.Failed(" شناسه ملی باید 11 رقم باشد");
}
if (!string.IsNullOrWhiteSpace(command.EmployerNationalCode))
{
if (command.EmployerNationalCode.NationalCodeValid() != "valid")
{
return opration.Failed("کد ملی وارد شده نا معتبر است");
}
}
var gender = command.EmployerGender switch
{
Gender.Male => "مرد",
Gender.Female => "زن",
Gender.None => null,
_ => throw new BadRequestException("جنسیت وارد شده نامعتبر است")
};
string initial = "1300/10/11";
var dateOfBirth = command.EmployerDateOfBirth?.ToGeorgianDateTime() ?? initial.ToGeorgianDateTime();
var dateOfIssue = command.EmployerDateOfIssue?.ToGeorgianDateTime() ?? initial.ToGeorgianDateTime();
legalEmployer.EditLegal(command.EmployerFName, command.CompanyName, command.ContractingPartyId, gender,
command.EmployerNationalCode, command.EmployerIdNumber, "ایرانی", command.EmployerFatherName, dateOfBirth,
dateOfIssue, command.EmployerPlaceOfIssue, command.RegisterId, command.NationalId, command.EmployerLName,
command.PhoneNumber, command.TelephoneNumber, command.GovernmentSystemInfo.MclUsername, command.GovernmentSystemInfo.MclUsername, command.GovernmentSystemInfo.EServiceUsername, command.GovernmentSystemInfo.EServicePassword,
command.GovernmentSystemInfo.TaxUsername, command.GovernmentSystemInfo.TaxPassword, command.GovernmentSystemInfo.SanaUsername, command.GovernmentSystemInfo.SanaPassword, null);
await _EmployerRepository.SaveChangesAsync();
return opration.Succcedded();
}
//public async Task<List<EmployerSelectListViewModel>> GetSelectList(string search)
//{
// return await _EmployerRepository.GetSelectList(search);
//}
async Task<OperationResult<string>> IEmployerApplication.RemoveApi(long id)
{
var employer = _EmployerRepository.Get(id);
if (employer == null)
throw new NotFoundException("دیتای مورد نظر یافت نشد");
var workshops = _workshopRepository.GetWorkshopsByEmployerId([id]);
if (workshops.Any())
{
return await _EmployerRepository.DeactivateWithSubordinates(id);
}
_EmployerRepository.Remove(id);
return new OperationResult<string>().Succcedded("Deleted");
}
#endregion
}

File diff suppressed because it is too large Load Diff

View File

@@ -176,8 +176,6 @@ public class LeftWorkTempApplication : ILeftWorkTempApplication
_leftWorkTempRepository.Remove(leftWorkTemp);
await _leftWorkRepository.SaveChangesAsync();
await _leftWorkTempRepository.SaveChangesAsync();
return op.Succcedded();
}

View File

@@ -1,17 +1,19 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using _0_Framework.Application;
using CompanyManagment.App.Contracts.PersonalContractingParty;
using Company.Domain.ContarctingPartyAgg;
using Company.Domain.empolyerAgg;
using CompanyManagment.App.Contracts.Representative;
using Company.Domain.InstitutionContractAgg;
using CompanyManagment.EFCore.Repository;
namespace CompanyManagment.Application;
public class PersonalContractingPartyApplication : IPersonalContractingPartyApp
{
private readonly IPersonalContractingPartyRepository _personalContractingPartyRepository2;
private readonly IPersonalContractingPartyRepository _personalContractingPartyRepository;
private readonly IRepresentativeApplication _representativeApplication;
private readonly IEmployerRepository _employerRepository;
private readonly IInstitutionContractRepository _institutionContractRepository;
@@ -26,7 +28,7 @@ public class PersonalContractingPartyApplication : IPersonalContractingPartyApp
public PersonalContractingPartyApplication(
IPersonalContractingPartyRepository personalContractingPartyRepository, IRepresentativeApplication representativeApplication, IEmployerRepository employerRepository, IInstitutionContractRepository institutionContractRepository)
{
_personalContractingPartyRepository2 = personalContractingPartyRepository;
_personalContractingPartyRepository = personalContractingPartyRepository;
_representativeApplication = representativeApplication;
_employerRepository = employerRepository;
_institutionContractRepository = institutionContractRepository;
@@ -36,7 +38,7 @@ public class PersonalContractingPartyApplication : IPersonalContractingPartyApp
public OperationResult Create(CreatePersonalContractingParty command)
{
var opration = new OperationResult();
if (_personalContractingPartyRepository2.Exists(x =>
if (_personalContractingPartyRepository.Exists(x =>
x.LName == command.LName && x.Nationalcode == command.Nationalcode && x.SureName == command.SureName ))
return opration.Failed("امکان ثبت رکورد تکراری وجود ندارد");
if (command.RepresentativeId < 1)
@@ -54,14 +56,14 @@ public class PersonalContractingPartyApplication : IPersonalContractingPartyApp
// return opration.Failed("نام خانوادگی وارد شده تکراری است");
//}
if (_personalContractingPartyRepository2.Exists(x => x.Nationalcode == command.Nationalcode && x.LName != command.LName))
if (_personalContractingPartyRepository.Exists(x => x.Nationalcode == command.Nationalcode && x.LName != command.LName))
{
nationalcodeIsOk = false;
return opration.Failed("کد ملی وارد شده تکراری است");
}
if (_personalContractingPartyRepository2.Exists(x => x.ArchiveCode == command.ArchiveCode))
if (_personalContractingPartyRepository.Exists(x => x.ArchiveCode == command.ArchiveCode))
return opration.Failed("کد طرف حساب تکراری است");
try
@@ -132,8 +134,8 @@ public class PersonalContractingPartyApplication : IPersonalContractingPartyApp
command.State,command.City,command.Zone,command.SureName);
_personalContractingPartyRepository2.Create(personalContractingParty);
_personalContractingPartyRepository2.SaveChanges();
_personalContractingPartyRepository.Create(personalContractingParty);
_personalContractingPartyRepository.SaveChanges();
return opration.Succcedded();
@@ -152,13 +154,13 @@ public class PersonalContractingPartyApplication : IPersonalContractingPartyApp
public OperationResult Edit2(EditPersonalContractingParty command)
{
var opration = new OperationResult();
var personalContractingParty = _personalContractingPartyRepository2.Get(command.Id);
var personalContractingParty = _personalContractingPartyRepository.Get(command.Id);
if (personalContractingParty == null)
return opration.Failed("رکورد مورد نظر یافت نشد");
personalContractingParty.Edit2(command.Address);
_personalContractingPartyRepository2.SaveChanges();
_personalContractingPartyRepository.SaveChanges();
return opration.Succcedded();
}
@@ -166,7 +168,7 @@ public class PersonalContractingPartyApplication : IPersonalContractingPartyApp
{
var opration = new OperationResult();
if (_personalContractingPartyRepository2.Exists(x =>
if (_personalContractingPartyRepository.Exists(x =>
x.LName == command.LName && x.RegisterId == command.RegisterId && x.SureName == command.SureName))
return opration.Failed("امکان ثبت رکورد تکراری وجود ندارد");
if (command.RepresentativeId < 1)
@@ -174,23 +176,23 @@ public class PersonalContractingPartyApplication : IPersonalContractingPartyApp
if (_personalContractingPartyRepository2.Exists(x => x.LName == command.LName && x.SureName == command.SureName))
if (_personalContractingPartyRepository.Exists(x => x.LName == command.LName && x.SureName == command.SureName))
{
legalNameIsOk = false;
return opration.Failed("نام شرکت وارد شده تکراری است");
}
if (_personalContractingPartyRepository2.Exists(x => x.RegisterId == command.RegisterId && x.LName != command.LName))
if (_personalContractingPartyRepository.Exists(x => x.RegisterId == command.RegisterId && x.LName != command.LName))
{
registerIdIsOk = false;
return opration.Failed("شماره ثبت وارد شده تکراری است");
}
if (_personalContractingPartyRepository2.Exists(x => x.NationalId == command.NationalId && x.LName != command.LName))
if (_personalContractingPartyRepository.Exists(x => x.NationalId == command.NationalId && x.LName != command.LName))
{
nationalIdIsOk = false;
return opration.Failed("شناسه ملی وارد شده تکراری است");
}
if (_personalContractingPartyRepository2.Exists(x => x.ArchiveCode == command.ArchiveCode))
if (_personalContractingPartyRepository.Exists(x => x.ArchiveCode == command.ArchiveCode))
return opration.Failed("کد طرف حساب تکراری است");
@@ -204,8 +206,8 @@ public class PersonalContractingPartyApplication : IPersonalContractingPartyApp
command.State, command.City, command.Zone,command.SureName);
_personalContractingPartyRepository2.Create(legalContractingParty);
_personalContractingPartyRepository2.SaveChanges();
_personalContractingPartyRepository.Create(legalContractingParty);
_personalContractingPartyRepository.SaveChanges();
return opration.Succcedded();
@@ -223,15 +225,15 @@ public class PersonalContractingPartyApplication : IPersonalContractingPartyApp
{
var opration = new OperationResult();
var personalContractingParty = _personalContractingPartyRepository2.Get(command.Id);
var personalContractingParty = _personalContractingPartyRepository.Get(command.Id);
if (personalContractingParty == null)
return opration.Failed("رکورد مورد نظر یافت نشد");
if (command.RepresentativeId < 1)
return opration.Failed("لطفا معرف را انتخاب کنید");
if (_personalContractingPartyRepository2.Exists(x =>
if (_personalContractingPartyRepository.Exists(x =>
x.LName == command.LName && x.Nationalcode == command.Nationalcode && x.SureName == command.SureName && x.id != command.Id))
return opration.Failed("امکان ثبت رکورد تکراری وجود ندارد");
if (_personalContractingPartyRepository2.Exists(x => x.ArchiveCode == command.ArchiveCode && x.id != command.Id))
if (_personalContractingPartyRepository.Exists(x => x.ArchiveCode == command.ArchiveCode && x.id != command.Id))
return opration.Failed("کد طرف حساب تکراری است");
try
{
@@ -300,7 +302,7 @@ public class PersonalContractingPartyApplication : IPersonalContractingPartyApp
command.Phone, command.AgentPhone, command.Address, command.RepresentativeId, representative.FullName, command.ArchiveCode,
command.State, command.City, command.Zone,command.SureName);
_personalContractingPartyRepository2.SaveChanges();
_personalContractingPartyRepository.SaveChanges();
return opration.Succcedded();
}
else
@@ -314,16 +316,16 @@ public class PersonalContractingPartyApplication : IPersonalContractingPartyApp
{
var opration = new OperationResult();
var legalContractingParty = _personalContractingPartyRepository2.Get(command.Id);
var legalContractingParty = _personalContractingPartyRepository.Get(command.Id);
if (legalContractingParty == null)
return opration.Failed("رکورد مورد نظر یافت نشد");
if (_personalContractingPartyRepository2.Exists(x =>
if (_personalContractingPartyRepository.Exists(x =>
x.LName== command.LName && x.RegisterId == command.RegisterId &&x.SureName == command.SureName &&x.id != command.Id))
return opration.Failed("امکان ثبت رکورد تکراری وجود ندارد");
if (command.RepresentativeId < 1)
return opration.Failed("لطفا معرف را انتخاب کنید");
if (_personalContractingPartyRepository2.Exists(x => x.ArchiveCode == command.ArchiveCode && x.id != command.Id))
if (_personalContractingPartyRepository.Exists(x => x.ArchiveCode == command.ArchiveCode && x.id != command.Id))
return opration.Failed("کد طرف حساب تکراری است");
var representative = _representativeApplication.GetDetails(command.RepresentativeId);
legalContractingParty.EditLegal(command.LName, command.RegisterId,
@@ -331,54 +333,54 @@ public class PersonalContractingPartyApplication : IPersonalContractingPartyApp
command.Phone, command.AgentPhone, command.Address, command.RepresentativeId, representative.FullName,command.ArchiveCode,
command.State, command.City, command.Zone, command.SureName);
_personalContractingPartyRepository2.SaveChanges();
_personalContractingPartyRepository.SaveChanges();
return opration.Succcedded();
}
public EditPersonalContractingParty GetDetails(long id)
{
return _personalContractingPartyRepository2.GetDetails(id);
return _personalContractingPartyRepository.GetDetails(id);
}
public string IsBlockByEmployerId(long employerId)
{
return _personalContractingPartyRepository2.IsBlockByEmployerId(employerId);
return _personalContractingPartyRepository.IsBlockByEmployerId(employerId);
}
public EditPersonalContractingParty GetDetailsToEdit(long id)
{
return _personalContractingPartyRepository2.GetDetailsToEdit(id);
return _personalContractingPartyRepository.GetDetailsToEdit(id);
}
public string GetFullName(long id)
{
return _personalContractingPartyRepository2.GetFullName(id);
return _personalContractingPartyRepository.GetFullName(id);
}
public List<PersonalContractingPartyViewModel> GetPersonalContractingParties()
{
return _personalContractingPartyRepository2.GetPersonalContractingParties();
return _personalContractingPartyRepository.GetPersonalContractingParties();
}
public List<PersonalContractingPartyViewModel> Search(PersonalContractingPartySearchModel searchModel2)
{
return _personalContractingPartyRepository2.Search(searchModel2);
return _personalContractingPartyRepository.Search(searchModel2);
}
public int GetLastArchiveCode()
{
return _personalContractingPartyRepository2.GetLastArchiveCode();
return _personalContractingPartyRepository.GetLastArchiveCode();
}
#region Mahan
public List<string> SearchByName(string name)
{
return _personalContractingPartyRepository2.SearchByName(name);
return _personalContractingPartyRepository.SearchByName(name);
}
#endregion
public ContractingPartyAndStatmentIdViewModel GetContractingpartyIdByAccountId(long accountId)
{
return _personalContractingPartyRepository2.GetContractingpartyIdByAccountId(accountId);
return _personalContractingPartyRepository.GetContractingpartyIdByAccountId(accountId);
}
@@ -386,15 +388,15 @@ public class PersonalContractingPartyApplication : IPersonalContractingPartyApp
public List<PersonalContractingPartyViewModel> GetPersonalContractingPartiesForNationalcode(string searchText)
{
return _personalContractingPartyRepository2.GetPersonalContractingPartiesForNationalcode(searchText);
return _personalContractingPartyRepository.GetPersonalContractingPartiesForNationalcode(searchText);
}
public List<PersonalContractingPartyViewModel> SearchForMain(PersonalContractingPartySearchModel searchModel2)
{
var result= _personalContractingPartyRepository2.SearchForMain(searchModel2);
var result= _personalContractingPartyRepository.SearchForMain(searchModel2);
foreach (var item in result)
{
item.HasInstitutionContract = _personalContractingPartyRepository2.GetHasContract(item.id);
item.HasInstitutionContract = _personalContractingPartyRepository.GetHasContract(item.id);
}
return result;
}
@@ -411,12 +413,12 @@ public class PersonalContractingPartyApplication : IPersonalContractingPartyApp
//اونهایی که کارفرما یا قرارداد غیر فعال دارند غیر فعال می شوند
if (_employerRepository.Exists(x => x.ContractingPartyId == id)|| _institutionContractRepository.Exists(x => x.ContractingPartyId == id))
{
opration= _personalContractingPartyRepository2.DeActiveAll(id);
opration= _personalContractingPartyRepository.DeActiveAll(id);
return opration;
}
else
{
opration = _personalContractingPartyRepository2.DeletePersonalContractingParties(id);
opration = _personalContractingPartyRepository.DeletePersonalContractingParties(id);
}
return opration;
@@ -428,10 +430,10 @@ public class PersonalContractingPartyApplication : IPersonalContractingPartyApp
{
var opration = new OperationResult();
var contract = _personalContractingPartyRepository2.Get(id);
var contract = _personalContractingPartyRepository.Get(id);
if (contract == null)
return opration.Failed("رکورد مورد نظر یافت نشد");
return _personalContractingPartyRepository2.ActiveAll(id);
return _personalContractingPartyRepository.ActiveAll(id);
//var opration = new OperationResult();
@@ -446,44 +448,44 @@ public class PersonalContractingPartyApplication : IPersonalContractingPartyApp
public OperationResult DeActive(long id)
{
var opration = new OperationResult();
var personalContracting = _personalContractingPartyRepository2.Get(id);
var personalContracting = _personalContractingPartyRepository.Get(id);
if (personalContracting == null)
return opration.Failed("رکورد مورد نظر یافت نشد");
personalContracting.DeActive();
_personalContractingPartyRepository2.SaveChanges();
_personalContractingPartyRepository.SaveChanges();
return opration.Succcedded();
}
public bool GetHasContract(long id)
{
return _personalContractingPartyRepository2.GetHasContract(id);
return _personalContractingPartyRepository.GetHasContract(id);
}
public OperationResult Block(long id)
{
var opration = new OperationResult();
var contract = _personalContractingPartyRepository2.Get(id);
var contract = _personalContractingPartyRepository.Get(id);
if (contract == null)
return opration.Failed("رکورد مورد نظر یافت نشد");
contract.Block();
_personalContractingPartyRepository2.SaveChanges();
_personalContractingPartyRepository.SaveChanges();
return opration.Succcedded();
}
public OperationResult DisableBlock(long id)
{
var opration = new OperationResult();
var personalContracting = _personalContractingPartyRepository2.Get(id);
var personalContracting = _personalContractingPartyRepository.Get(id);
if (personalContracting == null)
return opration.Failed("رکورد مورد نظر یافت نشد");
int blockTimes = personalContracting.BlockTimes + 1;
personalContracting.DisableBlock(blockTimes);
_personalContractingPartyRepository2.SaveChanges();
_personalContractingPartyRepository.SaveChanges();
@@ -499,7 +501,225 @@ public class PersonalContractingPartyApplication : IPersonalContractingPartyApp
public bool IsBlockCheckByWorkshopId(long workshopId)
{
return _personalContractingPartyRepository2.IsBlockCheckByWorkshopId(workshopId);
return _personalContractingPartyRepository.IsBlockCheckByWorkshopId(workshopId);
}
#endregion
#region Api
public async Task<ICollection<ContractingPartyGetListViewModel>> GetList(
ContractingPartyGetListSearchModel searchModel)
{
return await _personalContractingPartyRepository.GetList(searchModel);
}
public async Task<List<ContractingPartySelectListViewModel>> GetSelectList()
{
return await _personalContractingPartyRepository.GetSelectList();
}
public async Task<OperationResult> CreateReal(CreateRealContractingParty command)
{
var operation = new OperationResult();
if (_personalContractingPartyRepository.Exists(x =>
x.LName == command.LName && x.Nationalcode == command.NationalCode && x.SureName == command.SureName))
return operation.Failed("امکان ثبت رکورد تکراری وجود ندارد");
if (command.RepresentativeId < 1)
return operation.Failed("لطفا معرف را انتخاب کنید");
if (_personalContractingPartyRepository.Exists(x => x.Nationalcode == command.NationalCode && x.LName != command.LName))
{
nationalcodeIsOk = false;
return operation.Failed("کد ملی وارد شده تکراری است");
}
if (_personalContractingPartyRepository.Exists(x => x.ArchiveCode == command.ArchiveCode))
return operation.Failed("کد طرف حساب تکراری است");
if (command.NationalCode.NationalCodeValid() != "valid")
{
return operation.Failed("کد ملی وارد شده نا معتبر است");
}
var representative = _representativeApplication.GetDetails(command.RepresentativeId);
var personalContractingParty = new PersonalContractingParty(command.FName, command.LName,
command.NationalCode, command.IdNumber, "*", "*",
"حقیقی",
command.PhoneNumber, command.AgentPhone, command.Address, command.RepresentativeId, representative.FullName, command.ArchiveCode,
command.State, command.City, command.Zone, command.SureName);
await _personalContractingPartyRepository.CreateAsync(personalContractingParty);
await _personalContractingPartyRepository.SaveChangesAsync();
return operation.Succcedded();
}
public async Task<OperationResult> CreateLegal(CreateLegalContractingParty command)
{
var opration = new OperationResult();
if (_personalContractingPartyRepository.Exists(x =>
x.LName == command.CompanyName && x.RegisterId == command.RegisterId && x.SureName == command.SureName))
return opration.Failed("امکان ثبت رکورد تکراری وجود ندارد");
if (command.RepresentativeId < 1)
return opration.Failed("لطفا معرف را انتخاب کنید");
if (_personalContractingPartyRepository.Exists(x =>
x.LName == command.CompanyName && x.SureName == command.SureName))
{
legalNameIsOk = false;
return opration.Failed("نام شرکت وارد شده تکراری است");
}
if (_personalContractingPartyRepository.Exists(x =>
x.RegisterId == command.RegisterId && x.LName != command.CompanyName))
{
registerIdIsOk = false;
return opration.Failed("شماره ثبت وارد شده تکراری است");
}
if (_personalContractingPartyRepository.Exists(x =>
x.NationalId == command.NationalId && x.LName != command.CompanyName))
{
nationalIdIsOk = false;
return opration.Failed("شناسه ملی وارد شده تکراری است");
}
if (_personalContractingPartyRepository.Exists(x => x.ArchiveCode == command.ArchiveCode))
return opration.Failed("کد طرف حساب تکراری است");
var representative = _representativeApplication.GetDetails(command.RepresentativeId);
var legalContractingParty = new PersonalContractingParty("*", command.CompanyName,
"*", "*", command.RegisterId, command.NationalId,
"حقوقی",
command.PhoneNumber, command.AgentPhone, command.Address, command.RepresentativeId, representative.FullName,
command.ArchiveCode,
command.State, command.City, command.Zone, command.SureName);
await _personalContractingPartyRepository.CreateAsync(legalContractingParty);
await _personalContractingPartyRepository.SaveChangesAsync();
return opration.Succcedded();
}
public async Task<List<GetContractingPartyNationalCodeOrNationalIdViewModel>> GetNationalCodeOrNationalId()
{
return await _personalContractingPartyRepository.GetNationalCodeOrNationalId();
}
public async Task<OperationResult<string>> Delete(long id)
{
var operationResult = new OperationResult<string>();
try
{
//اگر دارای قرارداد یا دازای کارفرما باشد غیر فعال می شود
if (_employerRepository.Exists(x => x.ContractingPartyId == id) || _institutionContractRepository.Exists(x => x.ContractingPartyId == id))
{
operationResult = await _personalContractingPartyRepository.DeactivateWithSubordinates(id);
return operationResult;
}
var entity = _personalContractingPartyRepository.Get(id);
_personalContractingPartyRepository.Remove(entity);
operationResult.Succcedded("Deleted");
}
catch
{
return operationResult.Failed("خطایی رخ داده است");
}
return operationResult;
}
public OperationResult EditRealApi(EditRealContractingParty command)
{
var opration = new OperationResult();
var personalContractingParty = _personalContractingPartyRepository.Get(command.Id);
if (personalContractingParty == null)
return opration.Failed("رکورد مورد نظر یافت نشد");
if (command.RepresentativeId < 1)
return opration.Failed("لطفا معرف را انتخاب کنید");
if (_personalContractingPartyRepository.Exists(x =>
x.LName == command.LName && x.Nationalcode == command.NationalCode && x.SureName == command.SureName && x.id != command.Id))
return opration.Failed("امکان ثبت رکورد تکراری وجود ندارد");
if (_personalContractingPartyRepository.Exists(x => x.ArchiveCode == command.ArchiveCode && x.id != command.Id))
return opration.Failed("کد طرف حساب تکراری است");
if (command.NationalCode.NationalCodeValid() != "valid")
{
return opration.Failed("کد ملی وارد شده نا معتبر است");
}
try
{
var representative = _representativeApplication.GetDetails(command.RepresentativeId);
personalContractingParty.Edit(command.FName, command.LName,
command.NationalCode, command.IdNumber,
command.PhoneNumber, command.AgentPhone, command.Address, command.RepresentativeId, representative.FullName, command.ArchiveCode,
command.State, command.City, command.Zone, command.SureName);
_personalContractingPartyRepository.SaveChanges();
return opration.Succcedded();
}
catch
{
return opration.Failed("خطایی رخ داده است");
}
}
public OperationResult EditLegal(EditLegalContractingParty command)
{
var opration = new OperationResult();
var legalContractingParty = _personalContractingPartyRepository.Get(command.Id);
if (legalContractingParty == null)
return opration.Failed("رکورد مورد نظر یافت نشد");
if (_personalContractingPartyRepository.Exists(x =>
x.LName == command.CompanyName && x.RegisterId == command.RegisterId && x.SureName == command.SureName && x.id != command.Id))
return opration.Failed("امکان ثبت رکورد تکراری وجود ندارد");
if (command.RepresentativeId < 1)
return opration.Failed("لطفا معرف را انتخاب کنید");
if (_personalContractingPartyRepository.Exists(x => x.ArchiveCode == command.ArchiveCode && x.id != command.Id))
return opration.Failed("کد طرف حساب تکراری است");
var representative = _representativeApplication.GetDetails(command.RepresentativeId);
legalContractingParty.EditLegal(command.CompanyName, command.RegisterId,
command.NationalId,
command.PhoneNumber, command.AgentPhone, command.Address, command.RepresentativeId, representative.FullName, command.ArchiveCode,
command.State, command.City, command.Zone, command.SureName);
_personalContractingPartyRepository.SaveChanges();
return opration.Succcedded();
}
public async Task<GetRealContractingPartyDetailsViewModel> GetRealDetails(long id)
{
return await _personalContractingPartyRepository.GetRealDetails(id);
}
public async Task<GetLegalContractingPartyDetailsViewModel> GetLegalDetails(long id)
{
return await _personalContractingPartyRepository.GetLegalDetails(id);
}
#endregion

View File

@@ -67,7 +67,7 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
return op.Failed("شماره همراه نا معتبر است");
#endregion
@@ -141,6 +141,8 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
result.FName = createTemp.FName;
result.LName = createTemp.LName;
result.DateOfBirthFa = dateOfBirth;
result.FatherName = createTemp.FatherName;
result.IdNumberSerial = createTemp.IdNumberSerial;
result.IdNumber = idNumber;
return op.Succcedded(result);
@@ -188,7 +190,7 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
/// </summary>
/// <param name="command"></param>
/// <returns></returns>
public async Task<OperationResult> CreateOrUpdateWorkshopTemp(List<WorkshopTempViewModel> command)
public async Task<OperationResult> CreateOrUpdateWorkshopTemp(List<WorkshopTempViewModel> command, long contractingPartyTempId)
{
var op = new OperationResult();
var updateWorkshopList = command.Where(x => x.Id > 0).ToList();
@@ -196,10 +198,17 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
if (updateWorkshopList.Count == 0 && createNewWorkshopList.Count == 0)
return op.Failed("هیچ مجموعه ای ایجاد نشده است");
var oldWorkshops = await _workshopTempRepository.GetWorkshopTemp(contractingPartyTempId);
#region Update
if (updateWorkshopList.Count > 0)
{
var updateListIds = updateWorkshopList.Select(x => x.Id).ToList();
var oldWorkshopsIds = oldWorkshops.Select(x => x.Id).ToList();
var exceptWorkshops = oldWorkshopsIds.Except(updateListIds).ToList();
if (exceptWorkshops.Any())
await _workshopTempRepository.RemoveWorkshopTemps(exceptWorkshops);
foreach (var workshop in updateWorkshopList)
{
@@ -212,6 +221,7 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
workshop.RollCall == false && workshop.Insurance == false)
op.Failed($"برای مجموعه {workshop.WorkshopName} هیچ سرویسی انتخاب نشده است");
var existWorkshops = _workshopTempRepository.Get(workshop.Id);
if (existWorkshops != null)
{
if (workshop.ContractAndCheckout)
@@ -256,6 +266,8 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
if (workshop.CustomizeCheckout)
await _workshopServicesTempRepository.CreateAsync(
new WorkshopServicesTemp("CustomizeCheckout", workshop.CountPerson, workshop.Id));
await _workshopServicesTempRepository.SaveChangesAsync();
}
}
@@ -324,6 +336,8 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
if (workshop.CustomizeCheckout)
await _workshopServicesTempRepository.CreateAsync(
new WorkshopServicesTemp("CustomizeCheckout", workshop.CountPerson, createNewWorkshopTemp.id));
await _workshopServicesTempRepository.SaveChangesAsync();
}
}
@@ -352,8 +366,9 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
/// </summary>
/// <param name="contractingPartyTempId"></param>
/// <returns></returns>
public async Task<ReviewAndPaymentViewModel> GetTotalPaymentAndWorkshopList(long contractingPartyTempId, string periodModel = "12", string paymentModel = "OneTime")
public async Task<ReviewAndPaymentViewModel> GetTotalPaymentAndWorkshopList(long contractingPartyTempId, string periodModel = "12", string paymentModel = "OneTime", string contractStartType = "currentMonth")
{
//دریافت کارگاه ها
var workshops = await _workshopTempRepository.GetWorkshopTemp(contractingPartyTempId);
@@ -380,9 +395,10 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
_ => 12,
};
//رند کردن مبالغ کارگاه ها
var roundAmount = (int)(totalPayment1MonthDouble / 1000000) * 1000000;
var roundAmount = (((Convert.ToInt64(totalPayment1MonthDouble))) / 1000000) * 1000000;
double roundAmount2 = roundAmount;
//بدست آوردن جمع کل مبالغ کارگاه بر اساس مدت قراداد
result.SumOfWorkshopsPaymentDouble = roundAmount * months;
result.SumOfWorkshopsPaymentDouble = months * roundAmount2;
result.SumOfWorkshopsPaymentPaymentStr = result.SumOfWorkshopsPaymentDouble.ToMoney();
@@ -394,31 +410,112 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
//مالیات
result.ValueAddedTaxDouble = tenPercent;
result.ValueAddedTaxSt = tenPercent.ToMoney();
if (paymentModel == "OneTime")//تخفیف 10 درصدی درصورت پرداخت یکجا
//پرداخت یکجا
#region OneTimePaymentResult
double discountOneTimePeyment = result.SumOfWorkshopsPaymentDouble - tenPercent;
//مبلغ بدون مالیات و با تخفیف
result.OneTimeWithoutTaxPaymentDouble = discountOneTimePeyment;
result.OneTimeWithoutTaxPaymentStr = discountOneTimePeyment.ToMoney();
//مبلغ با مالیات
result.OneTimeTotalPaymentDouble = discountOneTimePeyment + tenPercent;
result.OneTimeTotalPaymentStr = result.OneTimeTotalPaymentDouble.ToMoney();
#endregion
//پرداخت ماهیانه
#region MonthlyPaymentResult
//مبلغ بدون مالیات
result.MonthlyWithoutTaxPaymentDouble = result.SumOfWorkshopsPaymentDouble;
result.MonthlyWithoutTaxPaymentStr = result.SumOfWorkshopsPaymentDouble.ToMoney();
// مبلغ با مالیات
result.MonthlyTotalPaymentDouble = result.SumOfWorkshopsPaymentDouble + tenPercent;
result.MonthlyTotalPaymentStr = result.MonthlyTotalPaymentDouble.ToMoney();
var installmentList = new List<MonthlyInstallment>();
var startDate = (DateTime.Now).ToFarsi();
result.ContractStartCurrentMonthFa = $"{startDate.Substring(0, 8)}01";
result.ContractStartCurrentMonthGr = result.ContractStartCurrentMonthFa.ToGeorgianDateTime();
startDate = result.ContractStartCurrentMonthFa;
result.ContractStartNextMonthGr = ((startDate.FindeEndOfMonth()).ToGeorgianDateTime()).AddDays(1);
result.ContractStartNextMonthFa = result.ContractStartNextMonthGr.ToFarsi();
if (contractStartType == "nextMonth")
startDate = result.ContractStartNextMonthFa;
var findeEnd = Tools.FindEndOfContract(startDate, periodModel);
var contractEndDate = findeEnd.endDateGr;
result.ContractEndGr = contractEndDate;
result.ContractEndFa = contractEndDate.ToFarsi();
if (periodModel == "1")
{
double discountOneTimePeyment = result.SumOfWorkshopsPaymentDouble - tenPercent;
installmentList.Add(new MonthlyInstallment()
{
InstallmentAmountStr = result.MonthlyTotalPaymentStr,
InstallmentCounter = "سررسید پرداخت اول",
InstalmentDate = (DateTime.Now).ToFarsi()
//مبلغ بدون مالیات و با تخفیف
result.WithoutTaxPaymentDouble = discountOneTimePeyment;
result.WithoutTaxPaymentStr = discountOneTimePeyment.ToMoney();
//مبلغ با مالیات
result.TotalPaymentDouble = discountOneTimePeyment + tenPercent;
result.TotalPaymentStr = result.TotalPaymentDouble.ToMoney();
});
result.MonthlyInstallments = installmentList;
}
else
{
//مبلغ بدون مالیات
result.WithoutTaxPaymentDouble = result.SumOfWorkshopsPaymentDouble;
result.WithoutTaxPaymentStr = result.SumOfWorkshopsPaymentDouble.ToMoney();
int instalmentCount = Convert.ToInt32(periodModel);
var instalmentAmount = result.MonthlyTotalPaymentDouble / instalmentCount;
var findEndOfMonth = startDate.FindeEndOfMonth();
for (int i = 1; i <= instalmentCount; i++)
{
if (i == 1)
{
startDate = (DateTime.Now).ToFarsi();
}
else if (i > 1)
{
var currentMonthStart = ((findEndOfMonth.ToGeorgianDateTime()).AddDays(1)).ToFarsi();
startDate = currentMonthStart.FindeEndOfMonth();
findEndOfMonth = startDate;
}
installmentList.Add(new MonthlyInstallment()
{
InstallmentAmountStr = instalmentAmount.ToMoney(),
InstallmentCounter = i switch
{
1 => "سررسید پرداخت اول",
2 => "سررسید پرداخت دوم",
3 => "سررسید پرداخت سوم",
4 => "سررسید پرداخت چهارم",
5 => "سررسید پرداخت پنجم",
6 => "سررسید پرداخت ششم",
7 => "سررسید پرداخت هفتم",
8 => "سررسید پرداخت هشتم",
9 => "سررسید پرداخت نهم",
10 => "سررسید پرداخت دهم",
11 => "سررسید پرداخت یازدهم",
12 => "سررسید پرداخت دوازدهم",
_ => "سررسید پرداخت دوازدهم",
},
InstalmentDate = startDate
});
}
// مبلغ با مالیات
result.TotalPaymentDouble = result.SumOfWorkshopsPaymentDouble + tenPercent;
result.TotalPaymentStr = result.TotalPaymentDouble.ToMoney();
}
#endregion
result.MonthlyInstallments = installmentList;
result.ContractingPartTempId = contractingPartyTempId;
return result;
@@ -430,19 +527,21 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
/// </summary>
/// <param name="contractingPartyTempId"></param>
/// <returns></returns>
public async Task<OperationResult> CreateOrUpdateInstitutionContractTemp(long contractingPartyTempId, string periodModel, string paymentModel, double totalPayment, double valueAddedTax)
public async Task<OperationResult> CreateOrUpdateInstitutionContractTemp(long contractingPartyTempId, string periodModel, string paymentModel, double totalPayment, double valueAddedTax, DateTime contractStart)
{
var op = new OperationResult();
var institutionContractTemp = await
_institutionContractTempRepository.GetInstitutionContractTemp(0, contractingPartyTempId);
var contractStartDate = contractStart;
string contractStartFa = contractStart.ToFarsi();
var findeEnd = Tools.FindEndOfContract(contractStartFa, periodModel);
var contractEndDate = findeEnd.endDateGr;
if (institutionContractTemp == null)
{
var periodModelInt = Convert.ToInt32(periodModel);
var contractstart = DateTime.Now;
var contractEnd = DateTime.Now.AddMonths(periodModelInt);
var create = new InstitutionContractTemp(contractingPartyTempId,paymentModel,periodModel,totalPayment,contractstart,contractEnd,"official", valueAddedTax,"", "BeforeSendVerifyCode", 0,null,null);
var create = new InstitutionContractTemp(contractingPartyTempId, paymentModel, periodModel, totalPayment, contractStartDate, contractEndDate, "official", valueAddedTax, "", "BeforeSendVerifyCode", 0, null, null);
_institutionContractTempRepository.Create(create);
_institutionContractTempRepository.SaveChanges();
return op.Succcedded();
@@ -451,20 +550,20 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
{
if (institutionContractTemp.VerifyCodeEndTime != null)
{
var spaning = (institutionContractTemp.VerifyCodeEndTime.Value - DateTime.Now);
var spaning = (DateTime.Now - institutionContractTemp.VerifyCodeEndTime.Value);
if (institutionContractTemp.RegistrationStatus == "VerifyCodeSent" && spaning > new TimeSpan(0, 0, 0) && spaning < new TimeSpan(0, 1, 0))
return op.Failed("شما به تازگی پیامک دریافت نموده اید دو دقیقه صبر کنید و دوباره تلاش کنید");
}
if (institutionContractTemp.RegistrationStatus == "Completed")
return op.Failed("شما قبلا ثبت نام خود را تکمیل نموده اید");
var periodModelInt = Convert.ToInt32(periodModel);
var contractstart = DateTime.Now;
var contractEnd = DateTime.Now.AddMonths(periodModelInt);
var update = _institutionContractTempRepository.Get(institutionContractTemp.Id);
update.Edit(contractingPartyTempId, paymentModel, periodModel, totalPayment, contractstart, contractEnd, "official", valueAddedTax, "", "BeforeSendVerifyCode", 0, null, null);
update.Edit(contractingPartyTempId, paymentModel, periodModel, totalPayment, contractStartDate, contractEndDate, "official", valueAddedTax, "", "BeforeSendVerifyCode", 0, null, null);
_institutionContractTempRepository.SaveChanges();
return op.Succcedded();
}
@@ -483,14 +582,14 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
{
var op = new OperationResult();
var institutionContractTemp = await
var institutionContractTemp = await
_institutionContractTempRepository.GetInstitutionContractTemp(0, contractingPartyTempId);
if (institutionContractTemp == null)
return op.Failed(ظا");
return op.Failed(طا");
var update = _institutionContractTempRepository.Get(institutionContractTemp.Id);
if (institutionContractTemp.RegistrationStatus == "BeforeSendVerifyCode")
@@ -516,26 +615,29 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
return op.Succcedded(1, "کد برای شما پیامک شد");
}
}
if (institutionContractTemp.RegistrationStatus == "VerifyCodeSent")
{
var spaning = (institutionContractTemp.VerifyCodeEndTime.Value - DateTime.Now);
if ((spaning > new TimeSpan(0, 0, 0) && spaning < new TimeSpan(0, 1, 0)))
if (DateTime.Now < institutionContractTemp.VerifyCodeEndTime.Value)
return op.Failed("کد دریافت شده را وارد کنید");
var spaning = (DateTime.Now - institutionContractTemp.VerifyCodeEndTime.Value);
if ((spaning > new TimeSpan(0, 0, 0) && spaning < new TimeSpan(0, 1, 0)))
return op.Failed("شما به تازگی پیامک دریافت نموده اید دو دقیقه صبر کنید و دوباره تلاش کنید");
if ((spaning > new TimeSpan(0, 0, 0) && spaning > new TimeSpan(0, 1, 0)))
if ((spaning > new TimeSpan(0, 1, 0)))
{
//ساخت کد شش رقمی
Random generator = new Random();
String code = generator.Next(1, 1000000).ToString("D6");
//ارسال اس ام اس
var getContractingPaty = _contractingPartyTempRepository.GetByContractingPartyTempId(contractingPartyTempId);
var sendResult =await _smsService.SendVerifyCodeToClient(getContractingPaty.Phone, code);
var sendResult = await _smsService.SendVerifyCodeToClient(getContractingPaty.Phone, code);
if(!sendResult.IsSuccedded)
if (!sendResult.IsSuccedded)
return op.Failed($"{sendResult.Message}");
@@ -544,16 +646,16 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
//ذخیره تاریخ ارسال و مهلت پایان
//ذخیره آیدی پیامک
//تغییر وضعیت به ارسال شده
if (update != null)
{
update.Update(code, "VerifyCodeSent",sendResult.MessageId, DateTime.Now, DateTime.Now.AddMinutes(2));
update.Update(code, "VerifyCodeSent", sendResult.MessageId, DateTime.Now, DateTime.Now.AddMinutes(2));
_institutionContractTempRepository.SaveChanges();
return op.Succcedded(1, "کد برای شما پیامک شد");
}
}
}
@@ -580,25 +682,25 @@ public class TemporaryClientRegistrationApplication : ITemporaryClientRegistrati
_institutionContractTempRepository.GetInstitutionContractTemp(0, contractingPartyTempId);
if (institutionContractTemp == null)
return op.Failed("خظا");
if(institutionContractTemp.RegistrationStatus != "VerifyCodeSent")
if (institutionContractTemp.RegistrationStatus != "VerifyCodeSent")
return op.Failed("خطا");
if(institutionContractTemp.VerifyCodeEndTime < DateTime.Now)
if (institutionContractTemp.VerifyCodeEndTime < DateTime.Now)
return op.Failed("کد شما منقضی شده است");
if(institutionContractTemp.SendVerifyCodeTime < DateTime.Now && institutionContractTemp.VerifyCodeEndTime >= DateTime.Now)
if (institutionContractTemp.SendVerifyCodeTime < DateTime.Now && institutionContractTemp.VerifyCodeEndTime >= DateTime.Now)
{
if (institutionContractTemp.VerifyCode == verifyCode)
{
return op.Succcedded();
}
else
{
return op.Failed("کد وارد شده صحیح نیست");
}
}

View File

@@ -73,28 +73,10 @@ public class WorkshopAppliction : IWorkshopApplication
if (string.IsNullOrEmpty(command.WorkshopName) || string.IsNullOrEmpty(command.ArchiveCode))
return operation.Failed("موارد اجباری را پر کنید");
//if (_workshopRepository.Exists(x => x.WorkshopName == command.WorkshopName))
// return operation.Failed("نام کارگاه تکراری است");
//if (_workshopRepository.Exists(x => x.WorkshopName == command.WorkshopName))
// return operation.Failed("نام کارگاه تکراری است");
if (command.ContractTerm != "1" && command.ContractTerm != "ForEver" && (command.CutContractEndOfYear != IsActive.False && command.CutContractEndOfYear != IsActive.True))
return operation.Failed("لطفا تیک قرداداد منتهی به پایان سال را تعیین وضعیت کنید");
if (command.ContractTerm == "1" && command.ContractTerm == "ForEver")
command.CutContractEndOfYear = IsActive.None;
if (!command.CreateContract)
{
command.SignContract = false;
command.CreateCheckout = false;
command.SignCheckout = false;
}
if (!command.CreateCheckout)
{
command.SignCheckout = false;
}
if (_workshopRepository.Exists(x => !string.IsNullOrEmpty(x.InsuranceCode) && x.InsuranceCode == command.InsuranceCode))
if (_workshopRepository.Exists(x => !string.IsNullOrEmpty(x.InsuranceCode) && x.InsuranceCode == command.InsuranceCode))
return operation.Failed("کد بیمه کارگاه تکراری است");
if (!string.IsNullOrEmpty(command.Address) && string.IsNullOrEmpty(command.State))
@@ -163,11 +145,7 @@ public class WorkshopAppliction : IWorkshopApplication
command.ArchiveCode, command.AgentName, command.AgentPhone, command.State, command.City,
command.Address,
command.TypeOfInsuranceSend, command.TypeOfContract,command.ContractTerm,command.AgreementNumber
,command.FixedSalary, command.Population,command.InsuranceJobId,command.ZoneName,command.AddBonusesPay,
command.AddYearsPay,command.AddLeavePay,command.TotalPaymentHide,command.IsClassified,command.ComputeOptions,
command.BonusesOptions,command.YearsOptions,command.HasRollCallFreeVip,command.WorkshopHolidayWorking,
command.InsuranceCheckoutOvertime, command.InsuranceCheckoutFamilyAllowance, command.CreateContract, command.SignContract,
command.CreateCheckout, command.SignCheckout, command.CutContractEndOfYear);
,command.FixedSalary, command.Population,command.InsuranceJobId,command.ZoneName,command.AddBonusesPay,command.AddYearsPay,command.AddLeavePay,command.TotalPaymentHide,command.IsClassified,command.ComputeOptions,command.BonusesOptions,command.YearsOptions,command.HasRollCallFreeVip,command.WorkshopHolidayWorking, command.InsuranceCheckoutOvertime, command.InsuranceCheckoutFamilyAllowance);
_workshopRepository.Create(workshop);
_workshopRepository.SaveChanges();
@@ -233,28 +211,10 @@ public class WorkshopAppliction : IWorkshopApplication
return operation.Failed("لطفا کارفرما را انتخاب نمایید");
var employer = command.EmployerIdList.ToList();
//if (_workshopRepository.Exists(x => x.WorkshopName == command.WorkshopName && x.id != command.Id))
// return operation.Failed(" نام کارگاه تکراری است ");
//if (_workshopRepository.Exists(x => x.WorkshopName == command.WorkshopName && x.id != command.Id))
// return operation.Failed(" نام کارگاه تکراری است ");
if (command.ContractTerm != "1" && command.ContractTerm != "ForEver" && (command.CutContractEndOfYear != IsActive.False && command.CutContractEndOfYear != IsActive.True))
return operation.Failed("لطفا تیک قرداداد منتهی به پایان سال را تعیین وضعیت کنید");
if (command.ContractTerm == "1" && command.ContractTerm == "ForEver")
command.CutContractEndOfYear = IsActive.None;
if (!command.CreateContract)
{
command.SignContract = false;
command.CreateCheckout = false;
command.SignCheckout = false;
}
if (!command.CreateCheckout)
{
command.SignCheckout = false;
}
if (command.TypeOfInsuranceSend != null && string.IsNullOrEmpty(command.InsuranceCode))
if (command.TypeOfInsuranceSend != null && string.IsNullOrEmpty(command.InsuranceCode))
return operation.Failed("لطفا کد بیمه کارگاه را وارد کنید");
if (_workshopRepository.Exists(x => !string.IsNullOrEmpty(x.InsuranceCode) && x.InsuranceCode == command.InsuranceCode && x.id != command.Id))
return operation.Failed("کد بیمه کارگاه تکراری است");
@@ -355,10 +315,7 @@ public class WorkshopAppliction : IWorkshopApplication
command.Address,
command.TypeOfInsuranceSend, command.TypeOfContract,command.ContractTerm, command.AgreementNumber
, command.FixedSalary, command.Population, command.InsuranceJobId, command.ZoneName,
command.AddBonusesPay, command.AddYearsPay, command.AddLeavePay, command.TotalPaymentHide,command.IsClassified,
command.ComputeOptions,command.BonusesOptions, command.YearsOptions,command.HasRollCallFreeVip,
command.WorkshopHolidayWorking, command.InsuranceCheckoutOvertime,command.InsuranceCheckoutFamilyAllowance,
command.CreateContract, command.SignContract, command.CreateCheckout, command.SignCheckout, command.CutContractEndOfYear);
command.AddBonusesPay, command.AddYearsPay, command.AddLeavePay, command.TotalPaymentHide,command.IsClassified, command.ComputeOptions,command.BonusesOptions, command.YearsOptions,command.HasRollCallFreeVip, command.WorkshopHolidayWorking, command.InsuranceCheckoutOvertime,command.InsuranceCheckoutFamilyAllowance);
_workshopRepository.SaveChanges();
_workshopRepository.RemoveOldRelation(command.Id);
@@ -578,169 +535,159 @@ public class WorkshopAppliction : IWorkshopApplication
{
return _workshopRepository.SearchForClient(searchModel);
}
public OperationResult CreateForClient(CreateWorkshop command)
{
throw new NotImplementedException();
var accountIds = new List<long>();
var operation = new OperationResult();
//if (command.EmployerIdList == null)
// return operation.Failed("لطفا کارفرما را انتخاب نمایید");
var employer = command.EmployerIdList.ToList();
if (command.AccountIdsList != null)
{
accountIds = command.AccountIdsList.ToList();
}
if (string.IsNullOrEmpty(command.WorkshopName) || string.IsNullOrEmpty(command.ArchiveCode) || command.ArchiveCode == "0")
return operation.Failed("موارد اجباری را پر کنید");
//if (_workshopRepository.Exists(x => x.WorkshopName == command.WorkshopName))
// return operation.Failed("نام کارگاه تکراری است");
if (_workshopRepository.Exists(x => x.InsuranceCode != null && x.InsuranceCode == command.InsuranceCode))
{
if (_workshopRepository.ExistsWorkshopAccountInsuranceCode(command.InsuranceCode))
return operation.Failed("کد بیمه کارگاه تکراری است");
}
if (_workshopRepository.ExistsWorkshopAccountArchiveCode(command.ArchiveCode))
return operation.Failed("شماره بایگانی تکراری است");
if (string.IsNullOrEmpty(command.State)) //(!string.IsNullOrEmpty(command.Address) && string.IsNullOrEmpty(command.State))
return operation.Failed("لطفا استان و شهر را انتخاب کنید");
if (command.City == "0" || command.City == "شهرستان")
return operation.Failed("لطفا شهر را انتخاب کنید");
if (string.IsNullOrEmpty(command.Address))
return operation.Failed("لطفا آدرس را وارد کنید");
if (!string.IsNullOrEmpty(command.TypeOfInsuranceSend) && command.TypeOfInsuranceSend != "false" && string.IsNullOrEmpty(command.InsuranceCode))
return operation.Failed("لطفا کد بیمه کارگاه را وارد کنید");
if (command.FixedSalary)
{
if (command.InsuranceJobId == 0 || command.InsuranceJobId == null)
return operation.Failed("لطفا صنف را انتخاب کنید");
if (string.IsNullOrWhiteSpace(command.Population))
return operation.Failed("لطفا جمعیت شهر را انتخاب کنید");
}
//if (string.IsNullOrWhiteSpace(command.TypeOfInsuranceSend))
// return operation.Failed("لطفا نوع ارسال لیست بیمه را مشخص کنید");
var workshop = new Workshop(command.WorkshopName, command.WorkshopSureName, command.InsuranceCode,command.TypeOfOwnership,
command.ArchiveCode, command.AgentName, command.AgentPhone, command.State, command.City, command.Address,
command.TypeOfInsuranceSend, command.TypeOfContract, command.ContractTerm, command.AgreementNumber, command.FixedSalary,
command.Population, command.InsuranceJobId, command.ZoneName, command.AddBonusesPay,
command.AddYearsPay, command.AddLeavePay,command.TotalPaymentHide, command.IsClassified, command.ComputeOptions,
command.BonusesOptions, command.YearsOptions,command.HasRollCallFreeVip, command.WorkshopHolidayWorking,
command.InsuranceCheckoutOvertime,command.InsuranceCheckoutFamilyAllowance);
_workshopRepository.Create(workshop);
_workshopRepository.SaveChanges();
foreach (var e in employer)
{
_workshopRepository.EmployerWorkshop(workshop.id, e);
}
_workshopRepository.CreateWorkshopAccounts(accountIds, workshop.id);
return operation.Succcedded();
}
public OperationResult EditForClient(EditWorkshop command)
{
throw new NotImplementedException();
var leftSearch = new LeftWorkSearchModel()
{
WorkshopId = command.Id
};
var leftWork = _leftWorkRepository.search(leftSearch);
var accountIds = new List<long>();
var operation = new OperationResult();
var workshop = _workshopRepository.Get(command.Id);
if (command.AccountIdsList != null)
{
accountIds = command.AccountIdsList.ToList();
}
if (workshop == null)
operation.Failed("رکورد مورد نظر وجود ندارد");
if (command.EmployerIdList == null)
return operation.Failed("لطفا کارفرما را انتخاب نمایید");
var employer = command.EmployerIdList.ToList();
if (string.IsNullOrEmpty(command.WorkshopName) || string.IsNullOrEmpty(command.ArchiveCode) || command.ArchiveCode == "0")
return operation.Failed("موارد اجباری را پر کنید");
//if (_workshopRepository.Exists(x => x.WorkshopName == command.WorkshopName && x.id != command.Id))
// return operation.Failed(" رکورد مورد نظر تکراری است ");
if (_workshopRepository.Exists(x =>
x.InsuranceCode != null && x.InsuranceCode == command.InsuranceCode && x.id != command.Id))
{
if (_workshopRepository.ExistsWorkshopAccountInsuranceCodeByworkshopId(command.Id, command.InsuranceCode))
return operation.Failed("کد بیمه کارگاه تکراری است");
}
if (_workshopRepository.ExistsWorkshopAccountArchiveCodeByWorkshopId(command.Id, command.ArchiveCode))
return operation.Failed("شماره بایگانی تکراری است");
if (command.State == null)
return operation.Failed("لطفا استان و شهر را انتخاب کنید");
if ((command.City == "0" || command.City == "شهرستان"))
return operation.Failed("لطفا شهر را انتخاب کنید");
if (command.TypeOfInsuranceSend != null && command.InsuranceCode == null)
return operation.Failed("لطفا کد بیمه کارگاه را وارد کنید");
if (command.Address == null)
return operation.Failed("لطفا آدرس را وارد کنید");
if (command.FixedSalary)
{
if (command.InsuranceJobId == 0 || command.InsuranceJobId == null)
return operation.Failed("لطفا صنف را انتخاب کنید");
if (string.IsNullOrWhiteSpace(command.Population))
return operation.Failed("لطفا جمعیت شهر را انتخاب کنید");
}
workshop.Edit(command.WorkshopName, command.WorkshopSureName, command.InsuranceCode, command.TypeOfOwnership,
command.ArchiveCode, command.AgentName, command.AgentPhone, command.State, command.City,
command.Address,
command.TypeOfInsuranceSend, command.TypeOfContract, command.ContractTerm, command.AgreementNumber
, command.FixedSalary, command.Population, command.InsuranceJobId, command.ZoneName,
command.AddBonusesPay, command.AddYearsPay, command.AddLeavePay,command.TotalPaymentHide,command.IsClassified,
command.ComputeOptions, command.BonusesOptions, command.YearsOptions,command.HasRollCallFreeVip, command.WorkshopHolidayWorking,
command.InsuranceCheckoutOvertime, command.InsuranceCheckoutFamilyAllowance);
_workshopRepository.SaveChanges();
//_workshopRepository.RemoveOldRelation(command.Id);
_workshopRepository.RemoveEmployerWorkshop(command.Id);
foreach (var e in employer)
{
_workshopRepository.EmployerWorkshop(workshop.id, e);
}
// _workshopRepository.WorkshopAccounts(accountIds, workshop.id);
foreach (var item in leftWork)
{
var editLeft = _leftWorkRepository.Get(item.Id);
editLeft.EditBonuses(command.AddBonusesPay, command.AddYearsPay, command.AddLeavePay);
_leftWorkRepository.SaveChanges();
}
return operation.Succcedded();
}
//public OperationResult CreateForClient(CreateWorkshop command)
//{
// var accountIds = new List<long>();
// var operation = new OperationResult();
// //if (command.EmployerIdList == null)
// // return operation.Failed("لطفا کارفرما را انتخاب نمایید");
// var employer = command.EmployerIdList.ToList();
// if (command.AccountIdsList != null)
// {
// accountIds = command.AccountIdsList.ToList();
// }
// if (string.IsNullOrEmpty(command.WorkshopName) || string.IsNullOrEmpty(command.ArchiveCode) || command.ArchiveCode == "0")
// return operation.Failed("موارد اجباری را پر کنید");
// //if (_workshopRepository.Exists(x => x.WorkshopName == command.WorkshopName))
// // return operation.Failed("نام کارگاه تکراری است");
// if (_workshopRepository.Exists(x => x.InsuranceCode != null && x.InsuranceCode == command.InsuranceCode))
// {
// if (_workshopRepository.ExistsWorkshopAccountInsuranceCode(command.InsuranceCode))
// return operation.Failed("کد بیمه کارگاه تکراری است");
// }
// if (_workshopRepository.ExistsWorkshopAccountArchiveCode(command.ArchiveCode))
// return operation.Failed("شماره بایگانی تکراری است");
// if (string.IsNullOrEmpty(command.State)) //(!string.IsNullOrEmpty(command.Address) && string.IsNullOrEmpty(command.State))
// return operation.Failed("لطفا استان و شهر را انتخاب کنید");
// if (command.City == "0" || command.City == "شهرستان")
// return operation.Failed("لطفا شهر را انتخاب کنید");
// if (string.IsNullOrEmpty(command.Address))
// return operation.Failed("لطفا آدرس را وارد کنید");
// if (!string.IsNullOrEmpty(command.TypeOfInsuranceSend) && command.TypeOfInsuranceSend != "false" && string.IsNullOrEmpty(command.InsuranceCode))
// return operation.Failed("لطفا کد بیمه کارگاه را وارد کنید");
// if (command.FixedSalary)
// {
// if (command.InsuranceJobId == 0 || command.InsuranceJobId == null)
// return operation.Failed("لطفا صنف را انتخاب کنید");
// if (string.IsNullOrWhiteSpace(command.Population))
// return operation.Failed("لطفا جمعیت شهر را انتخاب کنید");
// }
// //if (string.IsNullOrWhiteSpace(command.TypeOfInsuranceSend))
// // return operation.Failed("لطفا نوع ارسال لیست بیمه را مشخص کنید");
// var workshop = new Workshop(command.WorkshopName, command.WorkshopSureName, command.InsuranceCode,command.TypeOfOwnership,
// command.ArchiveCode, command.AgentName, command.AgentPhone, command.State, command.City, command.Address,
// command.TypeOfInsuranceSend, command.TypeOfContract, command.ContractTerm, command.AgreementNumber, command.FixedSalary,
// command.Population, command.InsuranceJobId, command.ZoneName, command.AddBonusesPay,
// command.AddYearsPay, command.AddLeavePay,command.TotalPaymentHide, command.IsClassified, command.ComputeOptions,
// command.BonusesOptions, command.YearsOptions,command.HasRollCallFreeVip, command.WorkshopHolidayWorking,
// command.InsuranceCheckoutOvertime,command.InsuranceCheckoutFamilyAllowance);
// _workshopRepository.Create(workshop);
// _workshopRepository.SaveChanges();
// foreach (var e in employer)
// {
// _workshopRepository.EmployerWorkshop(workshop.id, e);
// }
// _workshopRepository.CreateWorkshopAccounts(accountIds, workshop.id);
// return operation.Succcedded();
//}
//public OperationResult EditForClient(EditWorkshop command)
//{
// var leftSearch = new LeftWorkSearchModel()
// {
// WorkshopId = command.Id
// };
// var leftWork = _leftWorkRepository.search(leftSearch);
// var accountIds = new List<long>();
// var operation = new OperationResult();
// var workshop = _workshopRepository.Get(command.Id);
// if (command.AccountIdsList != null)
// {
// accountIds = command.AccountIdsList.ToList();
// }
// if (workshop == null)
// operation.Failed("رکورد مورد نظر وجود ندارد");
// if (command.EmployerIdList == null)
// return operation.Failed("لطفا کارفرما را انتخاب نمایید");
// var employer = command.EmployerIdList.ToList();
// if (string.IsNullOrEmpty(command.WorkshopName) || string.IsNullOrEmpty(command.ArchiveCode) || command.ArchiveCode == "0")
// return operation.Failed("موارد اجباری را پر کنید");
// //if (_workshopRepository.Exists(x => x.WorkshopName == command.WorkshopName && x.id != command.Id))
// // return operation.Failed(" رکورد مورد نظر تکراری است ");
// if (_workshopRepository.Exists(x =>
// x.InsuranceCode != null && x.InsuranceCode == command.InsuranceCode && x.id != command.Id))
// {
// if (_workshopRepository.ExistsWorkshopAccountInsuranceCodeByworkshopId(command.Id, command.InsuranceCode))
// return operation.Failed("کد بیمه کارگاه تکراری است");
// }
// if (_workshopRepository.ExistsWorkshopAccountArchiveCodeByWorkshopId(command.Id, command.ArchiveCode))
// return operation.Failed("شماره بایگانی تکراری است");
// if (command.State == null)
// return operation.Failed("لطفا استان و شهر را انتخاب کنید");
// if ((command.City == "0" || command.City == "شهرستان"))
// return operation.Failed("لطفا شهر را انتخاب کنید");
// if (command.TypeOfInsuranceSend != null && command.InsuranceCode == null)
// return operation.Failed("لطفا کد بیمه کارگاه را وارد کنید");
// if (command.Address == null)
// return operation.Failed("لطفا آدرس را وارد کنید");
// if (command.FixedSalary)
// {
// if (command.InsuranceJobId == 0 || command.InsuranceJobId == null)
// return operation.Failed("لطفا صنف را انتخاب کنید");
// if (string.IsNullOrWhiteSpace(command.Population))
// return operation.Failed("لطفا جمعیت شهر را انتخاب کنید");
// }
// workshop.Edit(command.WorkshopName, command.WorkshopSureName, command.InsuranceCode, command.TypeOfOwnership,
// command.ArchiveCode, command.AgentName, command.AgentPhone, command.State, command.City,
// command.Address,
// command.TypeOfInsuranceSend, command.TypeOfContract, command.ContractTerm, command.AgreementNumber
// , command.FixedSalary, command.Population, command.InsuranceJobId, command.ZoneName,
// command.AddBonusesPay, command.AddYearsPay, command.AddLeavePay,command.TotalPaymentHide,command.IsClassified,
// command.ComputeOptions, command.BonusesOptions, command.YearsOptions,command.HasRollCallFreeVip, command.WorkshopHolidayWorking,
// command.InsuranceCheckoutOvertime, command.InsuranceCheckoutFamilyAllowance);
// _workshopRepository.SaveChanges();
// //_workshopRepository.RemoveOldRelation(command.Id);
// _workshopRepository.RemoveEmployerWorkshop(command.Id);
// foreach (var e in employer)
// {
// _workshopRepository.EmployerWorkshop(workshop.id, e);
// }
// // _workshopRepository.WorkshopAccounts(accountIds, workshop.id);
// foreach (var item in leftWork)
// {
// var editLeft = _leftWorkRepository.Get(item.Id);
// editLeft.EditBonuses(command.AddBonusesPay, command.AddYearsPay, command.AddLeavePay);
// _leftWorkRepository.SaveChanges();
// }
// return operation.Succcedded();
//}
public bool GetWorkshopAccountByAcountID(long acountID)
{

View File

@@ -160,7 +160,7 @@ public class YearlySalaryApplication : IYearlySalaryApplication
public InsuranceYearlySalaryModel GetInsuranceItems(DateTime startDate, DateTime endDate, string year)
{
return _yearlySalaryRepository.GetInsuranceItems(startDate, endDate, year);
}
}
#endregion
}

View File

@@ -9,6 +9,7 @@ using Company.Domain.CheckoutAgg;
using Company.Domain.ClassifiedSalaryAgg;
using Company.Domain.ClientEmployeeWorkshopAgg;
using Company.Domain.Contact2Agg;
using Company.Domain.ContactUsAgg;
using Company.Domain.ContarctingPartyAgg;
using Company.Domain.ContractAgg;
using Company.Domain.ContractingPartyAccountAgg;
@@ -175,6 +176,8 @@ public class CompanyContext : DbContext
public DbSet<EmployeeClientTemp> EmployeeClientTemps { get; set; }
public DbSet<LeftWorkTemp> LeftWorkTemps { get; set; }
public DbSet<ContactUs> ContactUs { get; set; }
public DbSet<EmployeeAuthorizeTemp> EmployeeAuthorizeTemps { get; set; }
public DbSet<AdminMonthlyOverview> AdminMonthlyOverviews { get; set; }

View File

@@ -1,6 +1,5 @@
using System;
using _0_Framework.Application;
using _0_Framework.InfraStructure;
using Company.Domain.CheckoutAgg;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
@@ -74,28 +73,5 @@ class CheckoutMapping : IEntityTypeConfiguration<Checkout>
salaryAid.Property(x => x.Amount).HasMaxLength(25);
salaryAid.Property(x => x.CalculationDateTimeFa).HasMaxLength(15);
});
builder.OwnsOne(x => x.CheckoutRollCall, rollCall =>
{
rollCall.Property(x => x.TotalPresentTimeSpan).HasTimeSpanConversion();
rollCall.Property(x => x.TotalBreakTimeSpan).HasTimeSpanConversion();
rollCall.Property(x => x.TotalWorkingTimeSpan).HasTimeSpanConversion();
rollCall.Property(x => x.TotalPaidLeaveTmeSpan).HasTimeSpanConversion();
rollCall.Property(x => x.TotalSickLeaveTimeSpan).HasTimeSpanConversion();
rollCall.Property(x => x.TotalMandatoryTimeSpan).HasTimeSpanConversion();
rollCall.OwnsMany(x => x.RollCallDaysCollection, rollCallDay =>
{
rollCallDay.HasKey(x => x.Id);
rollCallDay.WithOwner().HasForeignKey(x => x.CheckoutId);
rollCallDay.Property(x => x.WorkingTimeSpan).HasTimeSpanConversion();
rollCallDay.Property(x => x.BreakTimeSpan).HasTimeSpanConversion();
rollCallDay.Property(x => x.FirstStartDate).HasMaxLength(18);
rollCallDay.Property(x => x.FirstEndDate).HasMaxLength(18);
rollCallDay.Property(x => x.SecondStartDate).HasMaxLength(18);
rollCallDay.Property(x => x.SecondEndDate).HasMaxLength(18);
rollCallDay.Property(x => x.LeaveType).HasMaxLength(18);
});
});
}
}

View File

@@ -0,0 +1,20 @@
using Company.Domain.ContactUsAgg;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
namespace CompanyManagment.EFCore.Mapping;
public class ContactUsMapping:IEntityTypeConfiguration<ContactUs>
{
public void Configure(EntityTypeBuilder<ContactUs> builder)
{
builder.HasKey(x => x.id);
builder.Property(x => x.FullName).HasMaxLength(200);
builder.Property(x => x.Title).HasMaxLength(200);
builder.Property(x => x.Email).HasMaxLength(200);
builder.Property(x => x.FirstName).HasMaxLength(100);
builder.Property(x => x.LastName).HasMaxLength(100);
builder.Property(x => x.Message).HasMaxLength(500);
builder.Property(x => x.PhoneNumber).HasMaxLength(20);
}
}

View File

@@ -39,7 +39,7 @@ public class PersonalContractingpartyMapping : IEntityTypeConfiguration<Personal
builder.Property(x => x.IdNumberSerial).HasMaxLength(15);
builder.Property(x => x.FatherName).HasMaxLength(20);
builder.Property(x => x.DateOfBirth).IsRequired(false);
builder.Property(x => x.Gender).HasConversion(
builder.Property(x => x.Gender).HasConversion(
v => v.ToString(),
v => string.IsNullOrWhiteSpace(v) ? Gender.None : (Gender)Enum.Parse(typeof(Gender), v)).HasMaxLength(6);

View File

@@ -1,6 +1,4 @@
using System;
using _0_Framework.Application;
using Company.Domain.InsurancWorkshopInfoAgg;
using Company.Domain.InsurancWorkshopInfoAgg;
using Company.Domain.WorkshopAgg;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
@@ -40,13 +38,10 @@ partial class WorkshopMapping : IEntityTypeConfiguration<Workshop>
builder.Property(x => x.IsOldContract);
builder.Property(x => x.HasRollCallFreeVip).HasMaxLength(5);
builder.Property(x => x.WorkshopHolidayWorking);
builder.Property(x => x.CutContractEndOfYear).HasConversion(x => x.ToString()
, x => ((IsActive)Enum.Parse(typeof(IsActive), x))).HasMaxLength(5);
//builder.HasOne(x => x.Employer)
// .WithMany(x => x.Workshops)
// .HasForeignKey(x => x.EmployerId);
builder.HasMany(x => x.LeftWorks)
//builder.HasOne(x => x.Employer)
// .WithMany(x => x.Workshops)
// .HasForeignKey(x => x.EmployerId);
builder.HasMany(x => x.LeftWorks)
.WithOne(x => x.Workshop)
.HasForeignKey(x => x.WorkshopId);

View File

@@ -1,6 +1,5 @@
// <auto-generated />
using System;
using System.Collections.Generic;
using CompanyManagment.EFCore;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
@@ -13,8 +12,8 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
namespace CompanyManagment.EFCore.Migrations
{
[DbContext(typeof(CompanyContext))]
[Migration("20250611172746_add settings for employee compute options")]
partial class addsettingsforemployeecomputeoptions
[Migration("20250423184716_add contact us ")]
partial class addcontactus
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
@@ -26,36 +25,6 @@ namespace CompanyManagment.EFCore.Migrations
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("Company.Domain.AdminMonthlyOverviewAgg.AdminMonthlyOverview", b =>
{
b.Property<long>("id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("id"));
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<int>("Month")
.HasColumnType("int");
b.Property<string>("Status")
.IsRequired()
.HasMaxLength(155)
.HasColumnType("nvarchar(155)");
b.Property<long>("WorkshopId")
.HasColumnType("bigint");
b.Property<int>("Year")
.HasColumnType("int");
b.HasKey("id");
b.ToTable("AdminMonthlyOverviews");
});
modelBuilder.Entity("Company.Domain.AndroidApkVersionAgg.AndroidApkVersion", b =>
{
b.Property<long>("id")
@@ -563,6 +532,50 @@ namespace CompanyManagment.EFCore.Migrations
b.ToTable("TextManager_Contact", (string)null);
});
modelBuilder.Entity("Company.Domain.ContactUsAgg.ContactUs", b =>
{
b.Property<long>("id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("id"));
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<string>("Email")
.HasMaxLength(200)
.HasColumnType("nvarchar(200)");
b.Property<string>("FirstName")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<string>("FullName")
.HasMaxLength(200)
.HasColumnType("nvarchar(200)");
b.Property<string>("LastName")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<string>("Message")
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.Property<string>("PhoneNumber")
.HasMaxLength(20)
.HasColumnType("nvarchar(20)");
b.Property<string>("Title")
.HasMaxLength(200)
.HasColumnType("nvarchar(200)");
b.HasKey("id");
b.ToTable("ContactUs");
});
modelBuilder.Entity("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", b =>
{
b.Property<long>("id")
@@ -1529,14 +1542,6 @@ namespace CompanyManagment.EFCore.Migrations
.HasMaxLength(20)
.HasColumnType("nvarchar(20)");
b.Property<string>("IdNumberSeri")
.HasMaxLength(25)
.HasColumnType("nvarchar(25)");
b.Property<string>("IdNumberSerial")
.HasMaxLength(25)
.HasColumnType("nvarchar(25)");
b.Property<string>("InsuranceCode")
.HasMaxLength(10)
.HasColumnType("nvarchar(10)");
@@ -1633,62 +1638,6 @@ namespace CompanyManagment.EFCore.Migrations
b.ToTable("Employees", (string)null);
});
modelBuilder.Entity("Company.Domain.EmployeeAuthorizeTempAgg.EmployeeAuthorizeTemp", b =>
{
b.Property<long>("id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("id"));
b.Property<DateTime>("BirthDate")
.HasColumnType("datetime2");
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<string>("FName")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<string>("FatherName")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<string>("Gender")
.IsRequired()
.HasMaxLength(15)
.HasColumnType("nvarchar(15)");
b.Property<string>("IdNumber")
.HasMaxLength(15)
.HasColumnType("nvarchar(15)");
b.Property<string>("IdNumberSeri")
.HasMaxLength(25)
.HasColumnType("nvarchar(25)");
b.Property<string>("IdNumberSerial")
.HasMaxLength(25)
.HasColumnType("nvarchar(25)");
b.Property<string>("LName")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<string>("NationalCode")
.HasMaxLength(15)
.HasColumnType("nvarchar(15)");
b.HasKey("id");
b.HasIndex("NationalCode")
.IsUnique()
.HasFilter("[NationalCode] IS NOT NULL");
b.ToTable("EmployeeAuthorizeTemps", (string)null);
});
modelBuilder.Entity("Company.Domain.EmployeeBankInformationAgg.EmployeeBankInformation", b =>
{
b.Property<long>("id")
@@ -1812,24 +1761,12 @@ namespace CompanyManagment.EFCore.Migrations
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<bool>("CreateCheckout")
.HasColumnType("bit");
b.Property<bool>("CreateContract")
.HasColumnType("bit");
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<long>("EmployeeId")
.HasColumnType("bigint");
b.Property<bool>("SignCheckout")
.HasColumnType("bit");
b.Property<bool>("SignContract")
.HasColumnType("bit");
b.Property<long>("WorkshopId")
.HasColumnType("bigint");
@@ -1889,9 +1826,6 @@ namespace CompanyManagment.EFCore.Migrations
b.Property<long>("UploaderId")
.HasColumnType("bigint");
b.Property<long>("UploaderRoleId")
.HasColumnType("bigint");
b.Property<string>("UploaderType")
.IsRequired()
.HasMaxLength(20)
@@ -2003,9 +1937,6 @@ namespace CompanyManagment.EFCore.Migrations
b.Property<long>("EmployeeId")
.HasColumnType("bigint");
b.Property<double>("FamilyAllowance")
.HasColumnType("float");
b.Property<bool>("IncludeStatus")
.HasColumnType("bit");
@@ -2033,9 +1964,6 @@ namespace CompanyManagment.EFCore.Migrations
b.Property<double>("MonthlySalary")
.HasColumnType("float");
b.Property<double>("OverTimePay")
.HasColumnType("float");
b.Property<DateTime>("StartWorkDate")
.HasColumnType("datetime2");
@@ -2916,8 +2844,7 @@ namespace CompanyManagment.EFCore.Migrations
.HasColumnType("int");
b.Property<string>("HasValueAddedTax")
.HasMaxLength(10)
.HasColumnType("nvarchar(10)");
.HasColumnType("nvarchar(max)");
b.Property<string>("IsActiveString")
.HasMaxLength(5)
@@ -3265,9 +3192,6 @@ namespace CompanyManagment.EFCore.Migrations
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<DateTime?>("EndDate")
.HasColumnType("datetime2");
b.Property<long>("InsuranceJobId")
.HasColumnType("bigint");
@@ -3283,9 +3207,6 @@ namespace CompanyManagment.EFCore.Migrations
b.Property<double>("SalaryMoreThan")
.HasColumnType("float");
b.Property<DateTime?>("StartDate")
.HasColumnType("datetime2");
b.HasKey("id");
b.HasIndex("InsuranceJobId");
@@ -3366,64 +3287,6 @@ namespace CompanyManagment.EFCore.Migrations
.HasMaxLength(4)
.HasColumnType("nvarchar(4)");
b.ComplexProperty<Dictionary<string, object>>("Debt", "Company.Domain.InsuranceListAgg.InsuranceList.Debt#InsuranceListDebt", b1 =>
{
b1.IsRequired();
b1.Property<double>("Amount")
.HasColumnType("float");
b1.Property<DateTime>("DebtDate")
.HasColumnType("datetime2");
b1.Property<bool>("IsDone")
.HasColumnType("bit");
b1.Property<long>("MediaId")
.HasColumnType("bigint");
b1.Property<string>("Type")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
});
b.ComplexProperty<Dictionary<string, object>>("EmployerApproval", "Company.Domain.InsuranceListAgg.InsuranceList.EmployerApproval#InsuranceListEmployerApproval", b1 =>
{
b1.IsRequired();
b1.Property<string>("Description")
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b1.Property<bool>("IsDone")
.HasColumnType("bit");
b1.Property<string>("Status")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
});
b.ComplexProperty<Dictionary<string, object>>("Inspection", "Company.Domain.InsuranceListAgg.InsuranceList.Inspection#InsuranceListInspection", b1 =>
{
b1.IsRequired();
b1.Property<bool>("IsDone")
.HasColumnType("bit");
b1.Property<DateTime>("LastInspectionDateTime")
.HasColumnType("datetime2");
b1.Property<long>("MediaId")
.HasColumnType("bigint");
b1.Property<string>("Type")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
});
b.HasKey("id");
b.ToTable("InsuranceLists", (string)null);
@@ -4820,7 +4683,7 @@ namespace CompanyManagment.EFCore.Migrations
b.HasKey("id");
b.HasIndex("WorkshopId");
b.HasIndex("AccountId");
b.ToTable("RollCallServices", (string)null);
});
@@ -4836,15 +4699,6 @@ namespace CompanyManagment.EFCore.Migrations
b.Property<double>("Amount")
.HasColumnType("float");
b.Property<DateTime>("CalculationDate")
.HasColumnType("datetime2");
b.Property<int>("CalculationMonth")
.HasColumnType("int");
b.Property<int>("CalculationYear")
.HasColumnType("int");
b.Property<long>("CreatedByAccountId")
.HasColumnType("bigint");
@@ -5661,20 +5515,9 @@ namespace CompanyManagment.EFCore.Migrations
.HasMaxLength(10)
.HasColumnType("nvarchar(10)");
b.Property<bool>("CreateCheckout")
.HasColumnType("bit");
b.Property<bool>("CreateContract")
.HasColumnType("bit");
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<string>("CutContractEndOfYear")
.IsRequired()
.HasMaxLength(5)
.HasColumnType("nvarchar(5)");
b.Property<bool>("FixedSalary")
.HasColumnType("bit");
@@ -5682,12 +5525,6 @@ namespace CompanyManagment.EFCore.Migrations
.HasMaxLength(5)
.HasColumnType("nvarchar(5)");
b.Property<bool>("InsuranceCheckoutFamilyAllowance")
.HasColumnType("bit");
b.Property<bool>("InsuranceCheckoutOvertime")
.HasColumnType("bit");
b.Property<string>("InsuranceCode")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
@@ -5712,12 +5549,6 @@ namespace CompanyManagment.EFCore.Migrations
.HasMaxLength(25)
.HasColumnType("nvarchar(25)");
b.Property<bool>("SignCheckout")
.HasColumnType("bit");
b.Property<bool>("SignContract")
.HasColumnType("bit");
b.Property<string>("State")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
@@ -6200,97 +6031,6 @@ namespace CompanyManagment.EFCore.Migrations
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.OwnsMany("Company.Domain.CheckoutAgg.ValueObjects.CheckoutLoanInstallment", "LoanInstallments", b1 =>
{
b1.Property<long>("Checkoutid")
.HasColumnType("bigint");
b1.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property<int>("Id"));
b1.Property<string>("AmountForMonth")
.HasMaxLength(25)
.HasColumnType("nvarchar(25)");
b1.Property<long>("EntityId")
.HasColumnType("bigint");
b1.Property<string>("IsActive")
.IsRequired()
.HasMaxLength(5)
.HasColumnType("nvarchar(5)");
b1.Property<string>("LoanAmount")
.HasMaxLength(30)
.HasColumnType("nvarchar(30)");
b1.Property<string>("LoanRemaining")
.HasMaxLength(25)
.HasColumnType("nvarchar(25)");
b1.Property<string>("Month")
.HasMaxLength(2)
.HasColumnType("nvarchar(2)");
b1.Property<string>("Year")
.HasMaxLength(4)
.HasColumnType("nvarchar(4)");
b1.HasKey("Checkoutid", "Id");
b1.ToTable("CheckoutLoanInstallment");
b1.WithOwner()
.HasForeignKey("Checkoutid");
});
b.OwnsMany("Company.Domain.CheckoutAgg.ValueObjects.CheckoutSalaryAid", "SalaryAids", b1 =>
{
b1.Property<long>("Checkoutid")
.HasColumnType("bigint");
b1.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property<int>("Id"));
b1.Property<string>("Amount")
.HasMaxLength(25)
.HasColumnType("nvarchar(25)");
b1.Property<DateTime>("CalculationDateTime")
.HasColumnType("datetime2");
b1.Property<string>("CalculationDateTimeFa")
.HasMaxLength(15)
.HasColumnType("nvarchar(15)");
b1.Property<long>("EntityId")
.HasColumnType("bigint");
b1.Property<DateTime>("SalaryAidDateTime")
.HasColumnType("datetime2");
b1.Property<string>("SalaryAidDateTimeFa")
.HasMaxLength(15)
.HasColumnType("nvarchar(15)");
b1.HasKey("Checkoutid", "Id");
b1.ToTable("CheckoutSalaryAid");
b1.WithOwner()
.HasForeignKey("Checkoutid");
});
b.Navigation("LoanInstallments");
b.Navigation("SalaryAids");
b.Navigation("Workshop");
});
@@ -6528,9 +6268,6 @@ namespace CompanyManagment.EFCore.Migrations
b1.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b1.Property<long>("EntityId")
.HasColumnType("bigint");
b1.Property<string>("FineDateFa")
.HasMaxLength(12)
.HasColumnType("nvarchar(12)");
@@ -6570,9 +6307,6 @@ namespace CompanyManagment.EFCore.Migrations
.HasMaxLength(25)
.HasColumnType("nvarchar(25)");
b1.Property<long>("EntityId")
.HasColumnType("bigint");
b1.Property<string>("IsActive")
.IsRequired()
.HasMaxLength(5)
@@ -6620,9 +6354,6 @@ namespace CompanyManagment.EFCore.Migrations
b1.Property<string>("Description")
.HasColumnType("ntext");
b1.Property<long>("EntityId")
.HasColumnType("bigint");
b1.Property<DateTime>("GrantDate")
.HasColumnType("datetime2");
@@ -6662,16 +6393,6 @@ namespace CompanyManagment.EFCore.Migrations
.HasMaxLength(25)
.HasColumnType("nvarchar(25)");
b1.Property<DateTime>("CalculationDateTime")
.HasColumnType("datetime2");
b1.Property<string>("CalculationDateTimeFa")
.HasMaxLength(15)
.HasColumnType("nvarchar(15)");
b1.Property<long>("EntityId")
.HasColumnType("bigint");
b1.Property<DateTime>("SalaryAidDateTime")
.HasColumnType("datetime2");
@@ -6822,9 +6543,6 @@ namespace CompanyManagment.EFCore.Migrations
b1.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b1.Property<long>("EntityId")
.HasColumnType("bigint");
b1.Property<string>("FineDateFa")
.HasMaxLength(12)
.HasColumnType("nvarchar(12)");
@@ -6864,9 +6582,6 @@ namespace CompanyManagment.EFCore.Migrations
.HasMaxLength(25)
.HasColumnType("nvarchar(25)");
b1.Property<long>("EntityId")
.HasColumnType("bigint");
b1.Property<string>("IsActive")
.IsRequired()
.HasMaxLength(5)
@@ -6914,9 +6629,6 @@ namespace CompanyManagment.EFCore.Migrations
b1.Property<string>("Description")
.HasColumnType("ntext");
b1.Property<long>("EntityId")
.HasColumnType("bigint");
b1.Property<DateTime>("GrantDate")
.HasColumnType("datetime2");
@@ -6956,16 +6668,6 @@ namespace CompanyManagment.EFCore.Migrations
.HasMaxLength(25)
.HasColumnType("nvarchar(25)");
b1.Property<DateTime>("CalculationDateTime")
.HasColumnType("datetime2");
b1.Property<string>("CalculationDateTimeFa")
.HasMaxLength(15)
.HasColumnType("nvarchar(15)");
b1.Property<long>("EntityId")
.HasColumnType("bigint");
b1.Property<DateTime>("SalaryAidDateTime")
.HasColumnType("datetime2");
@@ -9247,7 +8949,7 @@ namespace CompanyManagment.EFCore.Migrations
{
b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop")
.WithMany("RollCallServicesList")
.HasForeignKey("WorkshopId")
.HasForeignKey("AccountId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();

View File

@@ -0,0 +1,42 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace CompanyManagment.EFCore.Migrations
{
/// <inheritdoc />
public partial class addcontactus : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "ContactUs",
columns: table => new
{
id = table.Column<long>(type: "bigint", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
FirstName = table.Column<string>(type: "nvarchar(100)", maxLength: 100, nullable: true),
LastName = table.Column<string>(type: "nvarchar(100)", maxLength: 100, nullable: true),
Email = table.Column<string>(type: "nvarchar(200)", maxLength: 200, nullable: true),
PhoneNumber = table.Column<string>(type: "nvarchar(20)", maxLength: 20, nullable: true),
Title = table.Column<string>(type: "nvarchar(200)", maxLength: 200, nullable: true),
Message = table.Column<string>(type: "nvarchar(500)", maxLength: 500, nullable: true),
FullName = table.Column<string>(type: "nvarchar(200)", maxLength: 200, nullable: true),
CreationDate = table.Column<DateTime>(type: "datetime2", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_ContactUs", x => x.id);
});
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "ContactUs");
}
}
}

View File

@@ -1,6 +1,5 @@
// <auto-generated />
using System;
using System.Collections.Generic;
using CompanyManagment.EFCore;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
@@ -13,8 +12,8 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
namespace CompanyManagment.EFCore.Migrations
{
[DbContext(typeof(CompanyContext))]
[Migration("20250611105314_add rollcall in checkout")]
partial class addrollcallincheckout
[Migration("20250427155240_add salaryAid calculation date")]
partial class addsalaryAidcalculationdate
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
@@ -26,36 +25,6 @@ namespace CompanyManagment.EFCore.Migrations
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("Company.Domain.AdminMonthlyOverviewAgg.AdminMonthlyOverview", b =>
{
b.Property<long>("id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("id"));
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<int>("Month")
.HasColumnType("int");
b.Property<string>("Status")
.IsRequired()
.HasMaxLength(155)
.HasColumnType("nvarchar(155)");
b.Property<long>("WorkshopId")
.HasColumnType("bigint");
b.Property<int>("Year")
.HasColumnType("int");
b.HasKey("id");
b.ToTable("AdminMonthlyOverviews");
});
modelBuilder.Entity("Company.Domain.AndroidApkVersionAgg.AndroidApkVersion", b =>
{
b.Property<long>("id")
@@ -1529,14 +1498,6 @@ namespace CompanyManagment.EFCore.Migrations
.HasMaxLength(20)
.HasColumnType("nvarchar(20)");
b.Property<string>("IdNumberSeri")
.HasMaxLength(25)
.HasColumnType("nvarchar(25)");
b.Property<string>("IdNumberSerial")
.HasMaxLength(25)
.HasColumnType("nvarchar(25)");
b.Property<string>("InsuranceCode")
.HasMaxLength(10)
.HasColumnType("nvarchar(10)");
@@ -1633,62 +1594,6 @@ namespace CompanyManagment.EFCore.Migrations
b.ToTable("Employees", (string)null);
});
modelBuilder.Entity("Company.Domain.EmployeeAuthorizeTempAgg.EmployeeAuthorizeTemp", b =>
{
b.Property<long>("id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("id"));
b.Property<DateTime>("BirthDate")
.HasColumnType("datetime2");
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<string>("FName")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<string>("FatherName")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<string>("Gender")
.IsRequired()
.HasMaxLength(15)
.HasColumnType("nvarchar(15)");
b.Property<string>("IdNumber")
.HasMaxLength(15)
.HasColumnType("nvarchar(15)");
b.Property<string>("IdNumberSeri")
.HasMaxLength(25)
.HasColumnType("nvarchar(25)");
b.Property<string>("IdNumberSerial")
.HasMaxLength(25)
.HasColumnType("nvarchar(25)");
b.Property<string>("LName")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<string>("NationalCode")
.HasMaxLength(15)
.HasColumnType("nvarchar(15)");
b.HasKey("id");
b.HasIndex("NationalCode")
.IsUnique()
.HasFilter("[NationalCode] IS NOT NULL");
b.ToTable("EmployeeAuthorizeTemps", (string)null);
});
modelBuilder.Entity("Company.Domain.EmployeeBankInformationAgg.EmployeeBankInformation", b =>
{
b.Property<long>("id")
@@ -1877,9 +1782,6 @@ namespace CompanyManagment.EFCore.Migrations
b.Property<long>("UploaderId")
.HasColumnType("bigint");
b.Property<long>("UploaderRoleId")
.HasColumnType("bigint");
b.Property<string>("UploaderType")
.IsRequired()
.HasMaxLength(20)
@@ -1991,9 +1893,6 @@ namespace CompanyManagment.EFCore.Migrations
b.Property<long>("EmployeeId")
.HasColumnType("bigint");
b.Property<double>("FamilyAllowance")
.HasColumnType("float");
b.Property<bool>("IncludeStatus")
.HasColumnType("bit");
@@ -2021,9 +1920,6 @@ namespace CompanyManagment.EFCore.Migrations
b.Property<double>("MonthlySalary")
.HasColumnType("float");
b.Property<double>("OverTimePay")
.HasColumnType("float");
b.Property<DateTime>("StartWorkDate")
.HasColumnType("datetime2");
@@ -3253,9 +3149,6 @@ namespace CompanyManagment.EFCore.Migrations
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<DateTime?>("EndDate")
.HasColumnType("datetime2");
b.Property<long>("InsuranceJobId")
.HasColumnType("bigint");
@@ -3271,9 +3164,6 @@ namespace CompanyManagment.EFCore.Migrations
b.Property<double>("SalaryMoreThan")
.HasColumnType("float");
b.Property<DateTime?>("StartDate")
.HasColumnType("datetime2");
b.HasKey("id");
b.HasIndex("InsuranceJobId");
@@ -3354,64 +3244,6 @@ namespace CompanyManagment.EFCore.Migrations
.HasMaxLength(4)
.HasColumnType("nvarchar(4)");
b.ComplexProperty<Dictionary<string, object>>("Debt", "Company.Domain.InsuranceListAgg.InsuranceList.Debt#InsuranceListDebt", b1 =>
{
b1.IsRequired();
b1.Property<double>("Amount")
.HasColumnType("float");
b1.Property<DateTime>("DebtDate")
.HasColumnType("datetime2");
b1.Property<bool>("IsDone")
.HasColumnType("bit");
b1.Property<long>("MediaId")
.HasColumnType("bigint");
b1.Property<string>("Type")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
});
b.ComplexProperty<Dictionary<string, object>>("EmployerApproval", "Company.Domain.InsuranceListAgg.InsuranceList.EmployerApproval#InsuranceListEmployerApproval", b1 =>
{
b1.IsRequired();
b1.Property<string>("Description")
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b1.Property<bool>("IsDone")
.HasColumnType("bit");
b1.Property<string>("Status")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
});
b.ComplexProperty<Dictionary<string, object>>("Inspection", "Company.Domain.InsuranceListAgg.InsuranceList.Inspection#InsuranceListInspection", b1 =>
{
b1.IsRequired();
b1.Property<bool>("IsDone")
.HasColumnType("bit");
b1.Property<DateTime>("LastInspectionDateTime")
.HasColumnType("datetime2");
b1.Property<long>("MediaId")
.HasColumnType("bigint");
b1.Property<string>("Type")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
});
b.HasKey("id");
b.ToTable("InsuranceLists", (string)null);
@@ -4808,7 +4640,7 @@ namespace CompanyManagment.EFCore.Migrations
b.HasKey("id");
b.HasIndex("WorkshopId");
b.HasIndex("AccountId");
b.ToTable("RollCallServices", (string)null);
});
@@ -4827,12 +4659,6 @@ namespace CompanyManagment.EFCore.Migrations
b.Property<DateTime>("CalculationDate")
.HasColumnType("datetime2");
b.Property<int>("CalculationMonth")
.HasColumnType("int");
b.Property<int>("CalculationYear")
.HasColumnType("int");
b.Property<long>("CreatedByAccountId")
.HasColumnType("bigint");
@@ -5659,12 +5485,6 @@ namespace CompanyManagment.EFCore.Migrations
.HasMaxLength(5)
.HasColumnType("nvarchar(5)");
b.Property<bool>("InsuranceCheckoutFamilyAllowance")
.HasColumnType("bit");
b.Property<bool>("InsuranceCheckoutOvertime")
.HasColumnType("bit");
b.Property<string>("InsuranceCode")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
@@ -6171,210 +5991,6 @@ namespace CompanyManagment.EFCore.Migrations
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.OwnsOne("Company.Domain.CheckoutAgg.CheckoutRollCall", "CheckoutRollCall", b1 =>
{
b1.Property<long>("Checkoutid")
.HasColumnType("bigint");
b1.Property<string>("TotalBreakTimeSpan")
.IsRequired()
.HasMaxLength(30)
.HasColumnType("nvarchar(30)");
b1.Property<string>("TotalMandatoryTimeSpan")
.IsRequired()
.HasMaxLength(30)
.HasColumnType("nvarchar(30)");
b1.Property<string>("TotalPaidLeaveTmeSpan")
.IsRequired()
.HasMaxLength(30)
.HasColumnType("nvarchar(30)");
b1.Property<string>("TotalPresentTimeSpan")
.IsRequired()
.HasMaxLength(30)
.HasColumnType("nvarchar(30)");
b1.Property<string>("TotalSickLeaveTimeSpan")
.IsRequired()
.HasMaxLength(30)
.HasColumnType("nvarchar(30)");
b1.Property<string>("TotalWorkingTimeSpan")
.IsRequired()
.HasMaxLength(30)
.HasColumnType("nvarchar(30)");
b1.HasKey("Checkoutid");
b1.ToTable("Checkouts");
b1.WithOwner()
.HasForeignKey("Checkoutid");
b1.OwnsMany("Company.Domain.CheckoutAgg.CheckoutRollCallDay", "RollCallDaysCollection", b2 =>
{
b2.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property<long>("Id"));
b2.Property<string>("BreakTimeSpan")
.IsRequired()
.HasMaxLength(30)
.HasColumnType("nvarchar(30)");
b2.Property<long>("CheckoutId")
.HasColumnType("bigint");
b2.Property<DateTime>("Date")
.HasColumnType("datetime2");
b2.Property<string>("FirstEndDate")
.HasMaxLength(18)
.HasColumnType("nvarchar(18)");
b2.Property<string>("FirstStartDate")
.HasMaxLength(18)
.HasColumnType("nvarchar(18)");
b2.Property<bool>("IsAbsent")
.HasColumnType("bit");
b2.Property<bool>("IsFriday")
.HasColumnType("bit");
b2.Property<bool>("IsHoliday")
.HasColumnType("bit");
b2.Property<bool>("IsSliced")
.HasColumnType("bit");
b2.Property<string>("LeaveType")
.HasMaxLength(18)
.HasColumnType("nvarchar(18)");
b2.Property<string>("SecondEndDate")
.HasMaxLength(18)
.HasColumnType("nvarchar(18)");
b2.Property<string>("SecondStartDate")
.HasMaxLength(18)
.HasColumnType("nvarchar(18)");
b2.Property<string>("WorkingTimeSpan")
.IsRequired()
.HasMaxLength(30)
.HasColumnType("nvarchar(30)");
b2.HasKey("Id");
b2.HasIndex("CheckoutId");
b2.ToTable("CheckoutRollCallDay");
b2.WithOwner()
.HasForeignKey("CheckoutId");
});
b1.Navigation("RollCallDaysCollection");
});
b.OwnsMany("Company.Domain.CheckoutAgg.ValueObjects.CheckoutLoanInstallment", "LoanInstallments", b1 =>
{
b1.Property<long>("Checkoutid")
.HasColumnType("bigint");
b1.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property<int>("Id"));
b1.Property<string>("AmountForMonth")
.HasMaxLength(25)
.HasColumnType("nvarchar(25)");
b1.Property<long>("EntityId")
.HasColumnType("bigint");
b1.Property<string>("IsActive")
.IsRequired()
.HasMaxLength(5)
.HasColumnType("nvarchar(5)");
b1.Property<string>("LoanAmount")
.HasMaxLength(30)
.HasColumnType("nvarchar(30)");
b1.Property<string>("LoanRemaining")
.HasMaxLength(25)
.HasColumnType("nvarchar(25)");
b1.Property<string>("Month")
.HasMaxLength(2)
.HasColumnType("nvarchar(2)");
b1.Property<string>("Year")
.HasMaxLength(4)
.HasColumnType("nvarchar(4)");
b1.HasKey("Checkoutid", "Id");
b1.ToTable("CheckoutLoanInstallment");
b1.WithOwner()
.HasForeignKey("Checkoutid");
});
b.OwnsMany("Company.Domain.CheckoutAgg.ValueObjects.CheckoutSalaryAid", "SalaryAids", b1 =>
{
b1.Property<long>("Checkoutid")
.HasColumnType("bigint");
b1.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property<int>("Id"));
b1.Property<string>("Amount")
.HasMaxLength(25)
.HasColumnType("nvarchar(25)");
b1.Property<DateTime>("CalculationDateTime")
.HasColumnType("datetime2");
b1.Property<string>("CalculationDateTimeFa")
.HasMaxLength(15)
.HasColumnType("nvarchar(15)");
b1.Property<long>("EntityId")
.HasColumnType("bigint");
b1.Property<DateTime>("SalaryAidDateTime")
.HasColumnType("datetime2");
b1.Property<string>("SalaryAidDateTimeFa")
.HasMaxLength(15)
.HasColumnType("nvarchar(15)");
b1.HasKey("Checkoutid", "Id");
b1.ToTable("CheckoutSalaryAid");
b1.WithOwner()
.HasForeignKey("Checkoutid");
});
b.Navigation("CheckoutRollCall");
b.Navigation("LoanInstallments");
b.Navigation("SalaryAids");
b.Navigation("Workshop");
});
@@ -6612,9 +6228,6 @@ namespace CompanyManagment.EFCore.Migrations
b1.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b1.Property<long>("EntityId")
.HasColumnType("bigint");
b1.Property<string>("FineDateFa")
.HasMaxLength(12)
.HasColumnType("nvarchar(12)");
@@ -6654,9 +6267,6 @@ namespace CompanyManagment.EFCore.Migrations
.HasMaxLength(25)
.HasColumnType("nvarchar(25)");
b1.Property<long>("EntityId")
.HasColumnType("bigint");
b1.Property<string>("IsActive")
.IsRequired()
.HasMaxLength(5)
@@ -6704,9 +6314,6 @@ namespace CompanyManagment.EFCore.Migrations
b1.Property<string>("Description")
.HasColumnType("ntext");
b1.Property<long>("EntityId")
.HasColumnType("bigint");
b1.Property<DateTime>("GrantDate")
.HasColumnType("datetime2");
@@ -6746,16 +6353,6 @@ namespace CompanyManagment.EFCore.Migrations
.HasMaxLength(25)
.HasColumnType("nvarchar(25)");
b1.Property<DateTime>("CalculationDateTime")
.HasColumnType("datetime2");
b1.Property<string>("CalculationDateTimeFa")
.HasMaxLength(15)
.HasColumnType("nvarchar(15)");
b1.Property<long>("EntityId")
.HasColumnType("bigint");
b1.Property<DateTime>("SalaryAidDateTime")
.HasColumnType("datetime2");
@@ -6906,9 +6503,6 @@ namespace CompanyManagment.EFCore.Migrations
b1.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b1.Property<long>("EntityId")
.HasColumnType("bigint");
b1.Property<string>("FineDateFa")
.HasMaxLength(12)
.HasColumnType("nvarchar(12)");
@@ -6948,9 +6542,6 @@ namespace CompanyManagment.EFCore.Migrations
.HasMaxLength(25)
.HasColumnType("nvarchar(25)");
b1.Property<long>("EntityId")
.HasColumnType("bigint");
b1.Property<string>("IsActive")
.IsRequired()
.HasMaxLength(5)
@@ -6998,9 +6589,6 @@ namespace CompanyManagment.EFCore.Migrations
b1.Property<string>("Description")
.HasColumnType("ntext");
b1.Property<long>("EntityId")
.HasColumnType("bigint");
b1.Property<DateTime>("GrantDate")
.HasColumnType("datetime2");
@@ -7040,16 +6628,6 @@ namespace CompanyManagment.EFCore.Migrations
.HasMaxLength(25)
.HasColumnType("nvarchar(25)");
b1.Property<DateTime>("CalculationDateTime")
.HasColumnType("datetime2");
b1.Property<string>("CalculationDateTimeFa")
.HasMaxLength(15)
.HasColumnType("nvarchar(15)");
b1.Property<long>("EntityId")
.HasColumnType("bigint");
b1.Property<DateTime>("SalaryAidDateTime")
.HasColumnType("datetime2");
@@ -9331,7 +8909,7 @@ namespace CompanyManagment.EFCore.Migrations
{
b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop")
.WithMany("RollCallServicesList")
.HasForeignKey("WorkshopId")
.HasForeignKey("AccountId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();

View File

@@ -0,0 +1,23 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace CompanyManagment.EFCore.Migrations
{
/// <inheritdoc />
public partial class addsalaryAidcalculationdate : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
}
}
}

View File

@@ -1,6 +1,5 @@
// <auto-generated />
using System;
using System.Collections.Generic;
using CompanyManagment.EFCore;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
@@ -13,8 +12,8 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
namespace CompanyManagment.EFCore.Migrations
{
[DbContext(typeof(CompanyContext))]
[Migration("20250611160351_add workshop create contract settings")]
partial class addworkshopcreatecontractsettings
[Migration("20250427160638_add salaryAid calculation date to customize checkouts")]
partial class addsalaryAidcalculationdatetocustomizecheckouts
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
@@ -26,36 +25,6 @@ namespace CompanyManagment.EFCore.Migrations
SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
modelBuilder.Entity("Company.Domain.AdminMonthlyOverviewAgg.AdminMonthlyOverview", b =>
{
b.Property<long>("id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("id"));
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<int>("Month")
.HasColumnType("int");
b.Property<string>("Status")
.IsRequired()
.HasMaxLength(155)
.HasColumnType("nvarchar(155)");
b.Property<long>("WorkshopId")
.HasColumnType("bigint");
b.Property<int>("Year")
.HasColumnType("int");
b.HasKey("id");
b.ToTable("AdminMonthlyOverviews");
});
modelBuilder.Entity("Company.Domain.AndroidApkVersionAgg.AndroidApkVersion", b =>
{
b.Property<long>("id")
@@ -1529,14 +1498,6 @@ namespace CompanyManagment.EFCore.Migrations
.HasMaxLength(20)
.HasColumnType("nvarchar(20)");
b.Property<string>("IdNumberSeri")
.HasMaxLength(25)
.HasColumnType("nvarchar(25)");
b.Property<string>("IdNumberSerial")
.HasMaxLength(25)
.HasColumnType("nvarchar(25)");
b.Property<string>("InsuranceCode")
.HasMaxLength(10)
.HasColumnType("nvarchar(10)");
@@ -1633,62 +1594,6 @@ namespace CompanyManagment.EFCore.Migrations
b.ToTable("Employees", (string)null);
});
modelBuilder.Entity("Company.Domain.EmployeeAuthorizeTempAgg.EmployeeAuthorizeTemp", b =>
{
b.Property<long>("id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("id"));
b.Property<DateTime>("BirthDate")
.HasColumnType("datetime2");
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<string>("FName")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<string>("FatherName")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<string>("Gender")
.IsRequired()
.HasMaxLength(15)
.HasColumnType("nvarchar(15)");
b.Property<string>("IdNumber")
.HasMaxLength(15)
.HasColumnType("nvarchar(15)");
b.Property<string>("IdNumberSeri")
.HasMaxLength(25)
.HasColumnType("nvarchar(25)");
b.Property<string>("IdNumberSerial")
.HasMaxLength(25)
.HasColumnType("nvarchar(25)");
b.Property<string>("LName")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<string>("NationalCode")
.HasMaxLength(15)
.HasColumnType("nvarchar(15)");
b.HasKey("id");
b.HasIndex("NationalCode")
.IsUnique()
.HasFilter("[NationalCode] IS NOT NULL");
b.ToTable("EmployeeAuthorizeTemps", (string)null);
});
modelBuilder.Entity("Company.Domain.EmployeeBankInformationAgg.EmployeeBankInformation", b =>
{
b.Property<long>("id")
@@ -1877,9 +1782,6 @@ namespace CompanyManagment.EFCore.Migrations
b.Property<long>("UploaderId")
.HasColumnType("bigint");
b.Property<long>("UploaderRoleId")
.HasColumnType("bigint");
b.Property<string>("UploaderType")
.IsRequired()
.HasMaxLength(20)
@@ -1991,9 +1893,6 @@ namespace CompanyManagment.EFCore.Migrations
b.Property<long>("EmployeeId")
.HasColumnType("bigint");
b.Property<double>("FamilyAllowance")
.HasColumnType("float");
b.Property<bool>("IncludeStatus")
.HasColumnType("bit");
@@ -2021,9 +1920,6 @@ namespace CompanyManagment.EFCore.Migrations
b.Property<double>("MonthlySalary")
.HasColumnType("float");
b.Property<double>("OverTimePay")
.HasColumnType("float");
b.Property<DateTime>("StartWorkDate")
.HasColumnType("datetime2");
@@ -3253,9 +3149,6 @@ namespace CompanyManagment.EFCore.Migrations
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<DateTime?>("EndDate")
.HasColumnType("datetime2");
b.Property<long>("InsuranceJobId")
.HasColumnType("bigint");
@@ -3271,9 +3164,6 @@ namespace CompanyManagment.EFCore.Migrations
b.Property<double>("SalaryMoreThan")
.HasColumnType("float");
b.Property<DateTime?>("StartDate")
.HasColumnType("datetime2");
b.HasKey("id");
b.HasIndex("InsuranceJobId");
@@ -3354,64 +3244,6 @@ namespace CompanyManagment.EFCore.Migrations
.HasMaxLength(4)
.HasColumnType("nvarchar(4)");
b.ComplexProperty<Dictionary<string, object>>("Debt", "Company.Domain.InsuranceListAgg.InsuranceList.Debt#InsuranceListDebt", b1 =>
{
b1.IsRequired();
b1.Property<double>("Amount")
.HasColumnType("float");
b1.Property<DateTime>("DebtDate")
.HasColumnType("datetime2");
b1.Property<bool>("IsDone")
.HasColumnType("bit");
b1.Property<long>("MediaId")
.HasColumnType("bigint");
b1.Property<string>("Type")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
});
b.ComplexProperty<Dictionary<string, object>>("EmployerApproval", "Company.Domain.InsuranceListAgg.InsuranceList.EmployerApproval#InsuranceListEmployerApproval", b1 =>
{
b1.IsRequired();
b1.Property<string>("Description")
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b1.Property<bool>("IsDone")
.HasColumnType("bit");
b1.Property<string>("Status")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
});
b.ComplexProperty<Dictionary<string, object>>("Inspection", "Company.Domain.InsuranceListAgg.InsuranceList.Inspection#InsuranceListInspection", b1 =>
{
b1.IsRequired();
b1.Property<bool>("IsDone")
.HasColumnType("bit");
b1.Property<DateTime>("LastInspectionDateTime")
.HasColumnType("datetime2");
b1.Property<long>("MediaId")
.HasColumnType("bigint");
b1.Property<string>("Type")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
});
b.HasKey("id");
b.ToTable("InsuranceLists", (string)null);
@@ -4808,7 +4640,7 @@ namespace CompanyManagment.EFCore.Migrations
b.HasKey("id");
b.HasIndex("WorkshopId");
b.HasIndex("AccountId");
b.ToTable("RollCallServices", (string)null);
});
@@ -4827,12 +4659,6 @@ namespace CompanyManagment.EFCore.Migrations
b.Property<DateTime>("CalculationDate")
.HasColumnType("datetime2");
b.Property<int>("CalculationMonth")
.HasColumnType("int");
b.Property<int>("CalculationYear")
.HasColumnType("int");
b.Property<long>("CreatedByAccountId")
.HasColumnType("bigint");
@@ -5649,20 +5475,9 @@ namespace CompanyManagment.EFCore.Migrations
.HasMaxLength(10)
.HasColumnType("nvarchar(10)");
b.Property<bool>("CreateCheckout")
.HasColumnType("bit");
b.Property<bool>("CreateContract")
.HasColumnType("bit");
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<string>("CutContractEndOfYear")
.IsRequired()
.HasMaxLength(5)
.HasColumnType("nvarchar(5)");
b.Property<bool>("FixedSalary")
.HasColumnType("bit");
@@ -5670,12 +5485,6 @@ namespace CompanyManagment.EFCore.Migrations
.HasMaxLength(5)
.HasColumnType("nvarchar(5)");
b.Property<bool>("InsuranceCheckoutFamilyAllowance")
.HasColumnType("bit");
b.Property<bool>("InsuranceCheckoutOvertime")
.HasColumnType("bit");
b.Property<string>("InsuranceCode")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
@@ -5700,12 +5509,6 @@ namespace CompanyManagment.EFCore.Migrations
.HasMaxLength(25)
.HasColumnType("nvarchar(25)");
b.Property<bool>("SignCheckout")
.HasColumnType("bit");
b.Property<bool>("SignContract")
.HasColumnType("bit");
b.Property<string>("State")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
@@ -6188,97 +5991,6 @@ namespace CompanyManagment.EFCore.Migrations
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.OwnsMany("Company.Domain.CheckoutAgg.ValueObjects.CheckoutLoanInstallment", "LoanInstallments", b1 =>
{
b1.Property<long>("Checkoutid")
.HasColumnType("bigint");
b1.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property<int>("Id"));
b1.Property<string>("AmountForMonth")
.HasMaxLength(25)
.HasColumnType("nvarchar(25)");
b1.Property<long>("EntityId")
.HasColumnType("bigint");
b1.Property<string>("IsActive")
.IsRequired()
.HasMaxLength(5)
.HasColumnType("nvarchar(5)");
b1.Property<string>("LoanAmount")
.HasMaxLength(30)
.HasColumnType("nvarchar(30)");
b1.Property<string>("LoanRemaining")
.HasMaxLength(25)
.HasColumnType("nvarchar(25)");
b1.Property<string>("Month")
.HasMaxLength(2)
.HasColumnType("nvarchar(2)");
b1.Property<string>("Year")
.HasMaxLength(4)
.HasColumnType("nvarchar(4)");
b1.HasKey("Checkoutid", "Id");
b1.ToTable("CheckoutLoanInstallment");
b1.WithOwner()
.HasForeignKey("Checkoutid");
});
b.OwnsMany("Company.Domain.CheckoutAgg.ValueObjects.CheckoutSalaryAid", "SalaryAids", b1 =>
{
b1.Property<long>("Checkoutid")
.HasColumnType("bigint");
b1.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("int");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b1.Property<int>("Id"));
b1.Property<string>("Amount")
.HasMaxLength(25)
.HasColumnType("nvarchar(25)");
b1.Property<DateTime>("CalculationDateTime")
.HasColumnType("datetime2");
b1.Property<string>("CalculationDateTimeFa")
.HasMaxLength(15)
.HasColumnType("nvarchar(15)");
b1.Property<long>("EntityId")
.HasColumnType("bigint");
b1.Property<DateTime>("SalaryAidDateTime")
.HasColumnType("datetime2");
b1.Property<string>("SalaryAidDateTimeFa")
.HasMaxLength(15)
.HasColumnType("nvarchar(15)");
b1.HasKey("Checkoutid", "Id");
b1.ToTable("CheckoutSalaryAid");
b1.WithOwner()
.HasForeignKey("Checkoutid");
});
b.Navigation("LoanInstallments");
b.Navigation("SalaryAids");
b.Navigation("Workshop");
});
@@ -6516,9 +6228,6 @@ namespace CompanyManagment.EFCore.Migrations
b1.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b1.Property<long>("EntityId")
.HasColumnType("bigint");
b1.Property<string>("FineDateFa")
.HasMaxLength(12)
.HasColumnType("nvarchar(12)");
@@ -6558,9 +6267,6 @@ namespace CompanyManagment.EFCore.Migrations
.HasMaxLength(25)
.HasColumnType("nvarchar(25)");
b1.Property<long>("EntityId")
.HasColumnType("bigint");
b1.Property<string>("IsActive")
.IsRequired()
.HasMaxLength(5)
@@ -6608,9 +6314,6 @@ namespace CompanyManagment.EFCore.Migrations
b1.Property<string>("Description")
.HasColumnType("ntext");
b1.Property<long>("EntityId")
.HasColumnType("bigint");
b1.Property<DateTime>("GrantDate")
.HasColumnType("datetime2");
@@ -6657,9 +6360,6 @@ namespace CompanyManagment.EFCore.Migrations
.HasMaxLength(15)
.HasColumnType("nvarchar(15)");
b1.Property<long>("EntityId")
.HasColumnType("bigint");
b1.Property<DateTime>("SalaryAidDateTime")
.HasColumnType("datetime2");
@@ -6810,9 +6510,6 @@ namespace CompanyManagment.EFCore.Migrations
b1.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b1.Property<long>("EntityId")
.HasColumnType("bigint");
b1.Property<string>("FineDateFa")
.HasMaxLength(12)
.HasColumnType("nvarchar(12)");
@@ -6852,9 +6549,6 @@ namespace CompanyManagment.EFCore.Migrations
.HasMaxLength(25)
.HasColumnType("nvarchar(25)");
b1.Property<long>("EntityId")
.HasColumnType("bigint");
b1.Property<string>("IsActive")
.IsRequired()
.HasMaxLength(5)
@@ -6902,9 +6596,6 @@ namespace CompanyManagment.EFCore.Migrations
b1.Property<string>("Description")
.HasColumnType("ntext");
b1.Property<long>("EntityId")
.HasColumnType("bigint");
b1.Property<DateTime>("GrantDate")
.HasColumnType("datetime2");
@@ -6951,9 +6642,6 @@ namespace CompanyManagment.EFCore.Migrations
.HasMaxLength(15)
.HasColumnType("nvarchar(15)");
b1.Property<long>("EntityId")
.HasColumnType("bigint");
b1.Property<DateTime>("SalaryAidDateTime")
.HasColumnType("datetime2");
@@ -9235,7 +8923,7 @@ namespace CompanyManagment.EFCore.Migrations
{
b.HasOne("Company.Domain.WorkshopAgg.Workshop", "Workshop")
.WithMany("RollCallServicesList")
.HasForeignKey("WorkshopId")
.HasForeignKey("AccountId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();

View File

@@ -0,0 +1,23 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace CompanyManagment.EFCore.Migrations
{
/// <inheritdoc />
public partial class addsalaryAidcalculationdatetocustomizecheckouts : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
}
}
}

View File

@@ -1,124 +0,0 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace CompanyManagment.EFCore.Migrations
{
/// <inheritdoc />
public partial class addrollcallincheckout : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "CheckoutRollCall_TotalBreakTimeSpan",
table: "Checkouts",
type: "nvarchar(30)",
maxLength: 30,
nullable: true);
migrationBuilder.AddColumn<string>(
name: "CheckoutRollCall_TotalMandatoryTimeSpan",
table: "Checkouts",
type: "nvarchar(30)",
maxLength: 30,
nullable: true);
migrationBuilder.AddColumn<string>(
name: "CheckoutRollCall_TotalPaidLeaveTmeSpan",
table: "Checkouts",
type: "nvarchar(30)",
maxLength: 30,
nullable: true);
migrationBuilder.AddColumn<string>(
name: "CheckoutRollCall_TotalPresentTimeSpan",
table: "Checkouts",
type: "nvarchar(30)",
maxLength: 30,
nullable: true);
migrationBuilder.AddColumn<string>(
name: "CheckoutRollCall_TotalSickLeaveTimeSpan",
table: "Checkouts",
type: "nvarchar(30)",
maxLength: 30,
nullable: true);
migrationBuilder.AddColumn<string>(
name: "CheckoutRollCall_TotalWorkingTimeSpan",
table: "Checkouts",
type: "nvarchar(30)",
maxLength: 30,
nullable: true);
migrationBuilder.CreateTable(
name: "CheckoutRollCallDay",
columns: table => new
{
Id = table.Column<long>(type: "bigint", nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
Date = table.Column<DateTime>(type: "datetime2", nullable: false),
FirstStartDate = table.Column<string>(type: "nvarchar(18)", maxLength: 18, nullable: true),
FirstEndDate = table.Column<string>(type: "nvarchar(18)", maxLength: 18, nullable: true),
SecondStartDate = table.Column<string>(type: "nvarchar(18)", maxLength: 18, nullable: true),
SecondEndDate = table.Column<string>(type: "nvarchar(18)", maxLength: 18, nullable: true),
BreakTimeSpan = table.Column<string>(type: "nvarchar(30)", maxLength: 30, nullable: false),
WorkingTimeSpan = table.Column<string>(type: "nvarchar(30)", maxLength: 30, nullable: false),
IsSliced = table.Column<bool>(type: "bit", nullable: false),
IsAbsent = table.Column<bool>(type: "bit", nullable: false),
IsFriday = table.Column<bool>(type: "bit", nullable: false),
IsHoliday = table.Column<bool>(type: "bit", nullable: false),
LeaveType = table.Column<string>(type: "nvarchar(18)", maxLength: 18, nullable: true),
CheckoutId = table.Column<long>(type: "bigint", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_CheckoutRollCallDay", x => x.Id);
table.ForeignKey(
name: "FK_CheckoutRollCallDay_Checkouts_CheckoutId",
column: x => x.CheckoutId,
principalTable: "Checkouts",
principalColumn: "id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateIndex(
name: "IX_CheckoutRollCallDay_CheckoutId",
table: "CheckoutRollCallDay",
column: "CheckoutId");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "CheckoutRollCallDay");
migrationBuilder.DropColumn(
name: "CheckoutRollCall_TotalBreakTimeSpan",
table: "Checkouts");
migrationBuilder.DropColumn(
name: "CheckoutRollCall_TotalMandatoryTimeSpan",
table: "Checkouts");
migrationBuilder.DropColumn(
name: "CheckoutRollCall_TotalPaidLeaveTmeSpan",
table: "Checkouts");
migrationBuilder.DropColumn(
name: "CheckoutRollCall_TotalPresentTimeSpan",
table: "Checkouts");
migrationBuilder.DropColumn(
name: "CheckoutRollCall_TotalSickLeaveTimeSpan",
table: "Checkouts");
migrationBuilder.DropColumn(
name: "CheckoutRollCall_TotalWorkingTimeSpan",
table: "Checkouts");
}
}
}

View File

@@ -1,74 +0,0 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace CompanyManagment.EFCore.Migrations
{
/// <inheritdoc />
public partial class addworkshopcreatecontractsettings : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<bool>(
name: "CreateCheckout",
table: "Workshops",
type: "bit",
nullable: false,
defaultValue: false);
migrationBuilder.AddColumn<bool>(
name: "CreateContract",
table: "Workshops",
type: "bit",
nullable: false,
defaultValue: false);
migrationBuilder.AddColumn<string>(
name: "CutContractEndOfYear",
table: "Workshops",
type: "nvarchar(5)",
maxLength: 5,
nullable: false,
defaultValue: "");
migrationBuilder.AddColumn<bool>(
name: "SignCheckout",
table: "Workshops",
type: "bit",
nullable: false,
defaultValue: false);
migrationBuilder.AddColumn<bool>(
name: "SignContract",
table: "Workshops",
type: "bit",
nullable: false,
defaultValue: false);
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "CreateCheckout",
table: "Workshops");
migrationBuilder.DropColumn(
name: "CreateContract",
table: "Workshops");
migrationBuilder.DropColumn(
name: "CutContractEndOfYear",
table: "Workshops");
migrationBuilder.DropColumn(
name: "SignCheckout",
table: "Workshops");
migrationBuilder.DropColumn(
name: "SignContract",
table: "Workshops");
}
}
}

View File

@@ -1,62 +0,0 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace CompanyManagment.EFCore.Migrations
{
/// <inheritdoc />
public partial class addsettingsforemployeecomputeoptions : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<bool>(
name: "CreateCheckout",
table: "EmployeeComputeOptions",
type: "bit",
nullable: false,
defaultValue: false);
migrationBuilder.AddColumn<bool>(
name: "CreateContract",
table: "EmployeeComputeOptions",
type: "bit",
nullable: false,
defaultValue: false);
migrationBuilder.AddColumn<bool>(
name: "SignCheckout",
table: "EmployeeComputeOptions",
type: "bit",
nullable: false,
defaultValue: false);
migrationBuilder.AddColumn<bool>(
name: "SignContract",
table: "EmployeeComputeOptions",
type: "bit",
nullable: false,
defaultValue: false);
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "CreateCheckout",
table: "EmployeeComputeOptions");
migrationBuilder.DropColumn(
name: "CreateContract",
table: "EmployeeComputeOptions");
migrationBuilder.DropColumn(
name: "SignCheckout",
table: "EmployeeComputeOptions");
migrationBuilder.DropColumn(
name: "SignContract",
table: "EmployeeComputeOptions");
}
}
}

View File

@@ -560,6 +560,50 @@ namespace CompanyManagment.EFCore.Migrations
b.ToTable("TextManager_Contact", (string)null);
});
modelBuilder.Entity("Company.Domain.ContactUsAgg.ContactUs", b =>
{
b.Property<long>("id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property<long>("id"));
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<string>("Email")
.HasMaxLength(200)
.HasColumnType("nvarchar(200)");
b.Property<string>("FirstName")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<string>("FullName")
.HasMaxLength(200)
.HasColumnType("nvarchar(200)");
b.Property<string>("LastName")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
b.Property<string>("Message")
.HasMaxLength(500)
.HasColumnType("nvarchar(500)");
b.Property<string>("PhoneNumber")
.HasMaxLength(20)
.HasColumnType("nvarchar(20)");
b.Property<string>("Title")
.HasMaxLength(200)
.HasColumnType("nvarchar(200)");
b.HasKey("id");
b.ToTable("ContactUs");
});
modelBuilder.Entity("Company.Domain.ContarctingPartyAgg.PersonalContractingParty", b =>
{
b.Property<long>("id")
@@ -1809,24 +1853,12 @@ namespace CompanyManagment.EFCore.Migrations
.HasMaxLength(50)
.HasColumnType("nvarchar(50)");
b.Property<bool>("CreateCheckout")
.HasColumnType("bit");
b.Property<bool>("CreateContract")
.HasColumnType("bit");
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<long>("EmployeeId")
.HasColumnType("bigint");
b.Property<bool>("SignCheckout")
.HasColumnType("bit");
b.Property<bool>("SignContract")
.HasColumnType("bit");
b.Property<long>("WorkshopId")
.HasColumnType("bigint");
@@ -5658,20 +5690,9 @@ namespace CompanyManagment.EFCore.Migrations
.HasMaxLength(10)
.HasColumnType("nvarchar(10)");
b.Property<bool>("CreateCheckout")
.HasColumnType("bit");
b.Property<bool>("CreateContract")
.HasColumnType("bit");
b.Property<DateTime>("CreationDate")
.HasColumnType("datetime2");
b.Property<string>("CutContractEndOfYear")
.IsRequired()
.HasMaxLength(5)
.HasColumnType("nvarchar(5)");
b.Property<bool>("FixedSalary")
.HasColumnType("bit");
@@ -5709,12 +5730,6 @@ namespace CompanyManagment.EFCore.Migrations
.HasMaxLength(25)
.HasColumnType("nvarchar(25)");
b.Property<bool>("SignCheckout")
.HasColumnType("bit");
b.Property<bool>("SignContract")
.HasColumnType("bit");
b.Property<string>("State")
.HasMaxLength(100)
.HasColumnType("nvarchar(100)");
@@ -6197,117 +6212,6 @@ namespace CompanyManagment.EFCore.Migrations
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.OwnsOne("Company.Domain.CheckoutAgg.CheckoutRollCall", "CheckoutRollCall", b1 =>
{
b1.Property<long>("Checkoutid")
.HasColumnType("bigint");
b1.Property<string>("TotalBreakTimeSpan")
.IsRequired()
.HasMaxLength(30)
.HasColumnType("nvarchar(30)");
b1.Property<string>("TotalMandatoryTimeSpan")
.IsRequired()
.HasMaxLength(30)
.HasColumnType("nvarchar(30)");
b1.Property<string>("TotalPaidLeaveTmeSpan")
.IsRequired()
.HasMaxLength(30)
.HasColumnType("nvarchar(30)");
b1.Property<string>("TotalPresentTimeSpan")
.IsRequired()
.HasMaxLength(30)
.HasColumnType("nvarchar(30)");
b1.Property<string>("TotalSickLeaveTimeSpan")
.IsRequired()
.HasMaxLength(30)
.HasColumnType("nvarchar(30)");
b1.Property<string>("TotalWorkingTimeSpan")
.IsRequired()
.HasMaxLength(30)
.HasColumnType("nvarchar(30)");
b1.HasKey("Checkoutid");
b1.ToTable("Checkouts");
b1.WithOwner()
.HasForeignKey("Checkoutid");
b1.OwnsMany("Company.Domain.CheckoutAgg.CheckoutRollCallDay", "RollCallDaysCollection", b2 =>
{
b2.Property<long>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("bigint");
SqlServerPropertyBuilderExtensions.UseIdentityColumn(b2.Property<long>("Id"));
b2.Property<string>("BreakTimeSpan")
.IsRequired()
.HasMaxLength(30)
.HasColumnType("nvarchar(30)");
b2.Property<long>("CheckoutId")
.HasColumnType("bigint");
b2.Property<DateTime>("Date")
.HasColumnType("datetime2");
b2.Property<string>("FirstEndDate")
.HasMaxLength(18)
.HasColumnType("nvarchar(18)");
b2.Property<string>("FirstStartDate")
.HasMaxLength(18)
.HasColumnType("nvarchar(18)");
b2.Property<bool>("IsAbsent")
.HasColumnType("bit");
b2.Property<bool>("IsFriday")
.HasColumnType("bit");
b2.Property<bool>("IsHoliday")
.HasColumnType("bit");
b2.Property<bool>("IsSliced")
.HasColumnType("bit");
b2.Property<string>("LeaveType")
.HasMaxLength(18)
.HasColumnType("nvarchar(18)");
b2.Property<string>("SecondEndDate")
.HasMaxLength(18)
.HasColumnType("nvarchar(18)");
b2.Property<string>("SecondStartDate")
.HasMaxLength(18)
.HasColumnType("nvarchar(18)");
b2.Property<string>("WorkingTimeSpan")
.IsRequired()
.HasMaxLength(30)
.HasColumnType("nvarchar(30)");
b2.HasKey("Id");
b2.HasIndex("CheckoutId");
b2.ToTable("CheckoutRollCallDay");
b2.WithOwner()
.HasForeignKey("CheckoutId");
});
b1.Navigation("RollCallDaysCollection");
});
b.OwnsMany("Company.Domain.CheckoutAgg.ValueObjects.CheckoutLoanInstallment", "LoanInstallments", b1 =>
{
b1.Property<long>("Checkoutid")
@@ -6395,8 +6299,6 @@ namespace CompanyManagment.EFCore.Migrations
.HasForeignKey("Checkoutid");
});
b.Navigation("CheckoutRollCall");
b.Navigation("LoanInstallments");
b.Navigation("SalaryAids");

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,14 @@
using _0_Framework.InfraStructure;
using Company.Domain.ContactUsAgg;
using Microsoft.EntityFrameworkCore;
namespace CompanyManagment.EFCore.Repository;
public class ContactUsRepository:RepositoryBase<long,ContactUs>,IContactUsRepository
{
private readonly CompanyContext _companyContext;
public ContactUsRepository(CompanyContext companyContext) : base(companyContext)
{
_companyContext = companyContext;
}
}

View File

@@ -8,364 +8,351 @@ using CompanyManagment.App.Contracts.CustomizeWorkshopSettings.ValueObjectsViewM
using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;
using System.Linq;
using Microsoft.EntityFrameworkCore.Infrastructure;
namespace CompanyManagment.EFCore.Repository;
public class CustomizeWorkshopSettingsRepository(CompanyContext companyContext, IAuthHelper authHelper, IEmployeeRepository employeeRepository)
: RepositoryBase<long, CustomizeWorkshopSettings>(companyContext), ICustomizeWorkshopSettingsRepository
namespace CompanyManagment.EFCore.Repository
{
private readonly CompanyContext _companyContext = companyContext;
private readonly IAuthHelper _authHelper = authHelper;
private readonly IEmployeeRepository _employeeRepository = employeeRepository;
public CustomizeWorkshopSettingsViewModel GetWorkshopSettingsByWorkshopId(long workshopId, AuthViewModel auth)
public class CustomizeWorkshopSettingsRepository(CompanyContext companyContext, IAuthHelper authHelper, IEmployeeRepository employeeRepository)
: RepositoryBase<long, CustomizeWorkshopSettings>(companyContext), ICustomizeWorkshopSettingsRepository
{
var entity = _companyContext.CustomizeWorkshopSettings.AsSplitQuery().Where(x => x.WorkshopId == workshopId)
.Include(x => x.CustomizeWorkshopGroupSettingsCollection)
.ThenInclude(x => x.CustomizeWorkshopEmployeeSettingsCollection).AsSplitQuery()
.FirstOrDefault();
if (entity == null)
return new();
private readonly CompanyContext _companyContext = companyContext;
private readonly IAuthHelper _authHelper = authHelper;
private readonly IEmployeeRepository _employeeRepository = employeeRepository;
var employeeIds = entity.CustomizeWorkshopGroupSettingsCollection
.SelectMany(x => x.CustomizeWorkshopEmployeeSettingsCollection)
.Select(y => y.EmployeeId)
.ToList();
var employees = _employeeRepository.GetBy(employeeIds);
return new CustomizeWorkshopSettingsViewModel()
public CustomizeWorkshopSettingsViewModel GetWorkshopSettingsByWorkshopId(long workshopId, AuthViewModel auth)
{
Id = entity.id,
Name = auth.WorkshopList.FirstOrDefault(w => w.Id == entity.WorkshopId)?.Name,
GroupSettings = entity.CustomizeWorkshopGroupSettingsCollection.Where(x => !x.MainGroup).Select(x =>
new CustomizeWorkshopGroupSettingsViewModel()
{
Id = x.id,
GroupName = x.GroupName,
RollCallWorkshopEmployeesSettings = x.CustomizeWorkshopEmployeeSettingsCollection.Select(y =>
{
var employee = employees.First(e => e.Id == y.EmployeeId);
return new CustomizeWorkshopEmployeeSettingsViewModel()
{
Id = y.id,
EmployeeId = y.EmployeeId,
IsSettingChanged = y.IsSettingChanged,
IsShiftChanged = y.IsShiftChanged,
Name = $"{employee}",
RollCallWorkshopShifts = y.CustomizeWorkshopEmployeeSettingsShifts.Select(s =>
new CustomizeWorkshopShiftViewModel()
{
EndTime = s.EndTime.ToString("HH:mm"),
Placement = s.Placement,
StartTime = s.StartTime.ToString("HH:mm")
}).ToList(),
Salary = y.Salary,
var entity = _companyContext.CustomizeWorkshopSettings.AsSplitQuery().Where(x => x.WorkshopId == workshopId)
.Include(x => x.CustomizeWorkshopGroupSettingsCollection)
.ThenInclude(x => x.CustomizeWorkshopEmployeeSettingsCollection).AsSplitQuery()
.FirstOrDefault();
if (entity == null)
return new();
};
}).ToList(),
WorkshopShiftStatus = x.WorkshopShiftStatus,
IrregularShift = x.IrregularShift,
Salary = x.Salary,
RollCallWorkshopShifts = x.CustomizeWorkshopGroupSettingsShifts.Select(s =>
new CustomizeWorkshopShiftViewModel()
{
EndTime = s.EndTime.ToString("HH:mm"),
Placement = s.Placement,
StartTime = s.StartTime.ToString("HH:mm")
}).ToList(),
MainGroup = x.MainGroup,
CustomizeRotatingShiftsViewModels = x.CustomizeRotatingShifts.
Select(r=>new CustomizeRotatingShiftsViewModel(){StartTime = r.StartTime.ToString("HH:mm"), EndTime = r.EndTime.ToString("HH:mm")}).ToList()
}).ToList(),
};
}
public CustomizeWorkshopSettingsViewModel GetWorkshopSettingsByWorkshopIdForAdmin(long workshopId)
{
var entity = _companyContext.CustomizeWorkshopSettings.AsSplitQuery().Where(x => x.WorkshopId == workshopId)
.Include(x => x.CustomizeWorkshopGroupSettingsCollection)
.ThenInclude(x => x.CustomizeWorkshopEmployeeSettingsCollection).AsSplitQuery()
.FirstOrDefault();
if (entity == null)
return new();
return new CustomizeWorkshopSettingsViewModel()
{
Id = entity.id,
Offset = entity.EndTimeOffSet,
GroupSettings = entity.CustomizeWorkshopGroupSettingsCollection.Where(x => !x.MainGroup).Select(x =>
new CustomizeWorkshopGroupSettingsViewModel()
{
Id = x.id,
GroupName = x.GroupName,
RollCallWorkshopEmployeesSettings = x.CustomizeWorkshopEmployeeSettingsCollection.Select(y =>
{
var employee = _employeeRepository.Get(y.EmployeeId);
return new CustomizeWorkshopEmployeeSettingsViewModel()
{
Id = y.id,
EmployeeId = y.EmployeeId,
IsSettingChanged = y.IsSettingChanged,
IsShiftChanged = y.IsShiftChanged,
Name = $"{employee?.FName} {employee?.LName}",
RollCallWorkshopShifts = y.CustomizeWorkshopEmployeeSettingsShifts.Select(s =>
new CustomizeWorkshopShiftViewModel()
{
EndTime = s.EndTime.ToString("HH:mm"),
Placement = s.Placement,
StartTime = s.StartTime.ToString("HH:mm")
}).ToList(),
Salary = y.Salary,
CustomizeRotatingShiftsViewModels = y.CustomizeRotatingShifts.Select(r => new CustomizeRotatingShiftsViewModel
{
StartTime = r.StartTime.ToString("HH:mm"),
EndTime = r.EndTime.ToString("HH:mm")
}).ToList(),
LeavePermittedDays = y.LeavePermittedDays,
IrregularShift = y.IrregularShift,
WorkshopShiftStatus = y.WorkshopShiftStatus
};
}).ToList(),
Salary = x.Salary,
RollCallWorkshopShifts = x.CustomizeWorkshopGroupSettingsShifts.Select(s =>
new CustomizeWorkshopShiftViewModel()
{
EndTime = s.EndTime.ToString("HH:mm"),
Placement = s.Placement,
StartTime = s.StartTime.ToString("HH:mm")
}).ToList(),
MainGroup = x.MainGroup,
WorkshopShiftStatus = x.WorkshopShiftStatus,
CustomizeRotatingShiftsViewModels = x.CustomizeRotatingShifts.Select(r => new CustomizeRotatingShiftsViewModel
{
StartTime = r.StartTime.ToString("HH:mm"),
EndTime = r.EndTime.ToString("HH:mm")
}).ToList(),
IrregularShift = x.IrregularShift
}).ToList(),
};
}
public EditCustomizeWorkshopSettings GetWorkshopSettingsDetails(long workshopId)
{
var entity = _companyContext.CustomizeWorkshopSettings.AsSplitQuery().FirstOrDefault(x => x.WorkshopId == workshopId);
if (entity == null)
return new();
var viewModel = new EditCustomizeWorkshopSettings()
{
FridayWork = entity.FridayWork,
FridayPay = new() { FridayPayType = entity.FridayPay.FridayPayType, Value = entity.FridayPay.Value },
LateToWork = new()
var employeeIds = entity.CustomizeWorkshopGroupSettingsCollection
.SelectMany(x => x.CustomizeWorkshopEmployeeSettingsCollection)
.Select(y => y.EmployeeId)
.ToList();
var employees = _employeeRepository.GetBy(employeeIds);
return new CustomizeWorkshopSettingsViewModel()
{
LateToWorkTimeFinesVewModels = entity.LateToWork.LateToWorkTimeFines.Select(x =>
new LateToWorkTimeFineVewModel() { FineMoney = x.FineMoney, Minute = x.Minute }).ToList(),
Value = entity.LateToWork.Value,
LateToWorkType = entity.LateToWork.LateToWorkType
},
HolidayWork = entity.HolidayWork,
FineAbsenceDeduction = new()
{
Value = entity.FineAbsenceDeduction.Value,
FineAbsenceDayOfWeekViewModels = entity.FineAbsenceDeduction.FineAbsenceDayOfWeekCollection
.Select(x => new FineAbsenceDayOfWeekViewModel() { DayOfWeek = x.DayOfWeek }).ToList(),
FineAbsenceDeductionType = entity.FineAbsenceDeduction.FineAbsenceDeductionType
},
EarlyExit = new()
{
EarlyExitTimeFinesViewModels = entity.EarlyExit.EarlyExitTimeFines.Select(x =>
new EarlyExitTimeFineViewModel() { FineMoney = x.FineMoney, Minute = x.Minute }).ToList(),
Value = entity.EarlyExit.Value,
EarlyExitType = entity.EarlyExit.EarlyExitType
},
BonusesPay = new()
{
Value = entity.BonusesPay.Value,
BonusesPayType = entity.BonusesPay.BonusesPayType,
PaymentType = entity.BonusesPay.PaymentType
},
ShiftPay = new()
{
Value = entity.ShiftPay.Value,
ShiftPayType = entity.ShiftPay.ShiftPayType,
ShiftType = entity.ShiftPay.ShiftType
},
InsuranceDeduction = new()
{
Value = entity.InsuranceDeduction.Value,
InsuranceDeductionType = entity.InsuranceDeduction.InsuranceDeductionType
},
OverTimePay = new()
{ OverTimePayType = entity.OverTimePay.OverTimePayType, Value = entity.OverTimePay.Value },
BaseYearsPay = new()
{
BaseYearsPayType = entity.BaseYearsPay.BaseYearsPayType,
Value = entity.BaseYearsPay.Value,
PaymentType = entity.BaseYearsPay.PaymentType
},
NightWorkPay = new()
{ NightWorkingType = entity.NightWorkPay.NightWorkingType, Value = entity.NightWorkPay.Value },
LeavePay = new()
{
Value = entity.LeavePay.Value,
LeavePayType = entity.LeavePay.LeavePayType
},
MarriedAllowance = new()
{
Value = entity.MarriedAllowance.Value,
MarriedAllowanceType = entity.MarriedAllowance.MarriedAllowanceType
},
FamilyAllowance = new()
{
FamilyAllowanceType = entity.FamilyAllowance.FamilyAllowanceType,
Value = entity.FamilyAllowance.Value
},
Currency = entity.Currency,
MaxMonthDays = entity.MaxMonthDays,
Id = entity.id,
ShiftsList = entity.CustomizeWorkshopSettingsShifts.Select(x => new CustomizeWorkshopShiftViewModel()
{ EndTime = x.EndTime.ToString("HH:mm"), Placement = x.Placement, StartTime = x.StartTime.ToString("HH:mm") }).ToList(),
BonusesPaysInEndOfMonth = entity.BonusesPaysInEndOfMonth,
LeavePermittedDays = entity.LeavePermittedDays,
BaseYearsPayInEndOfYear = entity.BaseYearsPayInEndOfYear,
WorkshopId = entity.WorkshopId,
WorkshopShiftStatus = entity.WorkshopShiftStatus
};
return viewModel;
}
public EditCustomizeWorkshopSettings GetSimpleWorkshopSettings(long workshopId)
{
var entity = _companyContext.CustomizeWorkshopSettings.AsSplitQuery().FirstOrDefault(x => x.WorkshopId == workshopId);
if (entity == null)
{
return new();
}
return new()
{
ShiftsList = entity.CustomizeWorkshopSettingsShifts.Select(x => new CustomizeWorkshopShiftViewModel()
{
EndTime = x.EndTime.ToString("HH:mm"),
StartTime = x.StartTime.ToString("HH:mm"),
Placement = x.Placement
}).ToList(),
Id = entity.id,
WorkshopId = entity.WorkshopId,
WorkshopShiftStatus = entity.WorkshopShiftStatus,
FridayWork = entity.FridayWork,
HolidayWork = entity.HolidayWork
};
}
public List<ChangedGroupedViewModel> GetShiftChangesGroupAndEmployees(long customizeWorkshopSettingsId)
{
var result = from groupSetting in _companyContext.CustomizeWorkshopGroupSettings.AsSplitQuery()
where groupSetting.IsShiftChange // Filter parent tables where isChange is true
join employeeSettings in _companyContext.CustomizeWorkshopEmployeeSettings on groupSetting.id equals employeeSettings.CustomizeWorkshopGroupSettingId
where employeeSettings.IsShiftChanged// Filter child tables where isChange is true
join employee in _companyContext.Employees on employeeSettings.EmployeeId equals employee.id
group new { employee.FullName, groupSetting.GroupName } by groupSetting.id into grouped
select new ChangedGroupedViewModel
{
GroupName = grouped.First().GroupName,
EmployeeName = grouped.Select(e => e.FullName).ToList()
};
return result.ToList();
}
public CustomizeWorkshopSettingsViewModel GetWorkshopIncludeGroupsByWorkshopId(long workshopId)
{
var customizeWorkshopSettings = _companyContext.CustomizeWorkshopSettings
.AsNoTracking().AsSplitQuery().Where(x => x.WorkshopId == workshopId)
.Include(x => x.CustomizeWorkshopGroupSettingsCollection)
.Select(x => new CustomizeWorkshopSettingsViewModel()
{
Id = x.id,
WorkshopShiftStatus = x.WorkshopShiftStatus,
GroupSettings = x.CustomizeWorkshopGroupSettingsCollection.Select(g =>
Id = entity.id,
Name = auth.WorkshopList.FirstOrDefault(w => w.Id == entity.WorkshopId)?.Name,
GroupSettings = entity.CustomizeWorkshopGroupSettingsCollection.Where(x => !x.MainGroup).Select(x =>
new CustomizeWorkshopGroupSettingsViewModel()
{
Id = g.id,
IrregularShift = g.IrregularShift,
WorkshopShiftStatus = g.WorkshopShiftStatus,
GroupName = g.GroupName,
MainGroup = g.MainGroup,
RollCallWorkshopShifts = g.CustomizeWorkshopGroupSettingsShifts.Select(s =>
Id = x.id,
GroupName = x.GroupName,
WorkshopShiftStatus = x.WorkshopShiftStatus,
IrregularShift = x.IrregularShift,
Salary = x.Salary,
RollCallWorkshopShifts = x.CustomizeWorkshopGroupSettingsShifts.Select(s =>
new CustomizeWorkshopShiftViewModel()
{
StartTime = s.StartTime.ToString("HH:mm"),
EndTime = s.EndTime.ToString("HH:mm"),
Placement = s.Placement,
}).ToList(),
BreakTime = g.BreakTime,
HolidayWork = g.HolidayWork,
FridayWork = g.FridayWork,
CustomizeRotatingShiftsViewModels = g.CustomizeRotatingShifts.Select(r => new CustomizeRotatingShiftsViewModel()
{
EndTime = r.EndTime.ToString("HH:mm"),
StartTime = r.StartTime.ToString("HH:mm")
}).ToList()
StartTime = s.StartTime.ToString("HH:mm")
}).ToList(),
MainGroup = x.MainGroup,
CustomizeRotatingShiftsViewModels = x.CustomizeRotatingShifts.
Select(r=>new CustomizeRotatingShiftsViewModel(){StartTime = r.StartTime.ToString("HH:mm"), EndTime = r.EndTime.ToString("HH:mm")}).ToList()
}).ToList(),
}).FirstOrDefault();
return customizeWorkshopSettings;
}
public CustomizeWorkshopEmployeeSettingsViewModel GetEmployeeSettingsByWorkshopIdEmployeeId(long workshopId, long employeeId)
{
var employee = _companyContext.CustomizeWorkshopSettings
.AsSplitQuery().Include(x => x.CustomizeWorkshopGroupSettingsCollection)
.ThenInclude(x => x.CustomizeWorkshopEmployeeSettingsCollection)
.FirstOrDefault(x => x.WorkshopId == workshopId)?.CustomizeWorkshopGroupSettingsCollection.SelectMany(x => x.CustomizeWorkshopEmployeeSettingsCollection)
.FirstOrDefault(x => x.EmployeeId == employeeId);
if (employee == null)
return new();
var employeeName = _companyContext.Employees.Select(x => new { x.FullName, x.id })
.FirstOrDefault(x => x.id == employee.EmployeeId);
return new CustomizeWorkshopEmployeeSettingsViewModel()
};
}
public CustomizeWorkshopSettingsViewModel GetWorkshopSettingsByWorkshopIdForAdmin(long workshopId)
{
Id = employee.id,
EmployeeId = employee.EmployeeId,
IsSettingChanged = employee.IsSettingChanged,
IsShiftChanged = employee.IsShiftChanged,
Name = employeeName?.FullName,
RollCallWorkshopShifts = employee.CustomizeWorkshopEmployeeSettingsShifts.Select(x =>
new CustomizeWorkshopShiftViewModel()
var entity = _companyContext.CustomizeWorkshopSettings.AsSplitQuery().Where(x => x.WorkshopId == workshopId)
.Include(x => x.CustomizeWorkshopGroupSettingsCollection)
.ThenInclude(x => x.CustomizeWorkshopEmployeeSettingsCollection).AsSplitQuery()
.FirstOrDefault();
if (entity == null)
return new();
return new CustomizeWorkshopSettingsViewModel()
{
Id = entity.id,
Offset = entity.EndTimeOffSet,
GroupSettings = entity.CustomizeWorkshopGroupSettingsCollection.Where(x => !x.MainGroup).Select(x =>
new CustomizeWorkshopGroupSettingsViewModel()
{
Id = x.id,
GroupName = x.GroupName,
RollCallWorkshopEmployeesSettings = x.CustomizeWorkshopEmployeeSettingsCollection.Select(y =>
{
var employee = _employeeRepository.Get(y.EmployeeId);
return new CustomizeWorkshopEmployeeSettingsViewModel()
{
Id = y.id,
EmployeeId = y.EmployeeId,
IsSettingChanged = y.IsSettingChanged,
IsShiftChanged = y.IsShiftChanged,
Name = $"{employee?.FName} {employee?.LName}",
RollCallWorkshopShifts = y.CustomizeWorkshopEmployeeSettingsShifts.Select(s =>
new CustomizeWorkshopShiftViewModel()
{
EndTime = s.EndTime.ToString("HH:mm"),
Placement = s.Placement,
StartTime = s.StartTime.ToString("HH:mm")
}).ToList(),
Salary = y.Salary,
CustomizeRotatingShiftsViewModels = y.CustomizeRotatingShifts.Select(r => new CustomizeRotatingShiftsViewModel
{
StartTime = r.StartTime.ToString("HH:mm"),
EndTime = r.EndTime.ToString("HH:mm")
}).ToList(),
LeavePermittedDays = y.LeavePermittedDays,
IrregularShift = y.IrregularShift,
WorkshopShiftStatus = y.WorkshopShiftStatus
};
}).ToList(),
Salary = x.Salary,
RollCallWorkshopShifts = x.CustomizeWorkshopGroupSettingsShifts.Select(s =>
new CustomizeWorkshopShiftViewModel()
{
EndTime = s.EndTime.ToString("HH:mm"),
Placement = s.Placement,
StartTime = s.StartTime.ToString("HH:mm")
}).ToList(),
MainGroup = x.MainGroup,
WorkshopShiftStatus = x.WorkshopShiftStatus,
CustomizeRotatingShiftsViewModels = x.CustomizeRotatingShifts.Select(r=>new CustomizeRotatingShiftsViewModel
{
StartTime = r.StartTime.ToString("HH:mm"),
EndTime = r.EndTime.ToString("HH:mm")
}).ToList(),
IrregularShift = x.IrregularShift
}).ToList(),
};
}
public EditCustomizeWorkshopSettings GetWorkshopSettingsDetails(long workshopId)
{
var entity = _companyContext.CustomizeWorkshopSettings.AsSplitQuery().FirstOrDefault(x => x.WorkshopId == workshopId);
if (entity == null)
return new();
var viewModel = new EditCustomizeWorkshopSettings()
{
FridayWork = entity.FridayWork,
FridayPay = new() { FridayPayType = entity.FridayPay.FridayPayType, Value = entity.FridayPay.Value },
LateToWork = new()
{
LateToWorkTimeFinesVewModels = entity.LateToWork.LateToWorkTimeFines.Select(x =>
new LateToWorkTimeFineVewModel() { FineMoney = x.FineMoney, Minute = x.Minute }).ToList(),
Value = entity.LateToWork.Value,
LateToWorkType = entity.LateToWork.LateToWorkType
},
HolidayWork = entity.HolidayWork,
FineAbsenceDeduction = new()
{
Value = entity.FineAbsenceDeduction.Value,
FineAbsenceDayOfWeekViewModels = entity.FineAbsenceDeduction.FineAbsenceDayOfWeekCollection
.Select(x => new FineAbsenceDayOfWeekViewModel() { DayOfWeek = x.DayOfWeek }).ToList(),
FineAbsenceDeductionType = entity.FineAbsenceDeduction.FineAbsenceDeductionType
},
EarlyExit = new()
{
EarlyExitTimeFinesViewModels = entity.EarlyExit.EarlyExitTimeFines.Select(x =>
new EarlyExitTimeFineViewModel() { FineMoney = x.FineMoney, Minute = x.Minute }).ToList(),
Value = entity.EarlyExit.Value,
EarlyExitType = entity.EarlyExit.EarlyExitType
},
BonusesPay = new()
{
Value = entity.BonusesPay.Value,
BonusesPayType = entity.BonusesPay.BonusesPayType,
PaymentType = entity.BonusesPay.PaymentType
},
ShiftPay = new()
{
Value = entity.ShiftPay.Value,
ShiftPayType = entity.ShiftPay.ShiftPayType,
ShiftType = entity.ShiftPay.ShiftType
},
InsuranceDeduction = new()
{
Value = entity.InsuranceDeduction.Value,
InsuranceDeductionType = entity.InsuranceDeduction.InsuranceDeductionType
},
OverTimePay = new()
{ OverTimePayType = entity.OverTimePay.OverTimePayType, Value = entity.OverTimePay.Value },
BaseYearsPay = new()
{
BaseYearsPayType = entity.BaseYearsPay.BaseYearsPayType,
Value = entity.BaseYearsPay.Value,
PaymentType = entity.BaseYearsPay.PaymentType
},
NightWorkPay = new()
{ NightWorkingType = entity.NightWorkPay.NightWorkingType, Value = entity.NightWorkPay.Value },
LeavePay = new()
{
Value = entity.LeavePay.Value,
LeavePayType = entity.LeavePay.LeavePayType
},
MarriedAllowance = new()
{
Value = entity.MarriedAllowance.Value,
MarriedAllowanceType = entity.MarriedAllowance.MarriedAllowanceType
},
FamilyAllowance = new()
{
FamilyAllowanceType = entity.FamilyAllowance.FamilyAllowanceType,
Value = entity.FamilyAllowance.Value
},
Currency = entity.Currency,
MaxMonthDays = entity.MaxMonthDays,
Id = entity.id,
ShiftsList = entity.CustomizeWorkshopSettingsShifts.Select(x => new CustomizeWorkshopShiftViewModel()
{ EndTime = x.EndTime.ToString("HH:mm"), Placement = x.Placement, StartTime = x.StartTime.ToString("HH:mm") }).ToList(),
BonusesPaysInEndOfMonth = entity.BonusesPaysInEndOfMonth,
LeavePermittedDays = entity.LeavePermittedDays,
BaseYearsPayInEndOfYear = entity.BaseYearsPayInEndOfYear,
WorkshopId = entity.WorkshopId,
WorkshopShiftStatus = entity.WorkshopShiftStatus
};
return viewModel;
}
public CustomizeWorkshopSettings GetBy(long workshopId)
{
return _companyContext.CustomizeWorkshopSettings.FirstOrDefault(x => x.WorkshopId == workshopId);
}
public EditCustomizeWorkshopSettings GetSimpleWorkshopSettings(long workshopId)
{
var entity = _companyContext.CustomizeWorkshopSettings.AsSplitQuery().FirstOrDefault(x => x.WorkshopId == workshopId);
if (entity == null)
{
return new();
}
return new()
{
ShiftsList = entity.CustomizeWorkshopSettingsShifts.Select(x => new CustomizeWorkshopShiftViewModel()
{
EndTime = x.EndTime.ToString("HH:mm"),
Placement = x.Placement,
StartTime = x.StartTime.ToString("HH:mm")
StartTime = x.StartTime.ToString("HH:mm"),
Placement = x.Placement
}).ToList(),
Salary = employee.Salary
};
}
Id = entity.id,
WorkshopId = entity.WorkshopId,
WorkshopShiftStatus = entity.WorkshopShiftStatus,
FridayWork = entity.FridayWork,
HolidayWork = entity.HolidayWork
#region Pooya
public List<CustomizeWorkshopEmployeeSettingsViewModel> GetEmployeeSettingsWithMonthlySalary(long workshopId)
{
var query = _companyContext.CustomizeWorkshopGroupSettings.Where(x => x.MainGroup == false).Include(x => x)
.Include(x => x.CustomizeWorkshopEmployeeSettingsCollection).Where(x => x.CustomizeWorkshopEmployeeSettingsCollection.Any(y =>
};
}
public List<ChangedGroupedViewModel> GetShiftChangesGroupAndEmployees(long customizeWorkshopSettingsId)
{
var result = from groupSetting in _companyContext.CustomizeWorkshopGroupSettings.AsSplitQuery()
where groupSetting.IsShiftChange // Filter parent tables where isChange is true
join employeeSettings in _companyContext.CustomizeWorkshopEmployeeSettings on groupSetting.id equals employeeSettings.CustomizeWorkshopGroupSettingId
where employeeSettings.IsShiftChanged// Filter child tables where isChange is true
join employee in _companyContext.Employees on employeeSettings.EmployeeId equals employee.id
group new { employee.FullName, groupSetting.GroupName } by groupSetting.id into grouped
select new ChangedGroupedViewModel
{
GroupName = grouped.First().GroupName,
EmployeeName = grouped.Select(e => e.FullName).ToList()
};
return result.ToList();
}
public CustomizeWorkshopSettingsViewModel GetWorkshopIncludeGroupsByWorkshopId(long workshopId)
{
var customizeWorkshopSettings = _companyContext.CustomizeWorkshopSettings
.AsNoTracking().AsSplitQuery().Where(x => x.WorkshopId == workshopId)
.Include(x => x.CustomizeWorkshopGroupSettingsCollection)
.Select(x => new CustomizeWorkshopSettingsViewModel()
{
Id = x.id,
WorkshopShiftStatus = x.WorkshopShiftStatus,
GroupSettings = x.CustomizeWorkshopGroupSettingsCollection.Select(g =>
new CustomizeWorkshopGroupSettingsViewModel()
{
Id = g.id,
IrregularShift = g.IrregularShift,
WorkshopShiftStatus = g.WorkshopShiftStatus,
GroupName = g.GroupName,
MainGroup = g.MainGroup,
Salary = g.Salary,
SalaryStr = g.Salary.ToMoney(),
LeavePermitted = g.LeavePermittedDays,
RollCallWorkshopShifts = g.CustomizeWorkshopGroupSettingsShifts.Select(s =>
new CustomizeWorkshopShiftViewModel()
{
StartTime = s.StartTime.ToString("HH:mm"),
EndTime = s.EndTime.ToString("HH:mm"),
Placement = s.Placement,
}).ToList(),
BreakTime = g.BreakTime,
HolidayWork = g.HolidayWork,
FridayWork = g.FridayWork,
CustomizeRotatingShiftsViewModels = g.CustomizeRotatingShifts.Select(r=>new CustomizeRotatingShiftsViewModel()
{
EndTime = r.EndTime.ToString("HH:mm"),
StartTime= r.StartTime.ToString("HH:mm")
}).ToList()
}).ToList(),
}).FirstOrDefault();
return customizeWorkshopSettings;
}
public CustomizeWorkshopEmployeeSettingsViewModel GetEmployeeSettingsByWorkshopIdEmployeeId(long workshopId, long employeeId)
{
var employee = _companyContext.CustomizeWorkshopSettings
.AsSplitQuery().Include(x => x.CustomizeWorkshopGroupSettingsCollection)
.ThenInclude(x => x.CustomizeWorkshopEmployeeSettingsCollection)
.FirstOrDefault(x => x.WorkshopId == workshopId)?.CustomizeWorkshopGroupSettingsCollection.SelectMany(x => x.CustomizeWorkshopEmployeeSettingsCollection)
.FirstOrDefault(x => x.EmployeeId == employeeId);
if (employee == null)
return new();
var employeeName = _companyContext.Employees.Select(x => new { x.FullName, x.id })
.FirstOrDefault(x => x.id == employee.EmployeeId);
return new CustomizeWorkshopEmployeeSettingsViewModel()
{
Id = employee.id,
EmployeeId = employee.EmployeeId,
IsSettingChanged = employee.IsSettingChanged,
IsShiftChanged = employee.IsShiftChanged,
Name = employeeName?.FullName,
RollCallWorkshopShifts = employee.CustomizeWorkshopEmployeeSettingsShifts.Select(x =>
new CustomizeWorkshopShiftViewModel()
{
EndTime = x.EndTime.ToString("HH:mm"),
Placement = x.Placement,
StartTime = x.StartTime.ToString("HH:mm")
}).ToList(),
Salary = employee.Salary
};
}
#region Pooya
public List<CustomizeWorkshopEmployeeSettingsViewModel> GetEmployeeSettingsWithMonthlySalary(long workshopId)
{
var query = _companyContext.CustomizeWorkshopGroupSettings.Where(x => x.MainGroup == false).Include(x => x)
.Include(x => x.CustomizeWorkshopEmployeeSettingsCollection).Where(x => x.CustomizeWorkshopEmployeeSettingsCollection.Any(y =>
y.WorkshopId == workshopId)).SelectMany(x => x.CustomizeWorkshopEmployeeSettingsCollection)
.Where(x => x.Salary > 0).Select(x =>
.Where(x => x.Salary > 0).Select(x =>
new CustomizeWorkshopEmployeeSettingsViewModel()
{
WorkshopShiftStatus = x.WorkshopShiftStatus,
@@ -374,31 +361,26 @@ public class CustomizeWorkshopSettingsRepository(CompanyContext companyContext,
EmployeeId = x.EmployeeId,
BreakTime = x.BreakTime
});
return query.ToList();
}
return query.ToList();
}
public List<CustomizeWorkshopEmployeeSettingsViewModel> GetEmployeeSettingsByWorkshopId(long workshopId)
{
return _companyContext.CustomizeWorkshopSettings.AsNoTracking().Where(x => x.WorkshopId == workshopId).Include(x => x.CustomizeWorkshopGroupSettingsCollection)
.ThenInclude(x => x.CustomizeWorkshopEmployeeSettingsCollection).SelectMany(x => x.CustomizeWorkshopGroupSettingsCollection
public List<CustomizeWorkshopEmployeeSettingsViewModel> GetEmployeeSettingsByWorkshopId(long workshopId)
{
return _companyContext.CustomizeWorkshopSettings.AsNoTracking().Where(x => x.WorkshopId == workshopId).Include(x => x.CustomizeWorkshopGroupSettingsCollection)
.ThenInclude(x => x.CustomizeWorkshopEmployeeSettingsCollection).SelectMany(x => x.CustomizeWorkshopGroupSettingsCollection
.SelectMany(y => y.CustomizeWorkshopEmployeeSettingsCollection))
.Select(x => new CustomizeWorkshopEmployeeSettingsViewModel
{
BreakTime = x.BreakTime,
IsShiftChanged = x.IsShiftChanged,
IsSettingChanged = x.IsSettingChanged,
EmployeeId = x.EmployeeId,
Id = x.id,
Salary = x.Salary,
GroupSettingsId = x.CustomizeWorkshopGroupSettingId
}).ToList();
}
.Select(x => new CustomizeWorkshopEmployeeSettingsViewModel
{
BreakTime = x.BreakTime,
IsShiftChanged = x.IsShiftChanged,
IsSettingChanged = x.IsSettingChanged,
EmployeeId = x.EmployeeId,
Id = x.id,
Salary = x.Salary,
GroupSettingsId = x.CustomizeWorkshopGroupSettingId
}).ToList();
}
public CustomizeWorkshopSettings GetBy(long workshopId)
{
return _companyContext.CustomizeWorkshopSettings.AsSplitQuery()
.FirstOrDefault(x => x.WorkshopId == workshopId);
#endregion
}
#endregion
}

View File

@@ -30,12 +30,8 @@ public class EmployeeComputeOptionsRepository : RepositoryBase<long, EmployeeCom
ComputeOptions = x.ComputeOptions,
YearsOptions = x.YearsOptions,
BonusesOptions = x.BonusesOptions,
SignCheckout = x.SignCheckout,
CreateCheckout = x.CreateCheckout,
CreateContract = x.CreateContract,
SignContract = x.SignContract,
}).FirstOrDefault(x => x.WorkshopId == workshopId && x.EmployeeId == employeeId);
}).FirstOrDefault(x => x.WorkshopId == workshopId && x.EmployeeId == employeeId);
if (result == null)
{
@@ -49,11 +45,7 @@ public class EmployeeComputeOptionsRepository : RepositoryBase<long, EmployeeCom
ComputeOptions = getFromWorkshop.ComputeOptions,
YearsOptions = getFromWorkshop.YearsOptions,
BonusesOptions= getFromWorkshop.BonusesOptions,
CreateCheckout = true,
CreateContract = true,
SignCheckout = true,
SignContract = true
};
};
result = fromWorkshop;

File diff suppressed because it is too large Load Diff

View File

@@ -415,9 +415,8 @@ public class InsuranceListRepository : RepositoryBase<long, InsuranceList>, IIns
EmployerId = result.employer.First().EmployerId,
DebtDone = result.insurance.Debt.IsDone,
EmployerApproved = result.insurance.EmployerApproval.IsDone,
InspectionDone = result.insurance.Inspection.IsDone,
EmployerApprovalStatus = result.insurance.EmployerApproval.Status
});
InspectionDone = result.insurance.Inspection.IsDone
});
query = searchModel.Status switch
{
@@ -1493,108 +1492,33 @@ public class InsuranceListRepository : RepositoryBase<long, InsuranceList>, IIns
return res.ToList();
}
public async Task<InsuranceListTabsCountViewModel> GetTabCounts(InsuranceListSearchModel searchModel)
{
var acountId = _authHelper.CurrentAccountId();
public async Task<InsuranceListTabsCountViewModel> GetTabCounts(long accountId, int month, int year)
{
var workshopIds = _context.WorkshopAccounts
.Where(a => a.AccountId == accountId)
.Select(a => a.WorkshopId);
var res = await _context.InsuranceListSet
.Where(x =>
x.Year == year.ToString("0000") &&
x.Month == month.ToString("00") &&
workshopIds.Contains(x.WorkshopId)
)
.GroupBy(x => 1)
.Select(g => new InsuranceListTabsCountViewModel
{
NotStarted = g.Count(x =>
!x.Debt.IsDone && !x.EmployerApproval.IsDone && !x.Inspection.IsDone && !x.ConfirmSentlist),
InProgress = g.Count(x =>
(x.Debt.IsDone || x.EmployerApproval.IsDone || x.Inspection.IsDone)&& !(x.Debt.IsDone && x.EmployerApproval.IsDone && x.Inspection.IsDone) && !x.ConfirmSentlist),
ReadyToSendList = g.Count(x =>
x.Debt.IsDone && x.EmployerApproval.IsDone && x.Inspection.IsDone && !x.ConfirmSentlist),
Done = g.Count(x => x.ConfirmSentlist)
})
.FirstOrDefaultAsync() ?? new InsuranceListTabsCountViewModel();
var workshopIds = _context.WorkshopAccounts
.Where(a => a.AccountId == acountId)
.Select(a => a.WorkshopId);
var query = _context.InsuranceListSet
.Where(x => workshopIds.Contains(x.WorkshopId))
.Join(_context.Workshops.Include(x => x.InsuranceWorkshopInfo),
insurance => insurance.WorkshopId,
workshop => workshop.id,
(insurance, workshop) => new { insurance, workshop })
.GroupJoin(_context.WorkshopEmployers,
result => result.workshop.id,
employer => employer.WorkshopId,
(result, employer) => new { result.insurance, result.workshop, employer })
.Select(result => new InsuranceListViewModel
{
Id = result.insurance.id,
Year = result.insurance.Year,
Month = result.insurance.Month,
WorkShopId = result.insurance.WorkshopId,
WorkShopCode = result.workshop.InsuranceWorkshopInfo != null ? result.workshop.InsuranceWorkshopInfo.InsuranceCode : result.workshop.InsuranceCode,
WorkShopName = result.workshop.InsuranceWorkshopInfo != null ? result.workshop.InsuranceWorkshopInfo.WorkshopName : result.workshop.WorkshopFullName,
TypeOfInsuranceSend = result.workshop.TypeOfInsuranceSend == "NormalList" ? "عادی" :
result.workshop.TypeOfInsuranceSend == "Govermentlist" ? "کمک دولت" :
result.workshop.TypeOfInsuranceSend == "Familylist" ? "خانوادگی" : "",
FixedSalary = result.workshop.FixedSalary,
EmployerName = result.workshop.InsuranceWorkshopInfo != null ? result.workshop.InsuranceWorkshopInfo.EmployerName : result.workshop.WorkshopFullName,
ConfirmSentlist = result.insurance.ConfirmSentlist,
EmployerId = result.employer.First().EmployerId,
DebtDone = result.insurance.Debt.IsDone,
EmployerApproved = result.insurance.EmployerApproval.IsDone,
InspectionDone = result.insurance.Inspection.IsDone
});
return res;
if (!string.IsNullOrEmpty(searchModel.Year) && searchModel.Year != "0" && !string.IsNullOrEmpty(searchModel.Month) && searchModel.Month != "0")
query = query.Where(x => x.Year == searchModel.Year && x.Month == searchModel.Month);
else
{
if (!string.IsNullOrEmpty(searchModel.Month) && searchModel.Month != "0")
query = query.Where(x => x.Month == searchModel.Month);
if (!string.IsNullOrEmpty(searchModel.Year) && searchModel.Year != "0")
query = query.Where(x => x.Year == searchModel.Year);
}
if (!string.IsNullOrEmpty(searchModel.WorkShopCode))
query = query.Where(x => x.WorkShopCode == searchModel.WorkShopCode);
if (!string.IsNullOrEmpty(searchModel.WorkShopName))
query = query.Where(x => x.WorkShopName.Contains(searchModel.WorkShopName));
if (searchModel.WorkshopId > 0)
{
var workshopName = query.FirstOrDefault(u => u.WorkShopId == searchModel.WorkshopId)?.WorkShopName;
query = query.Where(x => x.WorkShopName.Contains(workshopName));
}
if (searchModel.EmployerId > 0)
{
var employerName = query.FirstOrDefault(u => u.EmployerId == searchModel.EmployerId)?.EmployerName;
query = query.Where(x => x.EmployerName.Contains(employerName));
}
if (!string.IsNullOrEmpty(searchModel.EmployerName))
query = query.Where(x => x.EmployerName.Contains(searchModel.EmployerName));
if (searchModel.FixedSalary != null)
query = query.Where(x => x.FixedSalary == searchModel.FixedSalary);
if (!string.IsNullOrEmpty(searchModel.TypeOfInsuranceSend) && searchModel.TypeOfInsuranceSend != "0")
query = query.Where(x => x.TypeOfInsuranceSend == searchModel.TypeOfInsuranceSend);
if (!string.IsNullOrEmpty(searchModel.City) && searchModel.City != "0")
query = query.Where(x => x.City == searchModel.City);
if (!string.IsNullOrEmpty(searchModel.Branch))
query = query.Where(x => x.Branch.Contains(searchModel.Branch));
var res = await query.GroupBy(x => 1)
.Select(g => new InsuranceListTabsCountViewModel
{
NotStarted = g.Count(x =>
!x.DebtDone && !x.EmployerApproved && !x.InspectionDone && !x.ConfirmSentlist),
InProgress = g.Count(x =>
(x.DebtDone || x.EmployerApproved || x.InspectionDone) && !(x.DebtDone && x.EmployerApproved && x.InspectionDone) && !x.ConfirmSentlist),
ReadyToSendList = g.Count(x =>
x.DebtDone && x.EmployerApproved && x.InspectionDone && !x.ConfirmSentlist),
Done = g.Count(x => x.ConfirmSentlist)
})
.FirstOrDefaultAsync() ?? new InsuranceListTabsCountViewModel();
return res;
}
}
/// <summary>
///

View File

@@ -1,7 +1,10 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using _0_Framework.Application;
using _0_Framework.Application.Enums;
using _0_Framework.Exceptions;
using _0_Framework.InfraStructure;
using AccountManagement.Application.Contracts.Account;
using AccountMangement.Infrastructure.EFCore;
@@ -478,6 +481,248 @@ public class PersonalContractingPartyRepository : RepositoryBase<long, PersonalC
#endregion
#region Api
public async Task<ICollection<ContractingPartyGetListViewModel>> GetList(ContractingPartyGetListSearchModel searchModel)
{
var personalContractingPartiesQuery = _context.PersonalContractingParties
.Include(x => x.Representative)
.Include(x => x.Employers).AsQueryable();
if (!string.IsNullOrWhiteSpace(searchModel.NationalIdOrNationalCode))
personalContractingPartiesQuery = personalContractingPartiesQuery
.Where(x => x.Nationalcode.Contains(searchModel.NationalIdOrNationalCode) ||
x.NationalId.Contains(searchModel.NationalIdOrNationalCode));
if (searchModel.ContractingPartyType != LegalType.None)
{
string type = searchModel.ContractingPartyType switch
{
LegalType.Legal => "حقوقی",
LegalType.Real => "حقیقی",
_ => ""
};
personalContractingPartiesQuery = personalContractingPartiesQuery
.Where(x => x.IsLegal == type);
}
if (searchModel.ContractingPartyStatus != ActivationStatus.None)
{
string status = searchModel.ContractingPartyStatus switch
{
ActivationStatus.Active => "true",
ActivationStatus.DeActive => "false",
_ => ""
};
personalContractingPartiesQuery = personalContractingPartiesQuery
.Where(x => x.IsActiveString == status);
}
if (!string.IsNullOrWhiteSpace(searchModel.RepresentativeName))
{
personalContractingPartiesQuery = personalContractingPartiesQuery
.Where(x => x.Representative.FullName.Contains(searchModel.RepresentativeName));
}
if (!string.IsNullOrWhiteSpace(searchModel.FullNameOrCompanyName))
{
personalContractingPartiesQuery = personalContractingPartiesQuery.Where(x =>
(x.FName + " " + x.LName).Contains(searchModel.FullNameOrCompanyName));
}
var joinedQuery = personalContractingPartiesQuery
.GroupJoin(_context.InstitutionContractSet.Where(x => personalContractingPartiesQuery.Any(p => p.id == x.ContractingPartyId)),
contractingParty => contractingParty.id,
institution => institution.ContractingPartyId,
(contractingParty, institution) => new
{
contractingParty,
institution
});
var result = await joinedQuery.Skip(searchModel.PageIndex)
.Take(30).Select(x => new ContractingPartyGetListViewModel()
{
ArchiveCode = x.contractingParty.ArchiveCode,
BlockTimes = x.contractingParty.BlockTimes,
ContractingPartyName = x.contractingParty.IsLegal == "حقیقی" ?
x.contractingParty.SureName == null ? $"{x.contractingParty.FName} {x.contractingParty.LName}"
: $"{x.contractingParty.FName} {x.contractingParty.LName} {x.contractingParty.SureName}"
: x.contractingParty.SureName == null ? $"{x.contractingParty.LName}"
: $"{x.contractingParty.LName} {x.contractingParty.SureName}",
ContractingPartyType = x.contractingParty.IsLegal == "حقیقی" ? LegalType.Real : LegalType.Legal,
Employers = x.contractingParty.Employers.Take(11).Select(e => new ContractingPartyGetListEmployerViewModel(e.id, e.FullName)).ToList(),
Id = x.contractingParty.id,
IsBlock = x.contractingParty.IsBlock == "true",
HasInstitutionContract = x.institution.Any(i => i.IsActiveString == "true"),
NationalIdOrNationalCode = x.contractingParty.IsLegal == "حقیقی" ? x.contractingParty.Nationalcode : x.contractingParty.NationalId,
Status = x.contractingParty.IsActiveString == "true" ? ActivationStatus.Active : ActivationStatus.DeActive
}).ToListAsync();
return result;
}
public async Task<List<ContractingPartySelectListViewModel>> GetSelectList()
{
return await _context.PersonalContractingParties.Select(x => new ContractingPartySelectListViewModel
{
Id = x.id,
Text = x.IsLegal == "حقیقی" ? x.SureName == null
? $"{x.FName} {x.LName}"
: $"{x.FName} {x.LName} {x.SureName}"
: x.SureName == null ? $"{x.LName}"
: $"{x.LName} {x.SureName}",
}).ToListAsync();
}
public async Task<List<GetContractingPartyNationalCodeOrNationalIdViewModel>> GetNationalCodeOrNationalId()
{
return await _context.PersonalContractingParties.Select(x => new GetContractingPartyNationalCodeOrNationalIdViewModel
{
NationalCodeOrNationalId = x.IsLegal == "true" ? x.NationalId : x.Nationalcode
}).ToListAsync();
}
public async Task<OperationResult<string>> DeactivateWithSubordinates(long id)
{
var op = new OperationResult<string>();
;
using (var transaction = await _context.Database.BeginTransactionAsync())
{
try
{
var contractingParty = await _context.PersonalContractingParties
.Include(x => x.Employers)
.ThenInclude(x => x.Contracts)
.Include(x => x.Employers)
.ThenInclude(x => x.WorkshopEmployers)
.ThenInclude(x => x.Workshop)
.ThenInclude(x => x.Checkouts).FirstOrDefaultAsync(x => x.id == id);
if (contractingParty == null)
{
return op.Failed("چنین آیتمی وجود ندارد");
}
var employers = contractingParty.Employers;
var workshops = employers.SelectMany(x => x.WorkshopEmployers).Select(x => x.Workshop).ToList();
var contracts = employers.SelectMany(x => x.Contracts).ToList();
var checkouts = workshops.SelectMany(x => x.Checkouts).ToList();
contractingParty.DeActive();
foreach (var employer in employers)
{
employer.DeActive();
}
foreach (var workshop in workshops)
{
workshop.DeActive(workshop.ArchiveCode);
}
foreach (var contract in contracts)
{
contract.DeActive();
}
foreach (var checkout in checkouts)
{
checkout.DeActive();
}
await _context.SaveChangesAsync();
await transaction.CommitAsync();
return op.Succcedded("DeActivate");
}
catch (Exception)
{
await transaction.RollbackAsync();
return op.Failed("غیرفعال کردن طرف حساب با خطا مواجه شد");
}
}
}
public async Task<GetRealContractingPartyDetailsViewModel> GetRealDetails(long id)
{
var res = await _context.PersonalContractingParties.Where(x => x.IsLegal == "حقیقی").Select(x =>
new GetRealContractingPartyDetailsViewModel()
{
Id = x.id,
IdNumber = x.IdNumber,
PhoneNumber = x.Phone,
AgentPhone = x.AgentPhone,
Address = x.Address,
FullName = x.SureName == null
? $"{x.FName} {x.LName}"
: $"{x.FName} {x.LName} {x.SureName}",
NationalCode = x.Nationalcode,
RepresentativeName = x.RepresentativeFullName,
ArchiveCode = x.ArchiveCode,
City = x.City,
FName = x.FName,
LName = x.LName,
SureName = x.SureName,
RepresentativeId = x.RepresentativeId,
State = x.State,
Zone = x.Zone
}).FirstOrDefaultAsync(x => x.Id == id);
if (res == null)
{
throw new BadRequestException("چنین طرف حسابی وجود ندارد");
}
return res;
}
public async Task<GetLegalContractingPartyDetailsViewModel> GetLegalDetails(long id)
{
var res = await _context.PersonalContractingParties.Where(x => x.IsLegal == "حقوقی").Select(x =>
new GetLegalContractingPartyDetailsViewModel()
{
Id = x.id,
PhoneNumber = x.Phone,
AgentPhone = x.AgentPhone,
Address = x.Address,
CompanyFullName = x.SureName == null
? $"{x.LName}"
: $"{x.LName} {x.SureName}",
NationalId = x.NationalId,
RegisterId = x.RegisterId,
RepresentativeName = x.RepresentativeFullName,
RepresentativeId = x.RepresentativeId,
State = x.State,
SureName = x.SureName,
Zone = x.Zone,
ArchiveCode = x.ArchiveCode,
City = x.City,
CompanyName = x.LName
}).FirstOrDefaultAsync(x => x.Id == id);
if (res == null)
{
throw new BadRequestException("چنین طرف حسابی وجود ندارد");
}
return res;
}
#endregion
}
#endregion

View File

@@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Numerics;
using _0_Framework.Application;
using _0_Framework.InfraStructure;
using Company.Domain.InstitutionPlanAgg;
@@ -170,7 +169,6 @@ public class PlanPercentageRepository : RepositoryBase<long, PlanPercentage>, IP
}
public InstitutionPlanViewModel GetInstitutionPlanForWorkshop(WorkshopTempViewModel command)
{
var planPercentage = _context.PlanPercentages.FirstOrDefault();
@@ -184,7 +182,10 @@ public class PlanPercentageRepository : RepositoryBase<long, PlanPercentage>, IP
var dailyWage = dailyWageYearlySalery.YearlySalaryItemsList.Where(x => x.ItemName == "مزد روزانه")
.Select(x => x.ItemValue).FirstOrDefault();
if (command.ContractAndCheckout)
command.ContractAndCheckoutInPerson = true;
if(command.Insurance)
command.InsuranceInPerson = true;
if (command.CountPerson > 0)
{
@@ -193,28 +194,28 @@ public class PlanPercentageRepository : RepositoryBase<long, PlanPercentage>, IP
.Select(plan => new InstitutionPlanViewModel
{
CountPerson = plan.CountPerson,
ContractAndCheckoutDouble = command.ContractAndCheckout ?
((dailyWage * planPercentage.ContractAndCheckoutPercent / 100) * plan.CountPerson * plan.IncreasePercentage) : 0,
InsuranceDouble = command.Insurance ? (((dailyWage * planPercentage.InsurancePercent) / 100) * plan.CountPerson *
plan.IncreasePercentage) : 0,
RollCallDouble = command.RollCall ? (((dailyWage * planPercentage.RollCallPercent) / 100) * plan.CountPerson *
plan.IncreasePercentage) : 0,
CustomizeCheckoutDouble = (((dailyWage * planPercentage.CustomizeCheckoutPercent) / 100) * plan.CountPerson *
plan.IncreasePercentage),
ContractAndCheckoutInPersonDouble = command.ContractAndCheckoutInPerson ? (((dailyWage * planPercentage.ContractAndCheckoutInPersonPercent) / 100) * plan.CountPerson *
CustomizeCheckoutDouble =command.CustomizeCheckout ? (((dailyWage * planPercentage.CustomizeCheckoutPercent) / 100) * plan.CountPerson *
plan.IncreasePercentage) : 0,
ContractAndCheckoutInPersonDouble = command.ContractAndCheckoutInPerson ? (((dailyWage * planPercentage.ContractAndCheckoutInPersonPercent) / 100) * plan.CountPerson *
plan.IncreasePercentage) : 0,
InsuranceInPersonDouble = command.InsuranceInPerson ? (((dailyWage * planPercentage.InsuranceInPersonPercent) / 100) * plan.CountPerson *
plan.IncreasePercentage) : 0,
}).FirstOrDefault();
if(planByCountPerson == null)
if (planByCountPerson == null)
return new InstitutionPlanViewModel();
//مبلغ کل خدمات حضوری
var inPersonSumAmount = planByCountPerson.ContractAndCheckoutDouble + planByCountPerson.InsuranceDouble +
@@ -236,7 +237,7 @@ public class PlanPercentageRepository : RepositoryBase<long, PlanPercentage>, IP
{
CountPerson = planByCountPerson.CountPerson,
ContractAndCheckout = planByCountPerson.ContractAndCheckoutDouble > 0 ? planByCountPerson.ContractAndCheckoutDouble.ToMoney() : "0",
ContractAndCheckout = planByCountPerson.ContractAndCheckoutDouble > 0 ? planByCountPerson.ContractAndCheckoutDouble.ToMoney() : "0",
Insurance = planByCountPerson.InsuranceDouble > 0 ? planByCountPerson.InsuranceDouble.ToMoney() : "0",
@@ -259,7 +260,7 @@ public class PlanPercentageRepository : RepositoryBase<long, PlanPercentage>, IP
};
}
return new InstitutionPlanViewModel();
}

View File

@@ -2089,7 +2089,6 @@ public class ReportRepository : IReportRepository
var notCompletedWorkshops = accountWorkshopList.Select(workshop =>
{
var contractSigned = workshop.Contracts2.Count(x => x.Signature == "1");
var contractCreated = workshop.Contracts2.Count();
int contractSignedPercent = 0;
@@ -2104,12 +2103,9 @@ public class ReportRepository : IReportRepository
if (contractSignedPercent < 100 && contractCreated > 0)
{
var contractEmployeeIds = workshop.Contracts2.Where(x => x.Signature == "0")
.Select(x => x.EmployeeId).ToList();
var lefts = workshop.LeftWorks.Select(x => x.EmployeeId).Distinct().ToList();
var contractNotNullEmployeeId = lefts.Where(x => contractEmployeeIds.Contains(x)).ToList();
var employeeNotDone =
workshop.Contracts2.Where(x => x.Signature == "0" && contractNotNullEmployeeId.Contains(x.EmployeeId)).Select(l => new EmployeeNotDone()
workshop.Contracts2.Where(x => x.Signature == "0").Select(l => new EmployeeNotDone()
{
Id = l.EmployeeId,
EmployeeFullName = workshop.LeftWorks.FirstOrDefault(x => x.EmployeeId == l.EmployeeId)!.EmployeeFullName,

View File

@@ -60,8 +60,8 @@ public class RollCallMandatoryRepository : RepositoryBase<long, RollCall>, IRoll
_leaveRepository = leaveRepository;
_holidayItemRepository = holidayItemRepository;
_testDbContext = testDbContext;
}
}
#region OfficialChckout
public ComputingViewModel MandatoryCompute(long employeeId, long workshopId, DateTime contractStart,
@@ -108,8 +108,8 @@ public class RollCallMandatoryRepository : RepositoryBase<long, RollCall>, IRoll
.Include(x => x.CustomizeWorkshopGroupSettings).FirstOrDefault(x =>
x.WorkshopId == workshopId && x.EmployeeId == employeeId);
//اگر ساعت استراحت پرسنل وجود نداشت صفر است
var breakTimeEntity = settings == null ? new BreakTime(false, new TimeOnly()) : settings.BreakTime;
var endOfFarvardin = "1404/01/31".ToGeorgianDateTime();
var breakTime = settings == null ? new BreakTime(false, new TimeOnly()) : settings.BreakTime;
#endregion
@@ -125,11 +125,10 @@ public class RollCallMandatoryRepository : RepositoryBase<long, RollCall>, IRoll
groupedRollCall = rollCallResult.GroupBy(x => x.ShiftDate.Date).Select(x => new GroupedRollCalls()
{
CreationDate = x.Key,
ShiftList = x.Select(s => new ShiftList() { Start = s.StartDate!.Value, End = s.EndDate!.Value,EndWithOutResTime = s.ShiftEndWithoutRest.Value != null ? s.ShiftEndWithoutRest.Value : new DateTime()}).ToList(),
ShiftList = x.Select(s => new ShiftList() { Start = s.StartDate!.Value, End = s.EndDate!.Value }).ToList(),
HasFriday = x.Any(s => s.StartDate != null && s.EndDate != null && (s.StartDate.Value.DayOfWeek == DayOfWeek.Friday || s.EndDate.Value!.DayOfWeek == DayOfWeek.Friday)),
SumOneDaySpan = new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks)),
BreakTime = x.First().BreakTimeSpan
SumOneDaySpan = new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks))
}).OrderBy(x => x.CreationDate).ToList();
}
@@ -146,31 +145,16 @@ public class RollCallMandatoryRepository : RepositoryBase<long, RollCall>, IRoll
BreakTimeSpan = x.BreakTimeSpan
}).ToList();
groupedRollCall = rollCallResult.GroupBy(x => x.CreationDate.Date).Select(x =>
groupedRollCall = rollCallResult.GroupBy(x => x.CreationDate.Date).Select(x => new GroupedRollCalls()
{
TimeSpan breakTime;
if (contractStart > endOfFarvardin)
{
breakTime = CalculateBreakTime(
x.First().BreakTimeSpan,
new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks)));
}
else
{
breakTime = CalculateBreakTime(breakTimeEntity, new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks)));
}
return new GroupedRollCalls()
{
CreationDate = x.Key,
ShiftList = x.Select(s => new ShiftList() { Start = s.StartDate!.Value, End = s.EndDate!.Value, EndWithOutResTime = s.EndDate!.Value })
.ToList(),
HasFriday = x.Any(s =>
s.StartDate != null && s.EndDate != null && (s.StartDate.Value.DayOfWeek == DayOfWeek.Friday ||
s.EndDate.Value!.DayOfWeek == DayOfWeek.Friday)),
SumOneDaySpan = new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks)) - breakTime,
CreationDate = x.Key,
ShiftList = x.Select(s => new ShiftList() { Start = s.StartDate!.Value, End = s.EndDate!.Value }).ToList(),
HasFriday = x.Any(s => s.StartDate != null && s.EndDate != null && (s.StartDate.Value.DayOfWeek == DayOfWeek.Friday || s.EndDate.Value!.DayOfWeek == DayOfWeek.Friday)),
SumOneDaySpan = new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks)) - CalculateBreakTime(x.First().BreakTimeSpan,
new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks))),
BreakTime = CalculateBreakTime(x.First().BreakTimeSpan, new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks))),
BreakTime = breakTime,
};
}).OrderBy(x => x.CreationDate).ToList();
}
@@ -244,9 +228,9 @@ public class RollCallMandatoryRepository : RepositoryBase<long, RollCall>, IRoll
double minutesDecimal = (starndardHoursesPerTotalDays - hours) * 60;
int minutes = (int)minutesDecimal;
TimeSpan totalLeaveSpan = TimeSpan.Zero;
TimeSpan starndardHoursesPerTotalDaysSapn = new TimeSpan(hours, minutes, 0);
if (leaveSearchResult.Count > 0 || hoursesleave.Count > 0)
if (leaveSearchResult.Count > 0)
{
if (leaveSearchResult.Any(x => x.HasShiftDuration))
{
@@ -277,8 +261,8 @@ public class RollCallMandatoryRepository : RepositoryBase<long, RollCall>, IRoll
}
totalLeaveSpan = totalLeave;
}
}
else
{
int leavingDayCout = 0;
@@ -327,9 +311,7 @@ public class RollCallMandatoryRepository : RepositoryBase<long, RollCall>, IRoll
{
sumSpans = sumSpans.Add(sumLeave);
}
totalLeaveSpan = sumLeave;
}
}
}
@@ -361,9 +343,9 @@ public class RollCallMandatoryRepository : RepositoryBase<long, RollCall>, IRoll
//***********************************//
//var dailyFix = TimeSpan.Parse("07:20");
//TimeSpan mandatoryHoursTimeSpan = new TimeSpan(7, 20, 0).Multiply(mandatorDays);
//TimeSpan Mandatory = sumSpansWhitOutleaves.Subtract(mandatoryHoursTimeSpan);
var dailyFix = TimeSpan.Parse("07:20");
TimeSpan mandatoryHoursTimeSpan = new TimeSpan(7, 20, 0).Multiply(mandatorDays);
TimeSpan Mandatory = sumSpansWhitOutleaves.Subtract(mandatoryHoursTimeSpan);
double mandatoryWorkWithOutleaves = (sumSpansWhitOutleaves.TotalMinutes) / 60;
double overTimeWork = 0;
@@ -639,75 +621,45 @@ public class RollCallMandatoryRepository : RepositoryBase<long, RollCall>, IRoll
}
else if (totalDays >= 28) // بالای 28 روز حد اقل 8 تغییر شیفت
{
validCount = 6;
validCount = 8;
}
else
{
// تناسب گیری - اگر برای 28 روز 8 تغییر پس برای ایکس روز چند تغییر لازم است
validCount = (int)((totalDays * 6) / 28);
validCount = (int)((totalDays * 8) / 28);
}
string maxName;
int maxValue = moriningCount;
maxName = "moriningCount";
if (eveningCount > maxValue)
{
maxValue = eveningCount;
maxName = "eveningCount";
}
if (nightCount > maxValue)
{
maxValue = nightCount;
maxName = "nightCount";
}
if (moriningCount >= validCount)
RotatingfaName.Add("صبح");
if (eveningCount >= validCount)
RotatingfaName.Add("عصر");
if (nightCount >= validCount)
RotatingfaName.Add("شب");
var rotatingFaResult = "";
if (RotatingfaName.Count > 1)// اگر تعداد شیفت های محاسبه شده بیش از یک بود
{
shiftOver22Hours = "0";
shiftOver22Minuts = "0";
for (var rotateNumber = 0; rotateNumber < RotatingfaName.Count; rotateNumber++)
{
if (rotateNumber == 0)
rotatingFaResult = $"{RotatingfaName[rotateNumber]}";
if (rotateNumber == 1)
rotatingFaResult += $" و {RotatingfaName[rotateNumber]}";
if (rotateNumber == 2)
rotatingFaResult += $" و {RotatingfaName[rotateNumber]}";
}
}
else if (RotatingfaName.Count <= 1)
{
rotatingFaResult = "نوبت کاری ندارد";
int countOutOfRange = 0;
var over22Hours = (int)over22.TotalHours;
var over22Minuts = (int)(over22.TotalMinutes % 60);
shiftOver22Hours = over22Hours.ToString();
shiftOver22Minuts = over22Minuts.ToString();
switch (maxName)
{
case "moriningCount":
countOutOfRange = eveningCount + nightCount;
break;
case "eveningCount":
countOutOfRange = moriningCount + nightCount;
break;
case "nightCount":
countOutOfRange = moriningCount + eveningCount;
break;
}
var rotatingFaResult = "";
if (countOutOfRange >= validCount)
{
shiftOver22Hours = "0";
shiftOver22Minuts = "0";
if (moriningCount >= 1)
RotatingfaName.Add("صبح");
if (eveningCount >= 1)
RotatingfaName.Add("عصر");
if (nightCount >= 1)
RotatingfaName.Add("شب");
for (var rotateNumber = 0; rotateNumber < RotatingfaName.Count; rotateNumber++)
{
if (rotateNumber == 0)
rotatingFaResult = $"{RotatingfaName[rotateNumber]}";
if (rotateNumber == 1)
rotatingFaResult += $" و {RotatingfaName[rotateNumber]}";
if (rotateNumber == 2)
rotatingFaResult += $" و {RotatingfaName[rotateNumber]}";
}
}
else
{
rotatingFaResult = "نوبت کاری ندارد";
var over22Hours = (int)over22.TotalHours;
var over22Minuts = (int)(over22.TotalMinutes % 60);
shiftOver22Hours = over22Hours.ToString();
shiftOver22Minuts = over22Minuts.ToString();
}
}
#endregion
//******* محاسبه مبلغ نوبت کاری *************
#region ShiftPayPercent
@@ -736,30 +688,11 @@ public class RollCallMandatoryRepository : RepositoryBase<long, RollCall>, IRoll
}
}
#endregion
#endregion
#region Result
LeaveSearchModel sickLeaveSearch = new LeaveSearchModel()
{
EmployeeId = employeeId,
WorkshopId = workshopId,
LeaveType = "استعلاجی",
PaidLeaveType = "روزانه",
StartLeaveGr = contractStart,
EndLeaveGr = contractEnd,
IsAccepted = true,
};
var sickLeaveSearchResult = _leaveRepository.search(sickLeaveSearch);
#region Result
var sickLeaveTimeSpans = sickLeaveSearchResult.Select(x =>
{
var startLeave = contractStart > x.StartLeaveGr ? contractStart : x.StartLeaveGr;
var endLeave = contractEnd < x.EndLeaveGr ? contractEnd : x.EndLeaveGr;
return (endLeave - startLeave).Add(TimeSpan.FromDays(1));
});
var totalBreakTime = new TimeSpan(groupedRollCall.Sum(x => x.BreakTime.Ticks));
var res = new ComputingViewModel()
var res = new ComputingViewModel()
{
NumberOfWorkingDays = $"{groupedRollCall.Count}",
@@ -787,70 +720,60 @@ public class RollCallMandatoryRepository : RepositoryBase<long, RollCall>, IRoll
TotalHolidayAndNotM = totalHolidaysAndNotM.ToString(),
DayliFeeComplete = dayliFeeComplete,
MarriedAllowance = MarriedAllowanceStr,
RotatingShiftValue = shiftPayValue,
#region SaveRollCall
GroupedRollCalls = groupedRollCall,
TotalWorkingTimeSpan = sumSpansWhitOutleaves,
TotalBreakTimeSpan = totalBreakTime,
TotalPresentTimeSpan = sumSpansWhitOutleaves + totalBreakTime,
TotalPaidLeave = totalLeaveSpan,
TotalSickLeave = new TimeSpan(sickLeaveTimeSpans.Sum(x=>x.Ticks)),
#endregion
};
RotatingShiftValue = shiftPayValue
};
#endregion
return res;
}
/// <summary>
/// محاسبه ساعات کارکرد پرسنل در صورت داشتن حضور غیاب
/// </summary>
/// <param name="employeeId"></param>
/// <param name="workshopId"></param>
/// <param name="contractStart"></param>
/// <param name="contractEnd"></param>
/// <returns></returns>
public (bool hasRollCall, TimeSpan sumOfSpan) GetRollCallWorkingSpan(long employeeId, long workshopId,
DateTime contractStart, DateTime contractEnd)
{
//bool hasRollcall =
// _rollCallEmployeeRepository.HasRollCallRecord(employeeId, workshopId, contractStart, contractEnd);
//if (!hasRollcall)
// return (false, new TimeSpan());
List<RollCallViewModel> rollCallResult;
List<GroupedRollCalls> groupedRollCall;
/// <summary>
/// محاسبه ساعات کارکرد پرسنل در صورت داشتن حضور غیاب
/// </summary>
/// <param name="employeeId"></param>
/// <param name="workshopId"></param>
/// <param name="contractStart"></param>
/// <param name="contractEnd"></param>
/// <returns></returns>
public (bool hasRollCall, TimeSpan sumOfSpan) GetRollCallWorkingSpan(long employeeId, long workshopId,
DateTime contractStart, DateTime contractEnd)
{
//bool hasRollcall =
// _rollCallEmployeeRepository.HasRollCallRecord(employeeId, workshopId, contractStart, contractEnd);
//if (!hasRollcall)
// return (false, new TimeSpan());
List<RollCallViewModel> rollCallResult;
List<GroupedRollCalls> groupedRollCall;
rollCallResult = _context.RollCalls.Where(x =>
x.EmployeeId == employeeId && x.WorkshopId == workshopId && x.StartDate.Value.Date >= contractStart.Date &&
x.StartDate.Value.Date <= contractEnd.Date && x.EndDate != null).Select(x => new RollCallViewModel()
{
StartDate = x.StartDate,
EndDate = x.EndDate,
ShiftSpan = (x.EndDate.Value - x.StartDate.Value),
CreationDate = x.ShiftDate,
BreakTimeSpan = x.BreakTimeSpan
}).ToList();
groupedRollCall = rollCallResult.GroupBy(x => x.CreationDate.Date).Select(x => new GroupedRollCalls()
{
CreationDate = x.Key,
ShiftList = x.Select(s => new ShiftList() { Start = s.StartDate!.Value, End = s.EndDate!.Value }).ToList(),
HasFriday = x.Any(s => s.StartDate != null && s.EndDate != null && (s.StartDate.Value.DayOfWeek == DayOfWeek.Friday || s.EndDate.Value!.DayOfWeek == DayOfWeek.Friday)),
SumOneDaySpan = new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks)) - CalculateBreakTime(x.First().BreakTimeSpan,
new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks))),
BreakTime = CalculateBreakTime(x.First().BreakTimeSpan, new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks))),
}).OrderBy(x => x.CreationDate).ToList();
rollCallResult = _context.RollCalls.Where(x =>
x.EmployeeId == employeeId && x.WorkshopId == workshopId && x.StartDate.Value.Date >= contractStart.Date &&
x.StartDate.Value.Date <= contractEnd.Date && x.EndDate != null).Select(x => new RollCallViewModel()
{
StartDate = x.StartDate,
EndDate = x.EndDate,
ShiftSpan = (x.EndDate.Value - x.StartDate.Value),
CreationDate = x.ShiftDate,
BreakTimeSpan = x.BreakTimeSpan
}).ToList();
groupedRollCall = rollCallResult.GroupBy(x => x.CreationDate.Date).Select(x => new GroupedRollCalls()
{
CreationDate = x.Key,
ShiftList = x.Select(s => new ShiftList() { Start = s.StartDate!.Value, End = s.EndDate!.Value }).ToList(),
HasFriday = x.Any(s => s.StartDate != null && s.EndDate != null && (s.StartDate.Value.DayOfWeek == DayOfWeek.Friday || s.EndDate.Value!.DayOfWeek == DayOfWeek.Friday)),
SumOneDaySpan = new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks)) - CalculateBreakTime(x.First().BreakTimeSpan,
new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks))),
BreakTime = CalculateBreakTime(x.First().BreakTimeSpan, new TimeSpan(x.Sum(shift => shift.ShiftSpan.Ticks))),
}).OrderBy(x => x.CreationDate).ToList();
TimeSpan sumSpans = new TimeSpan(groupedRollCall.Sum(x => x.SumOneDaySpan.Ticks));
return (true, sumSpans);
}
TimeSpan sumSpans = new TimeSpan(groupedRollCall.Sum(x => x.SumOneDaySpan.Ticks));
return (true, sumSpans);
}
public async Task<ComputingViewModel> RotatingShiftReport(long workshopId, long employeeId, DateTime contractStart, DateTime contractEnd, string shiftwork, bool hasRollCall, CreateWorkingHoursTemp command, bool holidayWorking)
@@ -941,7 +864,20 @@ public class RollCallMandatoryRepository : RepositoryBase<long, RollCall>, IRoll
// شبکاری
TimeSpan over22 = new TimeSpan(rotatingResultList.Sum(x => x.NightWorkSpan.Ticks));
var RotatingfaName = new List<string>();
//if (shiftwork != "1" && shiftwork != "2" && shiftwork != "4")//اگر چرخشی بود و منظم نبود
//{
// if (moriningCount > 0)
// RotatingfaName.Add("صبح");
// if (eveningCount > 0)
// RotatingfaName.Add("عصر");
// if (nightCount > 0)
// RotatingfaName.Add("شب");
//}
//else// اگر منظم و شیفتی بود
//{
//}
var totalDays = (int)(contractEnd - contractStart).TotalDays + 1;
int validCount = 0;
if (totalDays <= 7) // زیر 7 روز باید حد اقل 2 تغییر شیفت داشته باشد
@@ -958,66 +894,37 @@ public class RollCallMandatoryRepository : RepositoryBase<long, RollCall>, IRoll
validCount = (int)((totalDays * 6) / 28);
}
Console.WriteLine(validCount);
if (moriningCount >= validCount)
RotatingfaName.Add("صبح");
if (eveningCount >= validCount)
RotatingfaName.Add("عصر");
if (nightCount >= validCount)
RotatingfaName.Add("شب");
string maxName;
int maxValue = moriningCount;
var rotatingFaResult = "";
if (RotatingfaName.Count > 1)// اگر تعداد شیفت های محاسبه شده بیش از یک بود
{
maxName = "moriningCount";
if (eveningCount > maxValue)
{
maxValue = eveningCount;
maxName = "eveningCount";
}
if (nightCount > maxValue)
{
maxValue = nightCount;
maxName = "nightCount";
}
int countOutOfRange = 0;
switch (maxName)
{
case "moriningCount":
countOutOfRange = eveningCount + nightCount;
break;
case "eveningCount":
countOutOfRange = moriningCount + nightCount;
break;
case "nightCount":
countOutOfRange = moriningCount + eveningCount;
break;
}
var rotatingFaResult = "";
if (countOutOfRange >= validCount)
{
if (moriningCount >= 1)
RotatingfaName.Add("صبح");
if (eveningCount >= 1)
RotatingfaName.Add("عصر");
if (nightCount >= 1)
RotatingfaName.Add("شب");
for (var rotateNumber = 0; rotateNumber < RotatingfaName.Count; rotateNumber++)
{
if (rotateNumber == 0)
rotatingFaResult = $"{RotatingfaName[rotateNumber]}";
if (rotateNumber == 1)
rotatingFaResult += $" و {RotatingfaName[rotateNumber]}";
if (rotateNumber == 2)
rotatingFaResult += $" و {RotatingfaName[rotateNumber]}";
}
}
else
{
rotatingFaResult = "نوبت کاری ندارد";
for (var rotateNumber = 0; rotateNumber < RotatingfaName.Count; rotateNumber++)
{
if (rotateNumber == 0)
rotatingFaResult = $"{RotatingfaName[rotateNumber]}";
if (rotateNumber == 1)
rotatingFaResult += $" و {RotatingfaName[rotateNumber]}";
if (rotateNumber == 2)
rotatingFaResult += $" و {RotatingfaName[rotateNumber]}";
}
}
else if (RotatingfaName.Count <= 1)
{
rotatingFaResult = "نوبت کاری ندارد";
}
}
return new ComputingViewModel
{
@@ -1032,19 +939,19 @@ public class RollCallMandatoryRepository : RepositoryBase<long, RollCall>, IRoll
public static TimeSpan CalculateBreakTime(BreakTime breakTime, TimeSpan sumOneDaySpan)
{
if (breakTime.BreakTimeType != BreakTimeType.WithTime)
return new TimeSpan();
//public static TimeSpan CalculateBreakTime(BreakTime breakTime, TimeSpan sumOneDaySpan)
//{
// if (breakTime.BreakTimeType != BreakTimeType.WithTime)
// return new TimeSpan();
var breakTimeSpan = breakTime.BreakTimeValue.ToTimeSpan();
// var breakTimeSpan = breakTime.BreakTimeValue.ToTimeSpan();
if (breakTimeSpan * 2 >= sumOneDaySpan)
return new TimeSpan();
// if (breakTimeSpan * 2 >= sumOneDaySpan)
// return new TimeSpan();
return breakTimeSpan; ;
// return breakTimeSpan; ;
}
//}
public static TimeSpan CalculateBreakTime(TimeSpan breakTimeSpan, TimeSpan sumOneDaySpan)
{
if (breakTimeSpan * 2 >= sumOneDaySpan)
@@ -2183,7 +2090,7 @@ public class RollCallMandatoryRepository : RepositoryBase<long, RollCall>, IRoll
var starTimeSingel1 = Convert.ToDateTime(shift1Start);
var endTimeSingel2 = Convert.ToDateTime(shift1End);
bool hasRestTime = false;
bool hasRestTime = false;
shift1StartGr = new DateTime(cuurentDate.Year, cuurentDate.Month, cuurentDate.Day, starTimeSingel1.Hour, starTimeSingel1.Minute, 0);
@@ -2192,92 +2099,92 @@ public class RollCallMandatoryRepository : RepositoryBase<long, RollCall>, IRoll
if (shift1EndGr.TimeOfDay < shift1StartGr.TimeOfDay)
shift1EndGr = shift1EndGr.AddDays(1);
var shiftEndWithoutRest = shift1EndGr;
var shiftEndWithoutRest = shift1EndGr;
var shiftSpan = (shift1EndGr - shift1StartGr);
if (restTime > TimeSpan.Zero && shiftSpan >= restTime)
{
hasRestTime = true;
shift1EndGr = shift1EndGr.Subtract(restTime);
shiftSpan = (shift1EndGr - shift1StartGr);
var shiftSpan = (shift1EndGr - shift1StartGr);
if (restTime > TimeSpan.Zero && shiftSpan >= restTime)
{
hasRestTime = true;
shift1EndGr = shift1EndGr.Subtract(restTime);
shiftSpan = (shift1EndGr - shift1StartGr);
}
}
if (!leaveSearchResult.Any(x => x.StartLeaveGr < shift1EndGr && x.EndLeaveGr > shift1StartGr && x.PaidLeaveType == "روزانه"))
{
var hourseLeaveTypeResult = leaveSearchResult.FirstOrDefault(x =>
x.StartLeaveGr < shift1EndGr && x.EndLeaveGr > shift1StartGr && x.PaidLeaveType == "ساعتی");
if (hourseLeaveTypeResult == null)
{
result.Add(new RollCallViewModel()
{
BreakTimeSpan = hasRestTime ? restTime : TimeSpan.Zero,
StartDate = shift1StartGr,
EndDate = shift1EndGr,
ShiftSpan = shiftSpan,
ShiftDate = shift1StartGr,
if (!leaveSearchResult.Any(x => x.StartLeaveGr < shift1EndGr && x.EndLeaveGr > shift1StartGr && x.PaidLeaveType =="روزانه"))
{
var hourseLeaveTypeResult = leaveSearchResult.FirstOrDefault(x =>
x.StartLeaveGr < shift1EndGr && x.EndLeaveGr > shift1StartGr && x.PaidLeaveType == "ساعتی");
if (hourseLeaveTypeResult == null)
{
result.Add(new RollCallViewModel()
{
BreakTimeSpan = hasRestTime ? restTime : TimeSpan.Zero,
StartDate = shift1StartGr,
EndDate = shift1EndGr,
ShiftSpan = shiftSpan,
ShiftDate = shift1StartGr,
ShiftEndWithoutRest = shiftEndWithoutRest
});
}
else
{
});
}
else
{
if (hourseLeaveTypeResult.StartLeaveGr <= shift1StartGr && hourseLeaveTypeResult.EndLeaveGr < shift1EndGr)
{
//leave <-------------------->
//shift <---------------------------------->
result.Add(new RollCallViewModel()
{
BreakTimeSpan = hasRestTime ? restTime : TimeSpan.Zero,
StartDate = hourseLeaveTypeResult.EndLeaveGr,
EndDate = shift1EndGr,
ShiftSpan = (shift1EndGr - hourseLeaveTypeResult.EndLeaveGr),
ShiftDate = shift1StartGr,
ShiftEndWithoutRest = shiftEndWithoutRest
if (hourseLeaveTypeResult.StartLeaveGr <= shift1StartGr && hourseLeaveTypeResult.EndLeaveGr < shift1EndGr)
{
//leave <-------------------->
//shift <---------------------------------->
result.Add(new RollCallViewModel()
{
BreakTimeSpan = hasRestTime ? restTime : TimeSpan.Zero,
StartDate = hourseLeaveTypeResult.EndLeaveGr,
EndDate = shift1EndGr,
ShiftSpan = (shift1EndGr - hourseLeaveTypeResult.EndLeaveGr),
ShiftDate = shift1StartGr,
ShiftEndWithoutRest = shiftEndWithoutRest
});
}
else if (hourseLeaveTypeResult.StartLeaveGr > shift1StartGr && hourseLeaveTypeResult.EndLeaveGr < shift1EndGr)
{
//leave <-------------------->
//shift <---------------------------------->
result.Add(new RollCallViewModel()
{
BreakTimeSpan = hasRestTime ? restTime : TimeSpan.Zero,
StartDate = shift1StartGr,
EndDate = hourseLeaveTypeResult.StartLeaveGr,
ShiftSpan = (hourseLeaveTypeResult.StartLeaveGr - shift1StartGr),
ShiftDate = shift1StartGr,
ShiftEndWithoutRest = hourseLeaveTypeResult.StartLeaveGr
});
}
else if (hourseLeaveTypeResult.StartLeaveGr > shift1StartGr && hourseLeaveTypeResult.EndLeaveGr < shift1EndGr)
{
//leave <-------------------->
//shift <---------------------------------->
result.Add(new RollCallViewModel()
{
BreakTimeSpan = hasRestTime ? restTime : TimeSpan.Zero,
StartDate = shift1StartGr,
EndDate = hourseLeaveTypeResult.StartLeaveGr,
ShiftSpan = (hourseLeaveTypeResult.StartLeaveGr - shift1StartGr),
ShiftDate = shift1StartGr,
ShiftEndWithoutRest = hourseLeaveTypeResult.StartLeaveGr
});
});
result.Add(new RollCallViewModel()
{
BreakTimeSpan = hasRestTime ? restTime : TimeSpan.Zero,
StartDate = hourseLeaveTypeResult.EndLeaveGr,
EndDate = shift1EndGr,
ShiftSpan = (shift1EndGr - hourseLeaveTypeResult.EndLeaveGr),
ShiftDate = shift1StartGr,
ShiftEndWithoutRest = shiftEndWithoutRest
result.Add(new RollCallViewModel()
{
BreakTimeSpan = hasRestTime ? restTime : TimeSpan.Zero,
StartDate = hourseLeaveTypeResult.EndLeaveGr,
EndDate = shift1EndGr,
ShiftSpan = (shift1EndGr - hourseLeaveTypeResult.EndLeaveGr),
ShiftDate = shift1StartGr,
ShiftEndWithoutRest = shiftEndWithoutRest
});
}
else if (hourseLeaveTypeResult.StartLeaveGr > shift1StartGr && hourseLeaveTypeResult.EndLeaveGr >= shift1EndGr)
{
//leave <-------------------->
//shift <---------------------------------->
});
}
else if (hourseLeaveTypeResult.StartLeaveGr > shift1StartGr && hourseLeaveTypeResult.EndLeaveGr >= shift1EndGr)
{
//leave <-------------------->
//shift <---------------------------------->
result.Add(new RollCallViewModel()
{
BreakTimeSpan = hasRestTime ? restTime : TimeSpan.Zero,
StartDate = shift1StartGr,
EndDate = hourseLeaveTypeResult.StartLeaveGr,
ShiftSpan = (hourseLeaveTypeResult.StartLeaveGr - shift1StartGr),
ShiftDate = shift1StartGr,
ShiftEndWithoutRest = hourseLeaveTypeResult.StartLeaveGr
result.Add(new RollCallViewModel()
{
BreakTimeSpan = hasRestTime ? restTime : TimeSpan.Zero,
StartDate = shift1StartGr,
EndDate = hourseLeaveTypeResult.StartLeaveGr,
ShiftSpan = (hourseLeaveTypeResult.StartLeaveGr - shift1StartGr),
ShiftDate = shift1StartGr,
ShiftEndWithoutRest = hourseLeaveTypeResult.StartLeaveGr
});
});
}
@@ -2334,7 +2241,6 @@ public class RollCallMandatoryRepository : RepositoryBase<long, RollCall>, IRoll
EndDate = shift2EndGr,
ShiftSpan = (shift2EndGr - shift2StartGr),
ShiftDate = shift1?.ShiftDate ?? shift2EndGr,
ShiftEndWithoutRest = shift2EndGr,
});
}
else
@@ -2350,8 +2256,7 @@ public class RollCallMandatoryRepository : RepositoryBase<long, RollCall>, IRoll
EndDate = shift2EndGr,
ShiftSpan = (shift2EndGr - hourseLeaveTypeResult.EndLeaveGr),
ShiftDate = shift1?.EndDate ?? shift2EndGr,
ShiftEndWithoutRest = shift2EndGr,
});
});
}
else if (hourseLeaveTypeResult.StartLeaveGr > shift2StartGr && hourseLeaveTypeResult.EndLeaveGr < shift2EndGr)
{
@@ -2363,8 +2268,7 @@ public class RollCallMandatoryRepository : RepositoryBase<long, RollCall>, IRoll
EndDate = hourseLeaveTypeResult.StartLeaveGr,
ShiftSpan = (hourseLeaveTypeResult.StartLeaveGr - shift2StartGr),
ShiftDate = shift1?.EndDate ?? shift2EndGr,
ShiftEndWithoutRest = hourseLeaveTypeResult.StartLeaveGr,
});
});
result.Add(new RollCallViewModel()
{
@@ -2372,8 +2276,7 @@ public class RollCallMandatoryRepository : RepositoryBase<long, RollCall>, IRoll
EndDate = shift2EndGr,
ShiftSpan = (shift2EndGr - hourseLeaveTypeResult.EndLeaveGr),
ShiftDate = shift1?.EndDate ?? shift2EndGr,
ShiftEndWithoutRest = shift2EndGr,
});
});
}
else if (hourseLeaveTypeResult.StartLeaveGr > shift2StartGr && hourseLeaveTypeResult.EndLeaveGr >= shift2EndGr)
{
@@ -2386,8 +2289,7 @@ public class RollCallMandatoryRepository : RepositoryBase<long, RollCall>, IRoll
EndDate = hourseLeaveTypeResult.StartLeaveGr,
ShiftSpan = (hourseLeaveTypeResult.StartLeaveGr - shift2StartGr),
ShiftDate = shift1?.EndDate ?? shift2EndGr,
ShiftEndWithoutRest = hourseLeaveTypeResult.StartLeaveGr,
});
});
}
@@ -3119,13 +3021,13 @@ public class RollCallMandatoryRepository : RepositoryBase<long, RollCall>, IRoll
var endFarvarding = new DateTime(2025, 4, 20);
if (contractStart > endFarvarding)
if (contractStart>endFarvarding)
{
customizeWorkshopEmployeeSettings = _context.CustomizeWorkshopEmployeeSettings
customizeWorkshopEmployeeSettings=_context.CustomizeWorkshopEmployeeSettings
.AsSplitQuery().AsNoTracking().FirstOrDefault(x =>
x.WorkshopId == workshopId && x.EmployeeId == employeeId);
customizeWorkshopSettings = _context.CustomizeWorkshopSettings.AsNoTracking().FirstOrDefault(x => x.WorkshopId == workshopId);
customizeWorkshopSettings =_context.CustomizeWorkshopSettings.AsNoTracking().FirstOrDefault(x => x.WorkshopId == workshopId);
}
else
@@ -4080,40 +3982,40 @@ public class RollCallMandatoryRepository : RepositoryBase<long, RollCall>, IRoll
}).ToList();
}
public List<LoanInstallmentViewModel> LoanInstallmentForCheckout(long employeeId, long workshopId, DateTime contractStart, DateTime contractEnd)
{
return _context.Loans
.Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId)
.SelectMany(x => x.LoanInstallments)
.Where(i => i.InstallmentDate >= contractStart && i.InstallmentDate <= contractEnd && i.IsActive == IsActive.True)
.Select(x => new LoanInstallmentViewModel()
{
Id = x.Id,
Month = x.Month,
IsActive = x.IsActive,
Amount = x.AmountForMonth.ToMoney(),
Year = x.Year,
AmountDouble = x.AmountForMonth,
RemainingAmount = _context.Loans.SelectMany(l => l.LoanInstallments).Where(i => i.LoanId == x.LoanId && i.IsActive == IsActive.True && i.InstallmentDate > x.InstallmentDate)
.Sum(i => i.AmountForMonth).ToMoney(),
LoanAmount = _context.Loans.FirstOrDefault(l => l.id == x.LoanId).Amount.ToMoney()
}).ToList();
}
public List<LoanInstallmentViewModel> LoanInstallmentForCheckout(long employeeId, long workshopId, DateTime contractStart, DateTime contractEnd)
{
return _context.Loans
.Where(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId)
.SelectMany(x => x.LoanInstallments)
.Where(i => i.InstallmentDate >= contractStart && i.InstallmentDate <= contractEnd && i.IsActive == IsActive.True)
.Select(x => new LoanInstallmentViewModel()
{
Id = x.Id,
Month = x.Month,
IsActive = x.IsActive,
Amount = x.AmountForMonth.ToMoney(),
Year = x.Year,
AmountDouble = x.AmountForMonth,
RemainingAmount = _context.Loans.SelectMany(l => l.LoanInstallments).Where(i => i.LoanId == x.LoanId && i.IsActive == IsActive.True && i.InstallmentDate > x.InstallmentDate)
.Sum(i => i.AmountForMonth).ToMoney(),
LoanAmount = _context.Loans.FirstOrDefault(l => l.id == x.LoanId).Amount.ToMoney()
}).ToList();
}
public List<SalaryAidViewModel> SalaryAidsForCheckout(long employeeId, long workshopId, DateTime checkoutStart, DateTime checkoutEnd)
{
return _context.SalaryAids
.Where(x => x.CalculationDate >= checkoutStart && x.CalculationDate <= checkoutEnd && x.EmployeeId == employeeId && x.WorkshopId == workshopId).Select(x => new SalaryAidViewModel()
{
Amount = x.Amount.ToMoney(),
AmountDouble = x.Amount,
SalaryAidDateTimeFa = x.SalaryAidDateTime.ToFarsi(),
SalaryAidDateTimeGe = x.SalaryAidDateTime,
CalculationDateTimeGe = x.CalculationDate,
CalculationDateTimeFa = x.CalculationDate.ToFarsi(),
Id = x.id
}).ToList();
}
public List<SalaryAidViewModel> SalaryAidsForCheckout(long employeeId, long workshopId, DateTime checkoutStart, DateTime checkoutEnd)
{
return _context.SalaryAids
.Where(x => x.CalculationDate >= checkoutStart && x.CalculationDate <= checkoutEnd && x.EmployeeId == employeeId && x.WorkshopId == workshopId).Select(x => new SalaryAidViewModel()
{
Amount = x.Amount.ToMoney(),
AmountDouble = x.Amount,
SalaryAidDateTimeFa = x.SalaryAidDateTime.ToFarsi(),
SalaryAidDateTimeGe = x.SalaryAidDateTime,
CalculationDateTimeGe = x.CalculationDate,
CalculationDateTimeFa = x.CalculationDate.ToFarsi(),
Id = x.id
}).ToList();
}
private void CreateRewardForBirthDay(long employeeId, long workshopId, double amount, int month, int year,
DateTime contractStart)

Some files were not shown because too many files have changed in this diff Show More