Compare commits

..

4 Commits

336 changed files with 4546 additions and 86382 deletions

View File

@@ -5,8 +5,6 @@ on:
branches:
- Main
env:
DOTNET_ENVIRONMENT: Development
jobs:
build-and-deploy:
@@ -19,36 +17,29 @@ jobs:
- name: Setup .NET SDK
uses: actions/setup-dotnet@v4
with:
dotnet-version: '10.0.x'
dotnet-version: '8.0.x' # یا نسخه پروژه‌ت
- name: Restore dependencies
run: dotnet restore ServiceHost/ServiceHost.csproj
run: dotnet restore
- name: Build
run: dotnet build ServiceHost/ServiceHost.csproj --configuration Release
run: dotnet build --configuration Release
- name: Publish
run: dotnet publish ServiceHost/ServiceHost.csproj --configuration Release --output ./publish /p:EnvironmentName=Development --no-build
run: dotnet publish --configuration Release --output ./publish /p:EnvironmentName=Development --no-build
- name: Deploy to IIS via Web Deploy
- name: Deploy to IIS via Web Deploy
shell: powershell
run: |
$publishFolder = Resolve-Path ./publish
$server = $env:SERVER_HOST
$user = $env:DEPLOY_USER
$pass = $env:DEPLOY_PASSWORD
& "C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" `
-verb:sync `
-source:contentPath="$publishFolder" `
-dest:contentPath="dadmehrg",computerName="https://${server}:8172/msdeploy.axd?site=dadmehrg",userName="$user",password="$pass",authType="Basic" `
-dest:contentPath="dadmehrg",computerName="https://$env:SERVER_HOST:8172/msdeploy.axd?site=gozareshgir",userName="$env:DEPLOY_USER",password="$env:DEPLOY_PASSWORD",authType="Basic" `
-allowUntrusted `
-enableRule:AppOffline
-disableRule:DeleteRule `
-useChecksum `
-retryAttempts:3 `
-retryInterval:2000
env:
SERVER_HOST: ${{ secrets.DEV_HOST }}
DEPLOY_USER: ${{ secrets.DEV_USER }}
DEPLOY_PASSWORD: ${{ secrets.DEV_PASS }}
env:
SERVER_HOST: 171.22.24.15
DEPLOY_USER: ${{ secrets.DEPLOY_USER }}
DEPLOY_PASSWORD: ${{ secrets.DEPLOY_PASSWORD }}

1
.gitignore vendored
View File

@@ -364,7 +364,6 @@ MigrationBackup/
.idea
/ServiceHost/appsettings.Development.json
/ServiceHost/appsettings.json
/ServiceHost/web.config
# Storage folder - ignore all uploaded files, thumbnails, and temporary files
ServiceHost/Storage

View File

@@ -21,7 +21,6 @@
<PackageReference Include="MD.PersianDateTime.Standard" Version="2.6.0" />
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="10.0.1" />
<PackageReference Include="System.Security.Cryptography.Xml" Version="10.0.1" />
<!--<PackageReference Include="DNTPersianUtils.Core" Version="6.7.1" />-->

View File

@@ -1,237 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _0_Framework.Application;
/// <summary>
/// دامنه امتیازات گروه های طبقه بندی مشاغل
/// </summary>
public static class ClassificationRangeOfGroupRate
{
/// <summary>
/// دریافت فاصله امتیاز گروه
/// </summary>
/// <param name="groupNo"></param>
/// <returns></returns>
public static ClassificationGroupRate GetGroupDistanceRate(string groupNo)
{
switch (groupNo)
{
case "1":
return new ClassificationGroupRate()
{
GroupNo = groupNo,
LowRate = 0,
HighRate = 80,
DistanceRate = 0,
};
break;
case "2":
return new ClassificationGroupRate()
{
GroupNo = groupNo,
LowRate = 81,
HighRate = 95,
DistanceRate = 15,
};
break;
case "3":
return new ClassificationGroupRate()
{
GroupNo = groupNo,
LowRate = 96,
HighRate = 110,
DistanceRate = 30, //فاصله سقف این گروه تا سقف گروه یک
};
break;
case "4":
return new ClassificationGroupRate()
{
GroupNo = groupNo,
LowRate = 111,
HighRate = 125,
DistanceRate = 45, //فاصله سقف این گروه تا سقف گروه یک
};
break;
case "5":
return new ClassificationGroupRate()
{
GroupNo = groupNo,
LowRate = 126,
HighRate = 145,
DistanceRate = 65, //فاصله سقف این گروه تا سقف گروه یک
};
break;
case "6":
return new ClassificationGroupRate()
{
GroupNo = groupNo,
LowRate = 146,
HighRate = 165,
DistanceRate = 85,
};
break;
case "7":
return new ClassificationGroupRate()
{
GroupNo = groupNo,
LowRate = 166,
HighRate = 185,
DistanceRate = 105,
};
break;
case "8":
return new ClassificationGroupRate()
{
GroupNo = groupNo,
LowRate = 186,
HighRate = 210,
DistanceRate = 130,
};
break;
case "9":
return new ClassificationGroupRate()
{
GroupNo = groupNo,
LowRate = 211,
HighRate = 235,
DistanceRate = 155,
};
break;
case "10":
return new ClassificationGroupRate()
{
GroupNo = groupNo,
LowRate = 236,
HighRate = 265,
DistanceRate = 185,
};
break;
case "11":
return new ClassificationGroupRate()
{
GroupNo = groupNo,
LowRate = 266,
HighRate = 295,
DistanceRate = 215,
};
break;
case "12":
return new ClassificationGroupRate()
{
GroupNo = groupNo,
LowRate = 296,
HighRate = 325,
DistanceRate = 245,
};
break;
case "13":
return new ClassificationGroupRate()
{
GroupNo = groupNo,
LowRate = 326,
HighRate = 365,
DistanceRate = 285,
};
break;
case "14":
return new ClassificationGroupRate()
{
GroupNo = groupNo,
LowRate = 366,
HighRate = 405,
DistanceRate = 325,
};
break;
case "15":
return new ClassificationGroupRate()
{
GroupNo = groupNo,
LowRate = 406,
HighRate = 445,
DistanceRate = 365,
};
break;
case "16":
return new ClassificationGroupRate()
{
GroupNo = groupNo,
LowRate = 446,
HighRate = 495,
DistanceRate = 415,
};
break;
case "17":
return new ClassificationGroupRate()
{
GroupNo = groupNo,
LowRate = 496,
HighRate = 545,
DistanceRate = 465,
};
break;
case "18":
return new ClassificationGroupRate()
{
GroupNo = groupNo,
LowRate = 546,
HighRate = 605,
DistanceRate = 525,
};
break;
case "19":
return new ClassificationGroupRate()
{
GroupNo = groupNo,
LowRate = 606,
HighRate = 665,
DistanceRate = 585,
};
break;
case "20":
return new ClassificationGroupRate()
{
GroupNo = groupNo,
LowRate = 666,
HighRate = 740,
DistanceRate = 660,
};
break;
}
return new ClassificationGroupRate();
}
}
/// <summary>
/// دیتای امتیازات هر گرو
/// </summary>
public class ClassificationGroupRate
{
/// <summary>
/// شمازه گروه
/// </summary>
public string GroupNo { get; set; }
/// <summary>
/// امتیاز کف
/// </summary>
public int LowRate { get; set; }
/// <summary>
/// امتیاز سقف
/// </summary>
public int HighRate { get; set; }
/// <summary>
/// فاصله امتیاز
/// </summary>
public int DistanceRate { get; set; }
}

View File

@@ -1,14 +0,0 @@
namespace _0_Framework.Application.Enums;
public enum TypeOfCoefficient
{
/// <summary>
/// ضریب ریالی طرح
/// </summary>
RialCoefficient,
/// <summary>
/// ضریب ریالی اداره کار
/// </summary>
JobOrganization,
}

View File

@@ -33,35 +33,6 @@ public static class Tools
public static string[] DayNames = { "شنبه", "یکشنبه", "دو شنبه", "سه شنبه", "چهار شنبه", "پنج شنبه", "جمعه" };
public static string[] DayNamesG = { "یکشنبه", "دو شنبه", "سه شنبه", "چهار شنبه", "پنج شنبه", "جمعه", "شنبه" };
/// <summary>
/// نام ستون از جدول مزد سنوات طبثه بندی را میگیرد و دیتای داخل آن ستون را برمیگرداند
/// </summary>
/// <param name="obj"></param>
/// <param name="propertyName"></param>
/// <returns></returns>
public static double? GetDynamicDouble(object obj, string propertyName)
{
if (obj == null || string.IsNullOrWhiteSpace(propertyName))
return null;
var propertyInfo = obj.GetType().GetProperty(propertyName);
if (propertyInfo == null)
return null;
var value = propertyInfo.GetValue(obj);
if (value == null)
return null;
try
{
return Convert.ToDouble(value);
}
catch
{
return null;
}
}
public static bool IsMobileValid(this string mobileNo)
{
@@ -70,33 +41,6 @@ public static class Tools
return Regex.IsMatch(mobileNo, "^((09))(\\d{9})$");
}
/// <summary>
/// متد رند کننده مبلغ
/// استفاده شده در بیمه
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static double GetRoundDoubleValue(double value)
{
string strValue = value.ToString();
if (strValue.IndexOf('.') > -1)
{
string a = strValue.Substring(strValue.IndexOf('.') + 1, 1);
if (int.Parse(a) > 5)
{
return (Math.Round(value, MidpointRounding.ToPositiveInfinity));
}
else
{
return (Math.Round(value, MidpointRounding.ToNegativeInfinity));
}
}
return value;
}
/// <summary>
/// تاریخ شروع و تعداد ماه را میگیرد و تاریخ پایان قراردا را بر میگرداند
/// </summary>
@@ -501,30 +445,6 @@ public static class Tools
return myMoney.ToString("N0", CultureInfo.CreateSpecificCulture("fa-ir"));
}
/// <summary>
/// اگر مبلغ صفر باشد خط تیره برمیگرداند
/// </summary>
/// <param name="myMoney"></param>
/// <returns></returns>
public static string ToMoneyCheckZero(this double myMoney)
{
if (myMoney == 0)
return "-";
return myMoney.ToString("N0", CultureInfo.CreateSpecificCulture("fa-ir"));
}
/// <summary>
/// اگر مبلغ صفر یا نال باشد خط تیره برمیگرداند
/// </summary>
/// <param name="myMoney"></param>
/// <returns></returns>
public static string ToMoneyCheckZeroNullable(this double? myMoney)
{
if (myMoney == 0 || myMoney == null)
return "-";
return myMoney?.ToString("N0", CultureInfo.CreateSpecificCulture("fa-ir"));
}
public static string ToMoneyNullable(this double? myMoney)
{
@@ -706,115 +626,7 @@ public static class Tools
return y2;
}
/// <summary>
/// تاریخ شمسی میگیرد و پایان ماه را به میلادی برمیگرداند
/// </summary>
/// <param name="date"></param>
/// <returns></returns>
public static DateTime FindeEndOfMonthReturnGr(this string date)
{
string y2 = string.Empty;
var year = Convert.ToInt32(date.Substring(0, 4));
var month = Convert.ToInt32(date.Substring(5, 2));
var YearD = date.Substring(0, 4);
var MonthD = date.Substring(5, 2);
if (month <= 6)
{
y2 = $"{YearD}/{MonthD}/31";
}
else if (month > 6 && month < 12)
{
y2 = $"{YearD}/{MonthD}/30";
}
else if (month == 12)
{
switch (year)
{
case 1346:
y2 = $"{YearD}/{MonthD}/30";
break;
case 1350:
y2 = $"{YearD}/{MonthD}/30";
break;
case 1354:
y2 = $"{YearD}/{MonthD}/30";
break;
case 1358:
y2 = $"{YearD}/{MonthD}/30";
break;
case 1362:
y2 = $"{YearD}/{MonthD}/30";
break;
case 1366:
y2 = $"{YearD}/{MonthD}/30";
break;
case 1370:
y2 = $"{YearD}/{MonthD}/30";
break;
case 1375:
y2 = $"{YearD}/{MonthD}/30";
break;
case 1379:
y2 = $"{YearD}/{MonthD}/30";
break;
case 1383:
y2 = $"{YearD}/{MonthD}/30";
break;
case 1387:
y2 = $"{YearD}/{MonthD}/30";
break;
case 1391:
y2 = $"{YearD}/{MonthD}/30";
break;
case 1395:
y2 = $"{YearD}/{MonthD}/30";
break;
case 1399:
y2 = $"{YearD}/{MonthD}/30";
break;
case 1403:
y2 = $"{YearD}/{MonthD}/30";
break;
case 1408:
y2 = $"{YearD}/{MonthD}/30";
break;
case 1412:
y2 = $"{YearD}/{MonthD}/30";
break;
case 1416:
y2 = $"{YearD}/{MonthD}/30";
break;
case 1420:
y2 = $"{YearD}/{MonthD}/30";
break;
case 1424:
y2 = $"{YearD}/{MonthD}/30";
break;
case 1428:
y2 = $"{YearD}/{MonthD}/30";
break;
case 1432:
y2 = $"{YearD}/{MonthD}/30";
break;
case 1436:
y2 = $"{YearD}/{MonthD}/30";
break;
case 1441:
y2 = $"{YearD}/{MonthD}/30";
break;
case 1445:
y2 = $"{YearD}/{MonthD}/30";
break;
default:
y2 = $"{YearD}/{MonthD}/29";
break;
}
}
return y2.ToGeorgianDateTime();
}
/// <summary>
/// تعداد روزهای سال را برمیگرداند
/// اگر کبیسهد بود سال 366 روزه برمیگرداند

View File

@@ -11,8 +11,7 @@ namespace _0_Framework.Domain;
public interface IRepository<TKey, T> where T:class
{
T Get(TKey id);
List<T> Get();
Task<List<T>> GetListByIdList(List<TKey> ids);
List<T> Get();
void Create(T entity);
Task CreateAsync(T entity);
bool ExistsIgnoreQueryFilter(Expression<Func<T, bool>> expression);

View File

@@ -53,11 +53,6 @@ namespace _0_Framework.InfraStructure
{
return _context.Set<T>().ToList();
}
public async Task<List<T>> GetListByIdList(List<TKey> ids)
{
return await _context.Set<T>().Where(e => ids.Contains(EF.Property<TKey>(e, "id"))).ToListAsync();
}
public void Remove(T entity)
{
_context.Set<T>().Remove(entity);

View File

@@ -8,6 +8,5 @@ namespace Company.Domain.BankAgg
{
public void Remove(Bank entity);
List<BankViewModel> Search(string name);
List<BankSelectList> GetBanksForSelectList();
}
}

View File

@@ -1,10 +1,9 @@
using _0_Framework.Application;
using _0_Framework.Domain;
using CompanyManagment.App.Contracts.Checkout;
using CompanyManagment.App.Contracts.Checkout.Dto;
using System;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using _0_Framework.Application;
using _0_Framework.Domain;
using CompanyManagment.App.Contracts.Checkout;
namespace Company.Domain.CheckoutAgg;
@@ -23,7 +22,7 @@ public interface ICheckoutRepository : IRepository<long, Checkout>
string year, string month);
EditCheckout GetDetails(long id);
Task<bool> CreateCheckout(Checkout command);
Task CreateCkeckout(Checkout command);
/// <summary>
/// لود لیست اولیه جهت ایجاد فیش حقوقی
/// </summary>
@@ -81,44 +80,4 @@ public interface ICheckoutRepository : IRepository<long, Checkout>
#endregion
Task<Checkout> GetByWorkshopIdEmployeeIdInDate(long workshopId, long employeeId, DateTime inDate);
Task<PagedResult<CheckoutListClientDto>> GetListForClient(long workshopId,
CheckoutListClientSearchModel searchModel);
#region ForApi
/// <summary>
/// دریافت سلکت لیست پرسنل کارگاه
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task<List<EmployeeSelectListDto>> GetEmployeeSelectListByWorkshopId(long id);
/// <summary>
/// دریافت لیست فیش حقوقی
/// </summary>
/// <param name="searchModel"></param>
/// <returns></returns>
Task<PagedResult<CheckoutDto>> GetList(CheckoutSearchModelDto searchModel);
/// <summary>
/// پرینت فیش حقوقی
/// Api
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
Task<List<CheckoutPrintDto>> CheckoutPrint(List<long> ids);
/// <summary>
/// دریافت قردادها و جداول وابسته برای ایجاد فیش
/// </summary>
/// <param name="ids"></param>
/// <param name="year"></param>
/// <param name="month"></param>
/// <param name="workshopId"></param>
/// <returns></returns>
Task<OperationResult<GetContractAndIncludesDataToCreateDto>> GetContractsAndIncludeDataDataToCreateCheckout(
List<long> ids, string year, string month, long workshopId);
#endregion
}

View File

@@ -1,93 +0,0 @@
using _0_Framework.Domain;
using System;
namespace Company.Domain.ClassificationSchemeAgg;
public class ClassificationEmployee : EntityBase
{
/// <summary>
/// ایجاد پرسنل طرح
/// </summary>
/// <param name="workshopId"></param>
/// <param name="employeeId"></param>
/// <param name="classificationSchemeId"></param>
/// <param name="classificationGroupId"></param>
/// <param name="classificationGroupJobId"></param>
/// <param name="startGroupDate"></param>
/// <param name="endGroupDate"></param>
public ClassificationEmployee(long workshopId, long employeeId, long classificationSchemeId, long classificationGroupId, long classificationGroupJobId, DateTime? startGroupDate)
{
WorkshopId = workshopId;
EmployeeId = employeeId;
ClassificationSchemeId = classificationSchemeId;
ClassificationGroupId = classificationGroupId;
ClassificationGroupJobId = classificationGroupJobId;
StartGroupDate = startGroupDate;
}
/// <summary>
/// آی دی کارگاه
/// </summary>
public long WorkshopId { get; private set; }
/// <summary>
/// آی دی پرسنل
/// </summary>
public long EmployeeId { get; private set; }
/// <summary>
/// آی دی طرح
/// </summary>
public long ClassificationSchemeId { get; private set; }
/// <summary>
/// آی دی گروه
/// </summary>
public long ClassificationGroupId { get; private set; }
/// <summary>
/// آی دی شغل
/// </summary>
public long ClassificationGroupJobId { get; private set; }
/// <summary>
/// تاریخ شروع استفاده از گروه
/// </summary>
public DateTime? StartGroupDate{ get; private set; }
/// <summary>
/// تاریخ پایان استفاده از گروه
/// </summary>
public DateTime? EndGroupDate { get; private set; }
public ClassificationGroup ClassificationGroup { get; set; }
/// <summary>
/// ویرایش پرسنل طرح
/// </summary>
/// <param name="classificationGroupId"></param>
/// <param name="classificationGroupJobId"></param>
public void Edit(long classificationGroupId, long classificationGroupJobId)
{
ClassificationGroupId = classificationGroupId;
ClassificationGroupJobId = classificationGroupJobId;
}
/// <summary>
/// ویرایش گروه های چندگانه پرسنل طرح
/// </summary>
/// <param name="classificationGroupId"></param>
/// <param name="classificationGroupJobId"></param>
/// <param name="startGroupDate"></param>
/// <param name="endGroupDate"></param>
public void EditMultipleGroupMember(long classificationGroupId, long classificationGroupJobId, DateTime startGroupDate)
{
ClassificationGroupId = classificationGroupId;
ClassificationGroupJobId = classificationGroupJobId;
StartGroupDate = startGroupDate;
}
}

View File

@@ -1,43 +0,0 @@
using System.Collections.Generic;
using _0_Framework.Domain;
namespace Company.Domain.ClassificationSchemeAgg;
public class ClassificationGroup : EntityBase
{
/// <summary>
/// ایجاد گروه های بیست گانه طرح طبقه بندی
/// </summary>
/// <param name="groupNo"></param>
/// <param name="workshopId"></param>
/// <param name="classificationSchemeId"></param>
public ClassificationGroup(string groupNo, long workshopId, long classificationSchemeId)
{
GroupNo = groupNo;
WorkshopId = workshopId;
ClassificationSchemeId = classificationSchemeId;
}
/// <summary>
/// شماره گروه
/// </summary>
public string GroupNo { get; private set; }
/// <summary>
/// آی دی کارگاه
/// </summary>
public long WorkshopId { get; private set; }
/// <summary>
/// آی دی طرح
/// </summary>
public long ClassificationSchemeId { get; private set; }
public ClassificationScheme ClassificationScheme { get; set; }
public List<ClassificationGroupJob> ClassificationGroupJobs { get; set; }
public List<ClassificationGroupSalary> ClassificationGroupSalaries { get; set; }
public List<ClassificationEmployee> ClassificationEmployees { get; set; }
}

View File

@@ -1,55 +0,0 @@
using _0_Framework.Domain;
using _0_Framework_b.Domain;
namespace Company.Domain.ClassificationSchemeAgg;
public class ClassificationGroupJob : EntityBaseWithoutCreationDate
{
/// <summary>
/// ایجاد لیست مشغال برای گروه های طرح طبقه بندی
/// </summary>
/// <param name="jobId"></param>
/// <param name="jobName"></param>
/// <param name="jobCode"></param>
/// <param name="classificationGroupId"></param>
/// <param name="groupNo"></param>
public ClassificationGroupJob(long jobId, string jobName, string jobCode, long classificationGroupId, string groupNo)
{
JobId = jobId;
JobName = jobName;
JobCode = jobCode;
ClassificationGroupId = classificationGroupId;
GroupNo = groupNo;
}
/// <summary>
/// آی دی شغل
/// </summary>
public long JobId { get; private set; }
/// <summary>
/// نام شغل
/// </summary>
public string JobName { get; private set; }
/// <summary>
/// کد شغل
/// </summary>
public string JobCode { get; private set; }
/// <summary>
/// آی دی گروه
/// </summary>
public long ClassificationGroupId { get; private set; }
/// <summary>
/// شماره گروه
/// </summary>
public string GroupNo { get; private set; }
public ClassificationGroup ClassificationGroup { get; set; }
}

View File

@@ -1,82 +0,0 @@
using _0_Framework.Domain;
using System;
namespace Company.Domain.ClassificationSchemeAgg;
public class ClassificationGroupSalary : EntityBase
{
/// <summary>
/// ایجاد دستمزد برای گروه
/// </summary>
/// <param name="classificationGroupId"></param>
/// <param name="groupNo"></param>
/// <param name="groupSalary"></param>
/// <param name="startDate"></param>
/// <param name="endDate"></param>
/// <param name="year"></param>
public ClassificationGroupSalary(long classificationGroupId, string groupNo, double groupSalary, DateTime startDate, DateTime endDate, int year, long schemeId)
{
ClassificationGroupId = classificationGroupId;
GroupNo = groupNo;
GroupSalary = groupSalary;
StartDate = startDate;
EndDate = endDate;
Year = year;
SchemeId = schemeId;
}
/// <summary>
/// آی دی گروه
/// </summary>
public long ClassificationGroupId { get; private set; }
/// <summary>
/// شماره گروه
/// </summary>
public string GroupNo { get; private set; }
/// <summary>
/// دستمزد گروه
/// </summary>
public double GroupSalary { get; private set; }
/// <summary>
/// تاریخ شروع
/// </summary>
public DateTime StartDate { get; private set; }
/// <summary>
/// تاریخ پایان
/// </summary>
public DateTime EndDate { get; private set; }
/// <summary>
/// سال
/// </summary>
public int Year { get; private set; }
public long SchemeId { get; private set; }
public ClassificationGroup ClassificationGroup { get; set; }
/// <summary>
/// ویرایش دستمزد گروه
/// </summary>
/// <param name="groupSalary"></param>
/// <param name="startDate"></param>
/// <param name="endDate"></param>
/// <param name="year"></param>
public void Edit(double groupSalary, DateTime startDate, DateTime endDate, int year)
{
GroupSalary = groupSalary;
StartDate = startDate;
EndDate = endDate;
Year = year;
}
}

View File

@@ -1,68 +0,0 @@
using System;
using _0_Framework.Domain;
namespace Company.Domain.ClassificationSchemeAgg;
public class ClassificationRialCoefficient : EntityBaseWithoutCreationDate
{
/// <summary>
/// ایچاد ضریب ریالی
/// </summary>
/// <param name="classificationSchemeId"></param>
/// <param name="rialCoefficient"></param>
/// <param name="startDate"></param>
/// <param name="endDate"></param>
/// <param name="year"></param>
public ClassificationRialCoefficient(long classificationSchemeId, double rialCoefficient, DateTime startDate, DateTime endDate, int year)
{
ClassificationSchemeId = classificationSchemeId;
RialCoefficient = rialCoefficient;
StartDate = startDate;
EndDate = endDate;
Year = year;
}
//آی دی طرح
public long ClassificationSchemeId { get; private set; }
/// <summary>
/// ضریب ریالی
/// </summary>
public double RialCoefficient { get; private set; }
/// <summary>
/// تاریخ شروع
/// </summary>
public DateTime StartDate { get; private set; }
/// <summary>
/// تاریخ پایان
/// </summary>
public DateTime EndDate { get; private set; }
/// <summary>
/// سال
/// </summary>
public int Year { get; private set; }
public ClassificationScheme ClassificationScheme { get; set; }
/// <summary>
/// ویرایش ضریب ریالی
/// </summary>
/// <param name="classificationSchemeId"></param>
/// <param name="rialCoefficient"></param>
/// <param name="startDate"></param>
/// <param name="endDate"></param>
/// <param name="year"></param>
public void Edit(double rialCoefficient, DateTime startDate, DateTime endDate, int year)
{
RialCoefficient = rialCoefficient;
StartDate = startDate;
EndDate = endDate;
Year = year;
}
}

View File

@@ -1,88 +0,0 @@
using System;
using System.Collections.Generic;
using _0_Framework.Application.Enums;
using _0_Framework.Domain;
namespace Company.Domain.ClassificationSchemeAgg;
public class ClassificationScheme : EntityBase
{
/// <summary>
/// ایجاد طرح طبقه بندی مشاغل
/// </summary>
/// <param name="includingDateGr"></param>
/// <param name="executionDateGr"></param>
/// <param name="designerFullName"></param>
/// <param name="designerPhone"></param>
/// <param name="workshopId"></param>
/// <param name="typeOfCoefficient"></param>
public ClassificationScheme(DateTime includingDateGr, DateTime executionDateGr, string designerFullName, string designerPhone, long workshopId, TypeOfCoefficient typeOfCoefficient)
{
IncludingDateGr = includingDateGr;
ExecutionDateGr = executionDateGr;
DesignerFullName = designerFullName;
DesignerPhone = designerPhone;
WorkshopId = workshopId;
TypeOfCoefficient = typeOfCoefficient;
}
/// <summary>
/// تاریخ شمول طرح
/// </summary>
public DateTime IncludingDateGr { get; private set; }
/// <summary>
/// تاریخ اجرای طرح
/// </summary>
public DateTime ExecutionDateGr { get; private set; }
/// <summary>
/// تاریخ پایان طرح
/// </summary>
public DateTime? EndSchemeDateGr { get; private set; }
/// <summary>
/// نام کامل طراح
/// </summary>
public string DesignerFullName { get; private set; }
/// <summary>
/// شماره همراه طراح
/// </summary>
public string DesignerPhone { get; private set; }
/// <summary>
/// آی دی کارگاه
/// </summary>
public long WorkshopId { get; private set; }
/// <summary>
/// نوع ضریب
/// </summary>
public TypeOfCoefficient TypeOfCoefficient { get; private set; }
public List<ClassificationGroup> ClassificationGroups { get; set; }
public List<ClassificationRialCoefficient> ClassificationRialCoefficients { get; set; }
/// <summary>
/// ویرایش طرح
/// </summary>
/// <param name="includingDateGr"></param>
/// <param name="executionDateGr"></param>
/// <param name="designerFullName"></param>
/// <param name="designerPhone"></param>
/// <param name="workshopId"></param>
public void Edit(DateTime includingDateGr, DateTime executionDateGr,string designerFullName, string designerPhone, TypeOfCoefficient typeOfCoefficient)
{
IncludingDateGr = includingDateGr;
ExecutionDateGr = executionDateGr;
DesignerFullName = designerFullName;
DesignerPhone = designerPhone;
TypeOfCoefficient = typeOfCoefficient;
}
}

View File

@@ -1,42 +0,0 @@
using _0_Framework.Domain;
using CompanyManagment.App.Contracts.ClassificationScheme;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Company.Domain.ClassificationSchemeAgg;
public interface IClassificationEmployeeRepository : IRepository<long, ClassificationEmployee>
{
/// <summary>
/// دریافت لیست پرسنل کارگاه
/// تب افزودن پرسنل
/// </summary>
/// <param name="schemeId"></param>
/// <returns></returns>
Task<List<EmployeeInfoList>> GetEmployeeListData(long schemeId);
/// <summary>
/// دریافت اطلاعات عضویتی پرسنل در گروه
/// </summary>
/// <param name="employeeId"></param>
/// <returns></returns>
Task<List<EditEmployeeGroupList>> GetEmployeeMemberizeData(long employeeId);
/// <summary>
/// ذخیره انتقال پرسنل به گره های دیگر
///بصورت گروهی
/// </summary>
/// <param name="command"></param>
/// <returns></returns>
Task CreateTransferRange(List<ClassificationEmployee> command);
/// <summary>
/// حذف پرسنل از گروه از سمت ویرایش
/// </summary>
/// <param name="command"></param>
/// <returns></returns>
Task RemoveRangeByEdit(List<ClassificationEmployee> command);
}

View File

@@ -1,89 +0,0 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using _0_Framework.Domain;
using CompanyManagment.App.Contracts.ClassificationScheme;
namespace Company.Domain.ClassificationSchemeAgg;
public interface IClassificationGroupRepository : IRepository<long, ClassificationGroup>
{
/// <summary>
/// دریافت گروه های طرح
/// </summary>
/// <param name="schemeId"></param>
/// <returns></returns>
Task<List<ClassificationGroupList>> GetGroups(long schemeId);
/// <summary>
/// دریافت گروه ها و مشاغلشان برای تب تعیین مشاغل
/// </summary>
/// <param name="schemeId"></param>
/// <returns></returns>
Task<List<ClassificationGroupAndJobModel>> GetGroupAndJobs(long schemeId);
/// <summary>
/// دریافت لیست گروه ها
/// </summary>
/// <param name="schemeId"></param>
/// <returns></returns>
Task<List<GetGroupAndJobSchemeListDto>> GetGroupList(long schemeId);
/// <summary>
/// دریافت لیست مشاغل برای مودال ایجاد و ویرایش
/// </summary>
/// <param name="groupId"></param>
/// <returns></returns>
Task<AddOrEditJobInGroupDto> GetCreateOrEditJobsData(long groupId);
/// <summary>
/// چک میکند که آی پرسنلی وجود دارد که این شغل به او نسبت داده شده
/// </summary>
/// <param name="jobId"></param>
/// <param name="groupId"></param>
/// <returns></returns>
Task<bool> CheckIfEmployeeHasThisJob(long jobId, long groupId);
/// <summary>
/// ذخیر ایجاد یا ویرایش مشاغل در گروه
/// </summary>
/// <param name="command"></param>
/// <returns></returns>
Task<bool> SaveJobsToGroup(AddOrEditJobInGroupDto command);
/// <summary>
/// دریافت مشاغل گروه توسط آی دی گروه
/// </summary>
/// <param name="groupId"></param>
/// <returns></returns>
Task<List<EditClassificationGroupJob>> GetGroupJobs(long groupId);
/// <summary>
/// چک میکند که آی پرسنلی وجود دارد که این شغل به او نسبت داده شده
/// </summary>
/// <param name="id"></param>
/// <param name="groupId"></param>
/// <returns></returns>
Task<bool> CheckEmployeeHasThisJob(long id, long groupId);
/// <summary>
/// ایجاد مشاغل
/// </summary>
/// <param name="createClassificationGroupJob"></param>
/// <param name="deleteJobList"></param>
/// <returns></returns>
Task<bool> CreateJobs(List<ClassificationGroupJob> createClassificationGroupJob, List<long> deleteJobList);
/// <summary>
/// در یافت اطلاعات گروه برای لود مودال ایجاد دستمزد های
/// </summary>
/// <returns></returns>
Task<SalaryAndRialCoefficientModel> GetGroupToCreateSalariesModal(long schemeId);
/// <summary>
/// ایجاد گروه های بیست گانه
/// </summary>
/// <param name="groupList"></param>
/// <returns></returns>
Task CreateGroups(List<ClassificationGroup> groupList);
}

View File

@@ -1,45 +0,0 @@
using _0_Framework.Domain;
using CompanyManagment.App.Contracts.ClassificationScheme;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Company.Domain.ClassificationSchemeAgg;
public interface IClassificationGroupSalariesRepository : IRepository<long, ClassificationGroupSalary>
{
/// <summary>
/// ایجاد دستمزدهای گروه ها
/// </summary>
/// <param name="createClassificationGroupSalary"></param>
/// <returns></returns>
Task CreateSalaries(List<ClassificationGroupSalary> createClassificationGroupSalary);
/// <summary>
/// دریافت دستمزدها و ضریب ریالی برای مودال ویرایش
/// </summary>
/// <param name="schemeId"></param>
/// <param name="startDate"></param>
/// <param name="endDate"></param>
/// <returns></returns>
Task<SalaryAndRialCoefficientModel> GetEditSalariesData(long schemeId, string startDate, string endDate);
/// <summary>
/// لیست دستمزدها بر اساس تاریخ و سال برای تب دستمزدها
/// </summary>
/// <param name="schemeId"></param>
/// <returns></returns>
Task<SalaryAndRialCoefficientTab> GetSalariesTabData(long schemeId);
#region ForApi
/// <summary>
/// لیست دستمزدها بر اساس تاریخ و سال برای تب دستمزدها
/// </summary>
/// <param name="schemeId"></param>
/// <returns></returns>
Task<List<SalaryAndRialCoefficientTabDataList>> GetSalaryList(long schemeId);
#endregion
}

View File

@@ -1,8 +0,0 @@
using _0_Framework.Domain;
namespace Company.Domain.ClassificationSchemeAgg;
public interface IClassificationRialCoefficientRepository : IRepository<long, ClassificationRialCoefficient>
{
}

View File

@@ -1,56 +0,0 @@
using _0_Framework.Application;
using _0_Framework.Domain;
using CompanyManagment.App.Contracts.ClassificationScheme;
using CompanyManagment.App.Contracts.YearlySalary;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Company.Domain.ClassificationSchemeAgg;
public interface IClassificationSchemeRepository : IRepository<long, ClassificationScheme>
{
/// <summary>
/// پارشیال صفحه ایجاد طرح
/// </summary>
/// <param name="worskhopId"></param>
/// <returns></returns>
Task<ClassificationSchemeListDto> GetClassificationSchemeList(long workshopId);
/// <summary>
/// دریافت اطلاعات طرح برای ویرایش
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task<EditClassificationSchemeDto> GetClassificationScheme(long id);
/// <summary>
/// دریافت اطلاعات طر برای محاسبات
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task<EditClassificationScheme> GetClassificationSchemeToCompute(long id);
/// <summary>
/// متد محاسبه پایه سنوات برا افراد تک گروه
/// </summary>
/// <param name="schemeStart">تاریخ شروع طرح</param>
/// <param name="schemeEnd">تاریخ پاین طرح، اجباری نیست</param>
/// <param name="contractStart">تاریخ شروع قراداد</param>
/// <param name="contractEnd">تاریخ پایان قراداد</param>
/// <param name="groupNo">شماره گروه</param>
/// <param name="employeeId">آی دی پرسنل</param>
/// <param name="workshopId">آی دی کارگاه</param>
/// <returns></returns>
Task<BaseYearDataViewModel> BaseYearComputeOneGroup(DateTime schemeStart, DateTime? schemeEnd,
DateTime contractStart, DateTime contractEnd, string groupNo, long employeeId, long workshopId);
/// <summary>
/// حذف طرح
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task DeleteClassificationScheme(long id);
}

View File

@@ -54,7 +54,6 @@ public interface IEmployeeRepository : IRepository<long, Employee>
Employee GetIgnoreQueryFilter(long id);
[Obsolete("این متد منسوخ شده است و از متد WorkedEmployeesInWorkshopSelectList استفاده کنید")]
Task<List<EmployeeSelectListViewModel>> WorkedEmployeesInWorkshopSelectList(long workshopId);
@@ -78,39 +77,7 @@ public interface IEmployeeRepository : IRepository<long, Employee>
Task<List<EmployeeSelectListViewModel>> GetSelectList(string searchText,long id);
Task<List<GetEmployeeListViewModel>> GetList(GetEmployeeListSearchModel searchModel);
Task<List<GetClientEmployeeListViewModel>> GetClientEmployeeList(GetClientEmployeeListSearchModel searchModel, long workshopId);
/// <summary>
/// دریافت لیست پرسنل کلاینت
/// api
/// </summary>
/// <param name="searchModel"></param>
/// <param name="workshopId"></param>
/// <returns></returns>
Task<List<EmployeeListDto>> ListOfAllEmployeesClient(EmployeeSearchModelDto searchModel, long workshopId);
/// <summary>
/// پرینت تجمیعی پرسنل کلاینت
/// api
/// </summary>
/// <param name="workshopId"></param>
/// <returns></returns>
Task<List<PrintAllEmployeesInfoDtoClient>> PrintAllEmployeesInfoClient(long workshopId);
/// <summary>
/// پرینت گروهی تفکیکی پرسنل
/// </summary>
/// <param name="workshopId"></param>
/// <returns></returns>
Task<List<PrintAllDetailsPersonnelInfoDtoClient>> PrintAllDetailsPersonnelInfoClient(long workshopId);
/// <summary>
/// سلکت لیست پرسنل های کارگاه کلاینت
/// </summary>
/// <param name="workshopId"></param>
/// <returns></returns>
Task<List<EmployeeSelectListViewModel>> GetWorkingEmployeesSelectList(long workshopId);
#endregion
#endregion
}

View File

@@ -1,11 +1,7 @@
using System;
using _0_Framework.Domain;
using CompanyManagment.App.Contracts.EmployeeBankInformation;
using System.Collections.Generic;
using System.Security.AccessControl;
using System.Threading.Tasks;
using CompanyManagment.App.Contracts.Workshop;
namespace Company.Domain.EmployeeBankInformationAgg
{
@@ -15,31 +11,14 @@ namespace Company.Domain.EmployeeBankInformationAgg
void Remove(EmployeeBankInformation bankInformation);
void RemoveRange(List<EmployeeBankInformation> entities);
[Obsolete("از متد async استفاده کنید")]
List<GroupedEmployeeBankInformationViewModel> Search(long workshopId, EmployeeBankInformationSearchModel searchParams);
Task<List<GroupedEmployeeBankInformationViewModel>> SearchAsync(long workshopId,
EmployeeBankInformationSearchModel searchParams);
GroupedEmployeeBankInformationViewModel GetByEmployeeId(long workshopId, long employeeId);
List<EmployeeBankInformation> GetRangeByEmployeeId(long workshopId, long employeeId);
EmployeeBankInformationViewModel GetDetails(long id);
List<GroupedEmployeeBankInformationViewModel> GetAllByWorkshopId(long workshopId);
List<EmployeeBankInformationViewModelForExcel> SearchForExcel(long workshopId,
EmployeeBankInformationSearchModel searchParams);
/// <summary>
/// جزئیات اطلاعات بانکی بر اساس پرسنل
/// </summary>
/// <param name="workshopId"></param>
/// <param name="employeeId"></param>
/// <returns></returns>
Task<GetEmployeeBankInfoDetailsDto> GetDetailsByEmployeeIdAsync(long workshopId, long employeeId);
List<EmployeeBankInformationViewModelForExcel> SearchForExcel(long workshopId, EmployeeBankInformationSearchModel searchParams);
}
}

View File

@@ -7,6 +7,7 @@ using _0_Framework.Application.Enums;
using _0_Framework.Domain;
using CompanyManagment.App.Contracts.InstitutionContract;
using CompanyManagment.App.Contracts.Workshop;
using Microsoft.AspNetCore.Mvc;
namespace Company.Domain.InstitutionContractAgg;
@@ -88,9 +89,6 @@ public interface IInstitutionContractRepository : IRepository<long, InstitutionC
Task<List<InstitutionContractSelectListViewModel>> GetInstitutionContractSelectList(string search, string selected);
Task<List<InstitutionContractPrintViewModel>> PrintAllAsync(List<long> ids);
Task<GetInstitutionContractWorkshopsDetails> GetContractWorkshopsDetails(long id);
Task AmendmentComplete(InstitutionContractAmendmentCompleteRequest request);
Task<GetInstitutionAmendmentVerificationDetailsViewModel> GetAmendmentVerificationDetails(Guid id, long amendmentId);

View File

@@ -275,11 +275,6 @@ public class InstitutionContract : EntityBase
{
SigningType = signingType;
}
public void AddAmendment(InstitutionContractAmendment amendment)
{
Amendments.Add(amendment);
}
}
public class InstitutionContractAmendment : EntityBase
@@ -287,15 +282,14 @@ public class InstitutionContractAmendment : EntityBase
private InstitutionContractAmendment(){}
public InstitutionContractAmendment(long institutionContractId,
List<InstitutionContractInstallment> installments, double amount, bool hasInstallment,
List<InstitutionContractAmendmentChange> amendmentChanges, long lawId)
InstitutionContractAmendmentChange amendmentChange, long lawId)
{
InstitutionContractId = institutionContractId;
Installments = installments is { Count: > 0} ? installments : [];
Amount = amount;
HasInstallment = hasInstallment;
AmendmentChanges = amendmentChanges;
AmendmentChanges = [amendmentChange];
LawId = lawId;
VerificationStatus = InstitutionContractVerificationStatus.PendingForVerify;
}
public long InstitutionContractId { get; set; }
@@ -309,15 +303,6 @@ public class InstitutionContractAmendment : EntityBase
public long LawId { get; set; }
public string VerifierPhoneNumber { get; private set; }
public string VerifierFullName { get; private set; }
public InstitutionContractVerificationStatus VerificationStatus { get; set; }
public DateTime VerifyCodeCreation { get; set; }
public void SetVerifyCode(string code,string verifierFullName, string verifierPhoneNumber)
{
VerifyCode = code;
@@ -325,22 +310,25 @@ public class InstitutionContractAmendment : EntityBase
VerifierFullName = verifierFullName;
VerifierPhoneNumber = verifierPhoneNumber;
}
public void Verified()
{
VerificationStatus = InstitutionContractVerificationStatus.Verified;
}
public string VerifierPhoneNumber { get; private set; }
public string VerifierFullName { get; private set; }
public DateTime VerifyCodeCreation { get; set; }
}
public class InstitutionContractAmendmentChange : EntityBase
{
private InstitutionContractAmendmentChange() { }
private InstitutionContractAmendmentChange(InstitutionContractAmendmentChangeType changeType,
DateTime changeDateGr, bool? hasCustomizeCheckoutPlan, bool? hasContractPlan,
private InstitutionContractAmendmentChange(long institutionContractAmendmentId,
InstitutionContractAmendment institutionContractAmendment, InstitutionContractAmendmentChangeType changeType,
DateTime changeDateGr, bool? hasRollCallPlan, bool? hasCustomizeCheckoutPlan, bool? hasContractPlan,
bool? hasContractPlanInPerson, bool? hasInsurancePlan, bool? hasInsurancePlanInPerson, int? personnelCount,
bool? hasRollCallPlan, bool? hasRollCallInPerson,
long? currentWorkshopId, int personnelCountDifference)
long? workshopDetailsId)
{
InstitutionContractAmendmentId = institutionContractAmendmentId;
InstitutionContractAmendment = institutionContractAmendment;
ChangeType = changeType;
ChangeDateGr = changeDateGr;
HasRollCallPlan = hasRollCallPlan;
@@ -350,80 +338,9 @@ public class InstitutionContractAmendmentChange : EntityBase
HasInsurancePlan = hasInsurancePlan;
HasInsurancePlanInPerson = hasInsurancePlanInPerson;
PersonnelCount = personnelCount;
PersonnelCountDifference = personnelCountDifference;
CurrentWorkshopId = currentWorkshopId;
HasRollCallInPerson = hasRollCallInPerson;
WorkshopDetailsId = workshopDetailsId;
}
/// <summary>
/// تغییر تعداد پرسنل
/// </summary>
public static InstitutionContractAmendmentChange CreatePersonCountChange(
DateTime changeDateGr, int personnelCount, int personnelCountDifference,
long currentWorkshopId)
{
return new InstitutionContractAmendmentChange(
changeType: InstitutionContractAmendmentChangeType.PersonCount,
changeDateGr: changeDateGr,
hasCustomizeCheckoutPlan: null,
hasContractPlan: null,
hasContractPlanInPerson: null,
hasInsurancePlan: null,
hasInsurancePlanInPerson: null,
personnelCount: personnelCount,
hasRollCallPlan: null,
hasRollCallInPerson: null,
currentWorkshopId: currentWorkshopId,
personnelCountDifference: personnelCountDifference);
}
/// <summary>
/// تغییر خدمات
/// </summary>
public static InstitutionContractAmendmentChange CreateServicesChange(
DateTime changeDateGr, long currentWorkshopId, bool hasRollCallPlan, bool hasRollCallInPerson,
bool hasCustomizeCheckoutPlan, bool hasContractPlan, bool hasContractPlanInPerson,
bool hasInsurancePlan, bool hasInsurancePlanInPerson)
{
return new InstitutionContractAmendmentChange(
changeType: InstitutionContractAmendmentChangeType.Services,
changeDateGr: changeDateGr,
hasCustomizeCheckoutPlan: hasCustomizeCheckoutPlan,
hasContractPlan: hasContractPlan,
hasContractPlanInPerson: hasContractPlanInPerson,
hasInsurancePlan: hasInsurancePlan,
hasInsurancePlanInPerson: hasInsurancePlanInPerson,
personnelCount: null,
hasRollCallPlan: hasRollCallPlan,
hasRollCallInPerson: hasRollCallInPerson,
currentWorkshopId: currentWorkshopId,
personnelCountDifference: 0);
}
/// <summary>
/// ایجاد کارگاه جدید
/// </summary>
public static InstitutionContractAmendmentChange CreateWorkshopCreatedChange(
DateTime changeDateGr, bool hasRollCallPlan, bool hasRollCallInPerson,
bool hasCustomizeCheckoutPlan, bool hasContractPlan, bool hasContractPlanInPerson,
bool hasInsurancePlan, bool hasInsurancePlanInPerson,int personnelCount)
{
return new InstitutionContractAmendmentChange(
changeType: InstitutionContractAmendmentChangeType.WorkshopCreated,
changeDateGr: changeDateGr,
hasCustomizeCheckoutPlan: hasCustomizeCheckoutPlan,
hasContractPlan: hasContractPlan,
hasContractPlanInPerson: hasContractPlanInPerson,
hasInsurancePlan: hasInsurancePlan,
hasInsurancePlanInPerson: hasInsurancePlanInPerson,
personnelCount: personnelCount,
hasRollCallPlan: hasRollCallPlan,
hasRollCallInPerson: hasRollCallInPerson,
currentWorkshopId: null,
personnelCountDifference: 0);
}
public long InstitutionContractAmendmentId { get; private set; }
public InstitutionContractAmendment InstitutionContractAmendment { get; private set; }
public InstitutionContractAmendmentChangeType ChangeType { get; private set; }
@@ -434,8 +351,6 @@ public class InstitutionContractAmendmentChange : EntityBase
/// </summary>
public bool? HasRollCallPlan { get; private set; }
public bool? HasRollCallInPerson { get; set; }
/// <summary>
/// پلن فیش غیر رسمی
/// </summary>
@@ -465,17 +380,11 @@ public class InstitutionContractAmendmentChange : EntityBase
/// تعداد پرسنل
/// </summary>
public int? PersonnelCount { get; private set; }
/// <summary>
/// مقدار تغییرات تعداد پرسنل
/// </summary>
public int PersonnelCountDifference { get; set; }
/// <summary>
/// تعداد کارگاه
/// </summary>
public long? CurrentWorkshopId { get; private set; }
public long? WorkshopDetailsId { get; private set; }
}
public enum InstitutionContractAmendmentChangeType

View File

@@ -9,7 +9,7 @@ public class InstitutionContractWorkshopBase:EntityBase
protected InstitutionContractWorkshopBase(){}
public InstitutionContractWorkshopBase(string workshopName, bool hasRollCallPlan,bool hasRollCallPlanInPerson,
bool hasCustomizeCheckoutPlan, bool hasContractPlan,bool hasContractPlanInPerson,bool hasInsurancePlan,bool hasInsurancePlanInPerson,
int personnelCount, double price,bool isAmendment )
int personnelCount, double price )
{
WorkshopName = workshopName;
Services = new WorkshopServices(hasInsurancePlan, hasInsurancePlanInPerson,
@@ -17,10 +17,7 @@ public class InstitutionContractWorkshopBase:EntityBase
PersonnelCount = personnelCount;
Price = price;
Employers = [];
IsAmendment = isAmendment;
}
/// <summary>
/// شناسه کارگاه
/// </summary>
@@ -45,11 +42,7 @@ public class InstitutionContractWorkshopBase:EntityBase
public double Price { get; private set; }
/// <summary>
/// جهت نمایش دادن اینکه آیا این کارگاه مربوط به ارتقا قرارداد است یا خیر
/// </summary>
public bool IsAmendment { get; set; }
public List<InstitutionContractWorkshopDetailEmployer> Employers { get; private set; } = new();

View File

@@ -11,9 +11,9 @@ public class InstitutionContractWorkshopCurrent:InstitutionContractWorkshopBase
bool hasRollCallPlanInPerson, bool hasCustomizeCheckoutPlan, bool hasContractPlan,
bool hasContractPlanInPerson, bool hasInsurancePlan, bool hasInsurancePlanInPerson,
int personnelCount, double price,long institutionContractWorkshopGroupId,
InstitutionContractWorkshopGroup workshopGroup,long workshopId,bool isAmendment, long initialWorkshopId) : base(workshopName, hasRollCallPlan,
InstitutionContractWorkshopGroup workshopGroup,long workshopId,long initialWorkshopId) : base(workshopName, hasRollCallPlan,
hasRollCallPlanInPerson, hasCustomizeCheckoutPlan, hasContractPlan,
hasContractPlanInPerson, hasInsurancePlan, hasInsurancePlanInPerson, personnelCount, price,isAmendment)
hasContractPlanInPerson, hasInsurancePlan, hasInsurancePlanInPerson, personnelCount, price)
{
InstitutionContractWorkshopGroupId = institutionContractWorkshopGroupId;
WorkshopGroup = workshopGroup;

View File

@@ -33,13 +33,6 @@ public class InstitutionContractWorkshopGroup : EntityBase
InitialWorkshops = initialWorkshops.ToList();
LastModifiedDate = DateTime.Now;
}
public void AddAmendmentWorkshops(List<InstitutionContractWorkshopInitial> amendmentDetails)
{
InitialWorkshops.AddRange(amendmentDetails);
LastModifiedDate = DateTime.Now;
}
public void UpdateCurrentWorkshops(List<InstitutionContractWorkshopCurrent> updatedDetails)
{

View File

@@ -11,9 +11,9 @@ public class InstitutionContractWorkshopInitial:InstitutionContractWorkshopBase
public InstitutionContractWorkshopInitial(string workshopName, bool hasRollCallPlan,
bool hasRollCallPlanInPerson, bool hasCustomizeCheckoutPlan, bool hasContractPlan,
bool hasContractPlanInPerson, bool hasInsurancePlan, bool hasInsurancePlanInPerson,
int personnelCount, double price,bool isAmendment =false) : base(workshopName, hasRollCallPlan,
int personnelCount, double price) : base(workshopName, hasRollCallPlan,
hasRollCallPlanInPerson, hasCustomizeCheckoutPlan, hasContractPlan, hasContractPlanInPerson,
hasInsurancePlan, hasInsurancePlanInPerson, personnelCount, price,isAmendment)
hasInsurancePlan, hasInsurancePlanInPerson, personnelCount, price)
{
WorkshopCreated = false;
}
@@ -31,8 +31,7 @@ public class InstitutionContractWorkshopInitial:InstitutionContractWorkshopBase
WorkshopCreated = true;
WorkshopCurrent = new InstitutionContractWorkshopCurrent(WorkshopName,Services.RollCall,Services.RollCallInPerson,
Services.CustomizeCheckout,Services.Contract,Services.ContractInPerson,Services.Insurance,
Services.InsuranceInPerson,PersonnelCount,Price,InstitutionContractWorkshopGroupId,WorkshopGroup,workshopId,
IsAmendment, id);
Services.InsuranceInPerson,PersonnelCount,Price,InstitutionContractWorkshopGroupId,WorkshopGroup,workshopId,id);
WorkshopCurrent.SetEmployers(Employers.Select(x=>x.EmployerId).ToList());
}

View File

@@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using CompanyManagment.App.Contracts.InstitutionContract;
using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes;
@@ -17,7 +16,7 @@ public class InstitutionContractAmendmentTemp
NewWorkshops = prevWorkshops.Select(x=> new InstitutionContractAmendmentTempNewWorkshop(
x.WorkshopName, x.CountPerson, x.ContractAndCheckout, x.ContractAndCheckoutInPerson, x.Insurance,
x.InsuranceInPerson, x.RollCall, x.RollCallInPerson, x.CustomizeCheckout, x.Price, x.WorkshopId,
x.CurrentWorkshopId, 0,x.Id)).ToList();
x.CurrentWorkshopId, 0)).ToList();
InstitutionContractId = institutionContractId;
}
@@ -26,32 +25,17 @@ public class InstitutionContractAmendmentTemp
public Guid Id { get; private set; }
public List<InstitutionContractAmendmentTempPrevWorkshop> PrevWorkshops { get; private set; }
public List<InstitutionContractAmendmentTempNewWorkshop> NewWorkshops { get; private set; }
public InstitutionContractPaymentMonthlyViewModel MonthlyPayment { get; set; }
public InstitutionContractPaymentOneTimeViewModel OneTimePayment { get; set; }
public long InstitutionContractId { get; private set; }
public int MonthDifference { get; set; }
public void AddPaymentDetails(InstitutionContractPaymentMonthlyViewModel resMonthly, InstitutionContractPaymentOneTimeViewModel resOneTime, int monthDiff)
{
MonthlyPayment = resMonthly;
OneTimePayment = resOneTime;
MonthDifference = monthDiff;
}
}
public class InstitutionContractAmendmentTempNewWorkshop : InstitutionContractAmendmentTempPrevWorkshop
{
public InstitutionContractAmendmentTempNewWorkshop(string workshopName, int countPerson, bool contractAndCheckout,
bool contractAndCheckoutInPerson, bool insurance, bool insuranceInPerson, bool rollCall, bool rollCallInPerson,
bool customizeCheckout, double price, long workshopId, long currentWorkshopId,double priceDifference,Guid prevId) : base(
bool customizeCheckout, double price, long workshopId, long currentWorkshopId,double priceDifference) : base(
workshopName, countPerson, contractAndCheckout, contractAndCheckoutInPerson, insurance, insuranceInPerson,
rollCall, rollCallInPerson, customizeCheckout, price, workshopId, currentWorkshopId)
{
Id = prevId;
PriceDifference = priceDifference;
}

View File

@@ -11,13 +11,6 @@ public interface IJobRepository : IRepository<long, Job>
EditJob GetDetails(long id);
List<JobViewModel> Search(JobSearchModel searchModel);
List<JobViewModel> SearchJobForMain(JobSearchModel searchModel);
/// <summary>
/// جستجوس مشاغل
/// </summary>
/// <param name="searchtText"></param>
/// <returns></returns>
Task<List<JobListDto>> JobSearchSelect(string searchtText);
// Task<List<JobViewModel>> GetJobListByText(string searchtText);
List<JobViewModel> GetJobListByText(string searchtText);
List<JobViewModel> GetJobListByWorkshopId(long workshopId);

View File

@@ -16,7 +16,7 @@ namespace Company.Domain.RollCallAgg;
public interface IRollCallMandatoryRepository : IRepository<long, RollCall>
{
Task<ComputingViewModel> MandatoryCompute(long employeeId, long workshopId, DateTime contractStart, DateTime contractEnd, CreateWorkingHoursTemp command, bool holidayWorking, bool isStaticCheckout, bool rotatingShiftCompute, double dailyWageUnAffected, bool totalLeaveCompute);
ComputingViewModel MandatoryCompute(long employeeId, long workshopId, DateTime contractStart, DateTime contractEnd, CreateWorkingHoursTemp command, bool holidayWorking, bool isStaticCheckout, bool rotatingShiftCompute, double dailyWageUnAffected, bool totalLeaveCompute);
/// <summary>
/// محاسبه ساعات کارکرد پرسنل در صورت داشتن حضور غیاب

View File

@@ -26,7 +26,7 @@ namespace Company.Domain.RollCallAgg
DateTime endSearch);
void RemoveEmployeeRollCallsInDate(long workshopId, long employeeId, DateTime date);
RollCallsByDateViewModel GetWorkshopRollCallHistory(RollCallSearchModel searchModel);
CurrentDayRollCall GetWorkshopCurrentDayRollCalls(long workshopId,WorkshopCurrentDayRollCallSearchModel searchModel);
CurrentDayRollCall GetWorkshopCurrentDayRollCalls(long workshopId);
List<PersonnelCheckoutDailyRollCallViewModel> GetEmployeeRollCallsForMonth(IEnumerable<long> employeeIds,
long workshopId, DateTime start, DateTime end);

View File

@@ -1,6 +1,5 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using _0_Framework.Domain;
using CompanyManagment.App.Contracts.RollCallEmployee;
@@ -8,7 +7,7 @@ namespace Company.Domain.RollCallEmployeeAgg;
public interface IRollCallEmployeeRepository : IRepository<long, RollCallEmployee>
{
Task<bool> HasRollCallRecord(long employeeId, long workshopId, DateTime contractStart, DateTime contractEnd);
bool HasRollCallRecord(long employeeId, long workshopId, DateTime contractStart, DateTime contractEnd);
List<RollCallEmployeeViewModel> GetByWorkshopId(long workshopId);
EditRollCallEmployee GetDetails(long id);
RollCallEmployeeViewModel GetByEmployeeIdAndWorkshopId(long employeeId, long workshopId);

View File

@@ -15,11 +15,12 @@ public interface ISalaryAidRepository:IRepository<long,SalaryAid>
void RemoveRange(IEnumerable<SalaryAid> salaryAids);
#region Pooya
/// <summary>
/// گروهبندی بر اساس ماه هنگام جستجو با انتخاب کارمند
/// </summary>
SalaryAidsGroupedViewModel GetSearchListAsGrouped(SalaryAidSearchViewModel searchModel);
SalaryAidsGroupedViewModel GetSearchListAsGrouped(SalaryAidSearchViewModel searchModel);
#endregion
}

View File

@@ -106,14 +106,4 @@ public interface IWorkshopRepository : IRepository<long, Workshop>
#endregion
#region ForApi
/// <summary>
/// دریافت لیست کارگاه های ادمین برای سلکت تو
/// Api
/// </summary>
/// <returns></returns>
Task<List<AdminWorkshopSelectListDto>> GetAdminWorkshopSelectList();
#endregion
}

View File

@@ -185,17 +185,8 @@ public class Workshop : EntityBase
public bool AddLeavePay { get; private set; }
public string ZoneName { get; private set; }
public bool TotalPaymentHide { get; private set; }
/// <summary>
/// آیا طبقه بندی شده است
/// [کارگاه دارای طرح طبقه بندی می باشد ؟]
/// </summary>
public bool IsClassified { get; private set; }
/// <summary>
/// آیا طرح طبقه بندی تکمیل شده است
/// </summary>
public bool IsClassificationSchemeCompleted { get; private set; }
//نحوه محاسبه مزد مرخصی
public string ComputeOptions { get; private set; }

View File

@@ -10,12 +10,5 @@ namespace CompanyManagment.App.Contracts.Bank
OperationResult Create(CreateBank command);
OperationResult Edit(EditBank command);
List<BankViewModel> Search(string name);
List<BankSelectList> GetBanksForSelectList();
}
public class BankSelectList:SelectListViewModel
{
}
}

View File

@@ -1,92 +0,0 @@
using System.Collections.Generic;
namespace CompanyManagment.App.Contracts.Checkout.Dto;
public class CheckoutDto
{
/// <summary>
/// آی دی فیش
/// </summary>
public long Id { get; set; }
/// <summary>
/// نام پرسنل
/// </summary>
public string EmployeeFullName { get; set; }
/// <summary>
/// نام کارگاه
/// </summary>
public string WorkshopName { get; set; }
/// <summary>
/// شماره قراداد
/// </summary>
public string ContractNo { get; set; }
/// <summary>
/// تاریخ شروع فیش
/// </summary>
public string ContractStart { get; set; }
/// <summary>
/// تاریخ پایان فیش
/// </summary>
public string ContractEnd { get; set; }
/// <summary>
/// ماه
/// </summary>
public string Month { get; set; }
/// <summary>
/// سال
/// </summary>
public string Year { get; set; }
/// <summary>
/// روزهای کارکرد
/// </summary>
public string SumOfWorkingDays { get; set; }
/// <summary>
/// شماره کارگاه
/// </summary>
public string ArchiveCode { get; set; }
/// <summary>
/// کد پرسنلی
/// </summary>
public string PersonnelCode { get; set; }
/// <summary>
/// فعال/غیرفعال
/// </summary>
public bool IsActive { get; set; }
/// <summary>
/// امضاء فیش
/// </summary>
public bool Signature { get; set; }
/// <summary>
/// نام کارفرما
/// </summary>
public string EmployerName { get; set; }
public bool IsBlockCantracingParty { get; set; }
/// <summary>
/// آیا فیش نیاز به بروزرسانی دارد
/// </summary>
public bool IsUpdateNeeded { get; set; }
/// <summary>
/// لیست پیام های هشدار فیش حقوقی
/// </summary>
public List<CheckoutWarningMessageModel> CheckoutWarningMessageList { get; set; }
/// <summary>
/// نیاز به امزا دارد یا خیر
/// </summary>
public bool HasSignCheckoutOption { get; set; }
}

View File

@@ -1,247 +0,0 @@
using System;
using CompanyManagment.App.Contracts.Loan;
using CompanyManagment.App.Contracts.RollCall;
using CompanyManagment.App.Contracts.SalaryAid;
using System.Collections.Generic;
namespace CompanyManagment.App.Contracts.Checkout.Dto;
public class CheckoutPrintDto
{
// هدر فیش
// اطلاعات هویتی
// اطلاعات کارگاه
#region Header
public long Id { get; set; }
/// <summary>
/// نام پرسنل
/// </summary>
public string EmployeeFullName { get; set; }
/// <summary>
/// نام پدر
/// </summary>
public string FathersName { get; set; }
/// <summary>
/// کد ملی
/// </summary>
public string NationalCode { get; set; }
/// <summary>
/// تاریخ تولد
/// </summary>
public string DateOfBirth { get; set; }
/// <summary>
/// نام کارگاه
/// </summary>
public string WorkshopName { get; set; }
/// <summary>
/// شماره قراداد
/// </summary>
public string ContractNo { get; set; }
/// <summary>
/// ماه
/// </summary>
public string Month { get; set; }
/// <summary>
/// سال
/// </summary>
public string Year { get; set; }
/// <summary>
/// لیست کارفرما
/// </summary>
public List<CheckoutEmployersList> EmployersLists { get; set; }
/// <summary>
/// آیا کارقرما حقوقی است
/// </summary>
public bool EmployerIslegal { get; set; }
/// <summary>
/// آیا ترک کار کرده
/// </summary>
public bool HasLeft { get; set; }
/// <summary>
/// آخرین روز کاری
/// </summary>
public string LastDayOfWork { get; set; }
/// <summary>
/// روز ترک کار
/// </summary>
public string LeftWorkDate { get; set; }
#endregion
//جدول مطالبات و کسورات
#region PaymentAndDeductionTable
/// <summary>
/// مطالبات
/// </summary>
public List<PaymentAndDeductionList> PaymentList { get; set; }
/// <summary>
/// کسورات
/// </summary>
public List<PaymentAndDeductionList> DeductionList { get; set; }
/// <summary>
/// جمع مطالبات
/// </summary>
public string TotalPayment { get; set; }
/// <summary>
/// جمع کسورات
/// </summary>
public string TotalDeductions { get; set; }
/// <summary>
/// مبلغ قابل پرداخت
/// </summary>
public string TotalClaims { get; set; }
#endregion
//لیست ورود و خروج پرسنل
//اطلاعات ساعات کار و موظقی
#region RollCallData
/// <summary>
/// لیست حضورغیاب
/// </summary>
public List<CheckoutPrintRollCallDto> MonthlyRollCall { get; set; }
/// <summary>
/// دیتای جدول حضورغیاب
/// </summary>
public CheckoutRollCallViewModel CheckoutRollCall { get; set; }
#endregion
//اقساط - مساعده
#region SalaryAidAndInstallmentData
public List<CheckoutPrintInstallmentDto> Installments { get; set; }
public List<CheckoutPrintSalaryAidDto> SalaryAids { get; set; }
#endregion
}
/// <summary>
/// کسورات
/// </summary>
public class PaymentData
{
/// <summary>
/// حقوق و مزد
/// </summary>
public string MonthlySalary { get; set; }
/// <summary>
/// پایه سنوات
/// </summary>
public string BaseYearsPay { get; set; }
/// <summary>
/// کمک هزینه اقلام مصرفی
/// </summary>
public string ConsumableItems { get; set; }
/// <summary>
/// کمک هزینه مسکن
/// </summary>
public string HousingAllowance { get; set; }
/// <summary>
/// فوق العاده اضافه کاری
/// </summary>
public string OvertimePay { get; set; }
/// <summary>
/// فوق العاده شبکاری
/// </summary>
public string NightworkPay { get; set; }
/// <summary>
/// فوق العاده جمعه کاری
/// </summary>
public string FridayPay { get; set; }
/// <summary>
/// فوق العاده ماموریت
/// </summary>
public string MissionPay { get; set; }
/// <summary>
/// فوق العاده نوبت کاری
/// </summary>
public string ShiftPay { get; set; }
/// <summary>
/// کمک هزینه عائله مندی
/// </summary>
public string FamilyAllowance { get; set; }
/// <summary>
/// حق تاهل
/// </summary>
public string MarriedAllowance { get; set; }
}
/// <summary>
/// کسورات
/// </summary>
public class DeductionData
{
}
public class PaymentAndDeductionList
{
public int RowNumber { get; set; }
/// <summary>
/// عنوان
/// </summary>
public string Title { get; set; }
/// <summary>
/// مقدار/روز/ساعت
/// </summary>
public string Value { get; set; }
/// <summary>
/// مبلغ
/// </summary>
public string Amount { get; set; }
}
/// <summary>
/// لیست کارفرما
/// </summary>
public class CheckoutEmployersList
{
public string IsLegal { get; set; }
public string EmployerFullName { get; set; }
}
public class CheckoutGetData : CheckoutPrintDto
{
public DateTime ContractStart { get; set; }
public int PersonnelCode { get; set; }
public long WorkshopId { get; set; }
public long EmployeeId { get; set; }
}

View File

@@ -1,47 +0,0 @@
using _0_Framework.Application;
namespace CompanyManagment.App.Contracts.Checkout.Dto;
public class CheckoutSearchModelDto : PaginationRequest
{
/// <summary>
/// نام پرسنل
/// </summary>
public string EmployeeFullName { get; set; }
/// <summary>
/// آی دی کارگاه
/// </summary>
public long WorkshopId { get; set; }
/// <summary>
/// شماره قرارداد
/// </summary>
public string ContractNo { get; set; }
/// <summary>
/// تاریخ شروع فیش
/// </summary>
public string ContractStart { get; set; }
/// <summary>
/// تاریخ پاین فیش
/// </summary>
public string ContractEnd { get; set; }
/// <summary>
/// ماه
/// </summary>
public string Month { get; set; }
/// <summary>
/// سال
/// </summary>
public string Year { get; set; }
/// <summary>
/// آی دی گارفرما
/// </summary>
public long EmployerId { get; set; }
}

View File

@@ -1,53 +0,0 @@
namespace CompanyManagment.App.Contracts.Checkout.Dto;
public class ContractsListToCreateCheckoutDto
{
/// <summary>
/// آی دی قراداد
/// </summary>
public long Id { get; set; }
/// <summary>
/// کد پرسنلی
/// </summary>
public long PersonnelCode { get; set; }
/// <summary>
/// شماره قرارداد
/// </summary>
public string ContractNo { get; set; }
//نام کارگاه
public string WorkshopName { get; set; }
/// <summary>
/// نام پرسنل
/// </summary>
public string EmployeeName { get; set; }
/// <summary>
/// تاریخ شوع فیش
/// </summary>
public string ContractStart { get; set; }
/// <summary>
/// تاریخ پایان فیش
/// </summary>
public string ContractEnd { get; set; }
/// <summary>
/// تاریخ ترک کار
/// </summary>
public string LeftWorkDate { get; set; }
/// <summary>
/// وضعیت ایجاد فیش
/// </summary>
public CreateCheckoutStatus CreateCheckoutStatus { get; set; }
/// <summary>
/// توضیحات
/// </summary>
public string Description { get; set; }
}

View File

@@ -1,22 +0,0 @@
namespace CompanyManagment.App.Contracts.Checkout.Dto;
/// <summary>
/// وضعیت ایجاد فیش
/// </summary>
public enum CreateCheckoutStatus
{
/// <summary>
/// آماده ایجاد
/// </summary>
ReadyToCreate,
/// <summary>
/// غیر مجاز
/// </summary>
NotValid,
/// <summary>
/// دارای فیش حقوقی
/// </summary>
HasCheckout,
}

View File

@@ -1,14 +0,0 @@
namespace CompanyManagment.App.Contracts.Checkout.Dto;
public class EmployeeSelectListDto
{
/// <summary>
/// آی دی پرسنل
/// </summary>
public long Id { get; set; }
/// <summary>
/// نام پرسنل
/// </summary>
public string EmployeeFullName { get; set; }
}

View File

@@ -1,210 +0,0 @@
using System;
using CompanyManagment.App.Contracts.Contract;
using CompanyManagment.App.Contracts.EmployeeComputeOptions;
using CompanyManagment.App.Contracts.WorkingHoursTemp;
using System.Collections.Generic;
namespace CompanyManagment.App.Contracts.Checkout.Dto;
public class GetContractAndIncludesDataToCreateDto
{
/// <summary>
/// آی دی کارگاه
/// </summary>
public long WorkshopId { get; set; }
/// <summary>
/// نام کارگاه
/// </summary>
public string WorkshopName { get; set; }
/// <summary>
/// کد بایگانی کارگاه
/// </summary>
public string ArchiveCode { get; set; }
/// <summary>
/// آیا تنظیمات کارگاه بر رو ایجاد فیش استاتیک است
/// </summary>
public bool IsStaticCheckout { get; set; }
/// <summary>
/// آیا کارگاه در تعطیلات رسمی باز است
/// </summary>
public bool WorkshopHolidayWorking { get; set; }
/// <summary>
/// محاسبه نوبت کاری در فیش حقوقی
/// </summary>
public bool RotatingShiftCompute { get; set; }
/// <summary>
/// آیا پاداش در فیش حقوقی محاسبه شود
/// </summary>
public bool RewardComputeOnCheckout { get; set; }
/// <summary>
/// آیا اضافه کار فیش حقوقی در بیمه محاسبه شود
/// </summary>
public bool HasInsuranceCheckoutOverTime { get; set; }
/// <summary>
/// آی دی صنف بیمه کارگاه
/// </summary>
public long? InsuranceJobId { get; set; }
/// <summary>
/// آیا کارگاه مشاغل مقطوع است
/// </summary>
public bool FixedSalary { get; set; }
/// <summary>
/// جمعیت شهر کارگاه
/// </summary>
public string Population { get; set; }
/// <summary>
/// نوع ارسال لیست بیمه
/// </summary>
public string TypeOfInsuranceSend { get; set; }
/// <summary>
/// قرارداد قدیمی است؟
/// </summary>
public bool IsOldContract { get; set; }
public List<ContractIncludedData> ContractIncludedData { get; set; }
}
public class ContractIncludedData
{
/// <summary>
/// شماره قرارداد
/// </summary>
public string ContractNo { get; set; }
/// <summary>
/// آی دی پرسنل
/// </summary>
public long EmployeeId { get; set; }
/// <summary>
/// نام کامل پرسنل
/// </summary>
public string EmployeeFullName { get; set; }
/// <summary>
/// نام پدر
/// </summary>
public string FathersName { get; set; }
/// <summary>
/// کد ملی
/// </summary>
public string NationalCode { get; set; }
/// <summary>
/// تاریخ تولد
/// </summary>
public string DateOfBirth { get; set; }
/// <summary>
/// کد پرسنلس
/// </summary>
public string PersonnelCode { get; set; }
/// <summary>
/// وضعیت تاهل
/// </summary>
public string MaritalStatus { get; set; }
/// <summary>
/// ساعت کاری پرسنل
/// </summary>
public CreateWorkingHoursTemp WorkingHours { get; set; }
/// <summary>
/// اطلاعات جداسازی تاریخ فیش
/// </summary>
public ContractSeparationViewModel Separation { get; set; }
/// <summary>
/// تنظیمات فنی پرسنل
/// سنوات
/// </summary>
public string YearsOption { get; set; }
/// <summary>
/// تنظیمات فنی پرسنل
/// عیدی و پاداش
/// </summary>
public string BonusesOption { get; set; }
/// <summary>
/// تنظیمات فنی پرسنل
/// مزد مرخصی
/// </summary>
public string ComputeOption { get; set; }
/// <summary>
/// ترایخ شروع قراداد
/// شمسی
/// </summary>
public string ContractStart { get; set; }
/// <summary>
/// تاریخ پایان قرارداد
/// شمسی
/// </summary>
public string ContractEnd { get; set; }
/// <summary>
/// ترایخ شروع قراداد
/// میلادی
/// </summary>
public DateTime ContractStartGr { get; set; }
/// <summary>
/// تاریخ پایان قرارداد
/// میلادی
/// </summary>
public DateTime ContractEndGr { get; set; }
/// <summary>
/// آی دی قراداد
/// </summary>
public long ContractId { get; set; }
/// <summary>
/// مزد روزانه قرداد بدون تاثیر ساعات کار
/// </summary>
public double DailySalaryUnAffected { get; set; }
/// <summary>
/// نوع مزد روزانه
/// </summary>
public string DailyWageType { get; set; }
/// <summary>
/// اولین شروع بکار پرسنل
/// </summary>
public string FirstGetWorkingDay { get; set; }
}

View File

@@ -1,75 +0,0 @@
using System.Collections.Generic;
namespace CompanyManagment.App.Contracts.Checkout.Dto;
public class RotatingShiftOfCheckoutDto
{
/// <summary>
/// نام پرسنل
/// </summary>
public string FullName { get; set; }
/// <summary>
/// وضعیت نوبتکاری
/// </summary>
public string RotatingShiftStatus { get; set; }
/// <summary>
/// آیا نوبت کاری دارد
/// </summary>
public bool HasRotatingShift { get; set; }
/// <summary>
/// سال و ماه
/// </summary>
public string YearAndMonth { get; set; }
/// <summary>
/// نوع ساعت کاری
/// </summary>
public string TypeOfWorkingHours { get; set; }
/// <summary>
/// لیست نوبت کاری
/// </summary>
public List<RotatingShiftListDto> RotatingShiftList { get; set; }
}
public class RotatingShiftListDto
{
/// <summary>
/// بازه کاری صبح
/// </summary>
public string MorningShiftSpan { get; set; }
/// <summary>
/// بازه کاری عصر
/// </summary>
public string EveningShiftSpan { get; set; }
/// <summary>
/// بازه کاری شب
/// </summary>
public string NightShiftSpan { get; set; }
/// <summary>
/// آیا صبح کاری داشته
/// </summary>
public bool IsMorningShift { get; set; }
/// <summary>
/// آیا عصرکاری داشته
/// </summary>
public bool IsEveningShift { get; set; }
/// <summary>
/// آیا شبکاری داشته
/// </summary>
public bool IsNightShift { get; set; }
/// <summary>
/// تاریخ شیفت
/// </summary>
public string ShiftDate { get; set; }
}

View File

@@ -1,10 +1,9 @@
using _0_Framework.Application;
using CompanyManagment.App.Contracts.Checkout.Dto;
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using _0_Framework.Application;
namespace CompanyManagment.App.Contracts.Checkout;
@@ -63,108 +62,4 @@ public interface ICheckoutApplication
long workshopId, DateTime start, DateTime end);
#endregion
Task<PagedResult<CheckoutListClientDto>> GetListForClient(long workshopId,
CheckoutListClientSearchModel searchModel);
#region ForApi
/// <summary>
/// دریافت سلکت لیست پرسنل کارگاه
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task<List<EmployeeSelectListDto>> GetEmployeeSelectListByWorkshopId(long id);
/// <summary>
/// دریافت لیست فیش های حقوقی ادمین
/// </summary>
/// <param name="searchModel"></param>
/// <returns></returns>
Task<PagedResult<CheckoutDto>> GetList(CheckoutSearchModelDto searchModel);
/// <summary>
/// دریافت نوبتکاری
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task<RotatingShiftOfCheckoutDto> GetRotatingShiftApi(long id);
/// <summary>
/// پرینت فیش حقوقی
/// Api
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
Task<List<CheckoutPrintDto>> CheckoutPrint(List<long> ids);
/// <summary>
/// دریافت لیست قراردادها برای ایجاد فیش حقوقی
/// </summary>
/// <param name="workshopId"></param>
/// <param name="year"></param>
/// <param name="month"></param>
/// <param name="employeeId"></param>
/// <returns></returns>
Task<OperationResult<List<ContractsListToCreateCheckoutDto>>> GetContractToCreateCheckout(long workshopId,
string year, string month, long employeeId);
/// <summary>
/// ایجاد فیش حقوقی
/// </summary>
/// <param name="ids"></param>
/// <param name="year"></param>
/// <param name="month"></param>
/// <returns></returns>
Task<OperationResult> CreateCheckoutApi(List<long> ids, string year, string month, long workshopId);
#endregion
}
public class CheckoutPrintInstallmentDto
{
public string RemainingAmount { get; set; }
public string LoanAmount { get; set; }
public string Amount { get; set; }
}
public class CheckoutPrintSalaryAidDto
{
public string Amount { get; set; }
public string SalaryAidDateTimeFa { get; set; }
}
public class CheckoutListClientSearchModel:PaginationRequest
{
public long? EmployeeId { get; set; }
public string Year { get; set; }
public string Month { get; set; }
public string StartDate { get; set; }
public string EndDate { get; set; }
public CheckoutClientListOrderType? OrderType { get; set; }
}
public class CheckoutListClientDto
{
public long Id { get; set; }
public string Year { get; set; }
public string Month { get; set; }
public string EmployeeName { get; set; }
public string ContractNo { get; set; }
public string ContractStart { get; set; }
public string ContractEnd { get; set; }
public bool Signature { get; set; }
}
public enum CheckoutClientListOrderType
{
ByCheckoutCreationDate,
BySignedCheckout,
ByUnSignedCheckout,
ByPersonnelCode,
ByPersonnelCodeDescending,
ByCheckoutStartDate,
ByCheckoutStartDateDescending
}

View File

@@ -1,84 +0,0 @@
using System.Collections.Generic;
namespace CompanyManagment.App.Contracts.ClassificationScheme;
/// <summary>
/// مدل برای مدال افزودن پرسنل ب گروه
/// </summary>
public class AddEmployeeToGroup
{
/// <summary>
/// آی دی
/// </summary>
public long Id { get; set; }
/// <summary>
/// نام کامل پرسنل
/// </summary>
public string EmployeeFullName { get; set; }
/// <summary>
/// آی دی پرسنل
/// </summary>
public long EmployeeId { get; set; }
/// <summary>
/// آی دی طرح
/// </summary>
public long SchemeId { get; set; }
/// <summary>
/// آی دی گروه
/// </summary>
public long GroupId { get; set; }
/// <summary>
/// شماره گروه
/// </summary>
public string GoroupNo { get; set; }
/// <summary>
/// آی دی شغل
/// </summary>
public long JobId { get; set; }
/// <summary>
/// نام شغل
/// </summary>
public string JobName { get; set; }
/// <summary>
/// کد شغل
/// </summary>
public string JobCode { get; set; }
/// <summary>
/// لیست گروه ها
/// </summary>
public List<ClassificationGroupList> ClassificationGroupList{ get; set; }
}
/// <summary>
/// لیست گروه ها
/// </summary>
public class ClassificationGroupList
{
/// <summary>
/// آی دی گروه
/// </summary>
public long GroupId { get; set; }
/// <summary>
/// شماره گروه
/// استرینگ
/// </summary>
public string GroupNo { get; set; }
/// <summary>
/// شماره گروه
/// اینتیجر
/// </summary>
public int GroupNoInt { get; set; }
}

View File

@@ -1,36 +0,0 @@
using System.Collections.Generic;
namespace CompanyManagment.App.Contracts.ClassificationScheme;
public class AddOrEditJobInGroupDto
{
/// <summary>
/// آی دی گروه
/// </summary>
public long GroupId { get; set; }
/// <summary>
/// شماره گروه نوع عددی
/// </summary>
public int GroupNoInt { get; set; }
public List<AddJobListDto> AddJobListDto { get; set; }
}
/// <summary>
/// لیست مشغال افزوده شده به گروه
/// </summary>
public class AddJobListDto
{
/// <summary>
/// آی دی شغل در مشاغل اداره کار
/// </summary>
public long JobId { get; set; }
/// <summary>
/// نام شغل
/// </summary>
public string JobName { get; set; }
}

View File

@@ -1,32 +0,0 @@
namespace CompanyManagment.App.Contracts.ClassificationScheme;
public class CheckStatusToDeleteScheme
{
/// <summary>
/// وضعیت طرح برای حذف
/// </summary>
public DeleteSchemeStatus DeleteSchemeStatus { get; set; }
/// <summary>
/// پیام سیستم
/// </summary>
public string Message { get; set; }
}
public enum DeleteSchemeStatus
{
/// <summary>
/// مجاز
/// </summary>
Valid,
/// <summary>
/// مجاز باشرط تایید
/// </summary>
ConfirmationNeeded,
/// <summary>
/// غیر مجاز
/// </summary>
NotValid,
}

View File

@@ -1,104 +0,0 @@
using System.Collections.Generic;
namespace CompanyManagment.App.Contracts.ClassificationScheme;
/// <summary>
/// ایجاد گروه
/// </summary>
public class ClassificationGroupAndJobModel
{
/// <summary>
/// آی دی گروه
/// </summary>
public long GroupId { get; set; }
/// <summary>
/// شماره گروه
/// استرینگ
/// </summary>
public string GroupNo { get; set; }
/// <summary>
/// شماره گروه نوع عددی
/// </summary>
public int GroupNoInt { get; set; }
/// <summary>
/// آی دی کارگاه
/// </summary>
public long WorkshopId { get; set; }
/// <summary>
/// آی دی طرح
/// </summary>
public long ClassificationSchemeId { get; set; }
/// <summary>
/// لیست مشاغل
/// </summary>
public List<EditClassificationGroupJob> EditClassificationGroupJob { get; set; }
}
/// <summary>
/// ایجاد مشاغل گروه
/// </summary>
public class CreateClassificationGroupJob
{
/// <summary>
/// آی دی شغل
/// </summary>
public long JobId { get; set; }
/// <summary>
/// نام شغل
/// </summary>
public string JobName { get; set; }
/// <summary>
/// کد شغل
/// </summary>
public string JobCode { get; set; }
/// <summary>
/// آی دی گروه
/// </summary>
public long ClassificationGroupId { get; set; }
/// <summary>
/// شماره گروه
/// </summary>
public string GroupNo { get; set; }
}
/// <summary>
/// ویرایش مشاغل گروه
/// </summary>
public class EditClassificationGroupJob : CreateClassificationGroupJob
{
/// <summary>
/// ای دی شغل
/// </summary>
public long Id { get; set; }
}
/// <summary>
/// ایجاد یا ویرایش مشاغل
/// </summary>
public class CreateOrEditGroupJobs
{
/// <summary>
/// آی دی گروه
/// </summary>
public long GroupId { get; set; }
/// <summary>
/// شماره گروه
/// استرینگ
/// </summary>
public string GroupNo { get; set; }
/// <summary>
/// آی دی مشاغل
/// </summary>
public List<long> JobIdList { get; set; }
}

View File

@@ -1,24 +0,0 @@
using System.Collections.Generic;
namespace CompanyManagment.App.Contracts.ClassificationScheme;
/// <summary>
/// پارشیال صفحه ایجاد طرح
/// </summary>
public class ClassificationSchemeListDto
{
/// <summary>
/// آیا طرح دارد
/// </summary>
public bool HasScheme { get; set; }
/// <summary>
/// آی دی کارگاه
/// </summary>
public long WorkshopId { get; set; }
/// <summary>
/// لیست طرح
/// </summary>
public List<SchemeListDto> ClassificationSchemesList { get; set; }
}

View File

@@ -1,204 +0,0 @@
using _0_Framework.Application.Enums;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CompanyManagment.App.Contracts.ClassificationScheme;
/// <summary>
/// ایجاد دستمزد گروه و ضریب ریالی
/// </summary>
public class CreateClassificationGroupSalaryAndRialCoefficient
{
/// <summary>
/// آی دی گروه
/// </summary>
public long ClassificationGroupId { get; set; }
/// <summary>
/// شماره گروه
/// </summary>
public string GroupNo { get; set; }
/// <summary>
/// دستمزد گروه
/// </summary>
public double GroupSalary { get; set; }
/// <summary>
/// تاریخ شروع
/// </summary>
public DateTime StartDate { get; set; }
/// <summary>
/// تاریخ پایان
/// </summary>
public DateTime EndDate { get; set; }
/// <summary>
/// سال
/// </summary>
public int Year { get; set; }
}
/// <summary>
/// ویرایش دستمزد
/// </summary>
public class EditClassificationGroupSalaryAndRialCoefficient : CreateClassificationGroupSalaryAndRialCoefficient
{
/// <summary>
/// آی دی
/// </summary>
public long Id { get; set; }
/// <summary>
/// تاریخ شروع
/// شمسی
/// </summary>
[DataType(DataType.Text)]
public string StartDateFa { get; set; }
/// <summary>
/// تاریخ پایان
/// شمسی
/// </summary>
[DataType(DataType.Text)]
public string EndDateFa { get; set; }
/// <summary>
/// دستمزد گروه
/// </summary>
public string GroupSalaryStr { get; set; }
}
/// <summary>
/// لیست دستمزدها و ضرایب ریالی
/// </summary>
public class SalaryAndRialCoefficientModel
{
/// <summary>
/// تاریخ شروع
/// میلادی
/// </summary>
public DateTime StartDate { get; set; }
/// <summary>
/// تاریخ شروع
/// شمسی
/// </summary>
[DataType(DataType.Text)]
public string StartDateFa { get; set; }
/// <summary>
/// تاریخ پایان
/// میلادی
/// </summary>
public DateTime EndDate { get; set; }
/// <summary>
/// تاریخ پایان
/// شمسی
/// </summary>
[DataType(DataType.Text)]
public string EndDateFa { get; set; }
/// <summary>
/// سال
/// </summary>
public int Year { get; set; }
/// <summary>
/// ضریب ریالی
/// string
/// </summary>
public string RialCoefficientStr { get; set; }
/// <summary>
/// ضریب ریالی
/// double
/// </summary>
public double RialCoefficient { get; set; }
/// <summary>
/// آی دی طرح
/// </summary>
public long SchemeId { get; set; }
/// <summary>
/// نوع ضریب
/// </summary>
public TypeOfCoefficient TypeOfCoefficient { get; set; }
/// <summary>
/// آی دی ضریب ریالی
/// </summary>
public long CoefficientId { get; set; }
/// <summary>
/// لیست دستمزدها و ضرایب بر اساس سال
/// </summary>
public List<EditClassificationGroupSalaryAndRialCoefficient> SalariesAndCoefficientList { get; set; }
}
/// <summary>
/// تب دستمزد ها و ضرایب ریالی
/// </summary>
public class SalaryAndRialCoefficientTab
{
/// <summary>
/// آی دی طرح
/// </summary>
public long SchemeId { get; set; }
/// <summary>
/// آیا دستمزدی قبلا ایجاد شده است؟
/// </summary>
public bool HasAnySalaries { get; set; }
/// <summary>
/// لیست دستمزدها و ضرایب
/// </summary>
public List<SalaryAndRialCoefficientTabDataList> SalaryAndRialCoefficientTabDataList { get; set; }
}
/// <summary>
/// لیست دستمزدها
/// </summary>
public class SalaryAndRialCoefficientTabDataList
{
/// <summary>
/// تاریخ شروع
/// شمسی
/// </summary>
[DataType(DataType.Text)]
public string StartDateFa { get; set; }
/// <summary>
/// تاریخ پایان
/// شمسی
/// </summary>
[DataType(DataType.Text)]
public string EndDateFa { get; set; }
/// <summary>
/// سال
/// </summary>
public int Year { get; set; }
/// <summary>
/// ضریب ریالی
/// string
/// </summary>
public string RialCoefficientStr { get; set; }
}

View File

@@ -1,59 +0,0 @@
using _0_Framework.Application.Enums;
using System;
using System.ComponentModel.DataAnnotations;
namespace CompanyManagment.App.Contracts.ClassificationScheme;
/// <summary>
/// ایجاد طرح
/// </summary>
public class CreateClassificationScheme
{
/// <summary>
/// تاریخ شمول طرح
/// شمسی
/// </summary>
public string IncludingDateFa { get; set; }
/// <summary>
/// تاریخ اجرای طرح
/// میلادی
/// </summary>
public DateTime ExecutionDateGr { get; set; }
/// <summary>
/// تاریخ اجرای طرح
/// شمسی
/// </summary>
public string ExecutionDateFa { get; set; }
/// <summary>
/// تاریخ پایان طرح
/// </summary>
public DateTime? EndSchemeDateGr { get; set; }
/// <summary>
/// نام کامل طراح
/// </summary>
public string DesignerFullName { get; set; }
/// <summary>
/// شماره همراه طراح
/// </summary>
[RegularExpression("^[0-9]*$", ErrorMessage = "لطفا فقط عدد وارد کنید")]
public string DesignerPhone { get; set; }
/// <summary>
/// آی دی کارگاه
/// </summary>
public long WorkshopId { get; set; }
/// <summary>
/// نوع ضریب
/// </summary>
public TypeOfCoefficient TypeOfCoefficient { get; set; }
}

View File

@@ -1,46 +0,0 @@
using _0_Framework.Application.Enums;
using System;
using System.ComponentModel.DataAnnotations;
namespace CompanyManagment.App.Contracts.ClassificationScheme;
public class CreateClassificationSchemeDto
{
/// <summary>
/// تاریخ شمول طرح
/// شمسی
/// </summary>
public string IncludingDateFa { get; set; }
/// <summary>
/// تاریخ اجرای طرح
/// شمسی
/// </summary>
public string ExecutionDateFa { get; set; }
/// <summary>
/// نام کامل طراح
/// </summary>
public string DesignerFullName { get; set; }
/// <summary>
/// شماره همراه طراح
/// </summary>
[RegularExpression("^[0-9]*$", ErrorMessage = "لطفا فقط عدد وارد کنید")]
public string DesignerPhone { get; set; }
/// <summary>
/// آی دی کارگاه
/// </summary>
public long WorkshopId { get; set; }
/// <summary>
/// نوع ضریب
/// </summary>
public TypeOfCoefficient TypeOfCoefficient { get; set; }
}

View File

@@ -1,12 +0,0 @@
namespace CompanyManagment.App.Contracts.ClassificationScheme;
/// <summary>
/// ویرایش طرح
/// </summary>
public class EditClassificationScheme : CreateClassificationScheme
{
/// <summary>
/// آی دی طرح
/// </summary>
public long Id { get; set; }
}

View File

@@ -1,45 +0,0 @@
using _0_Framework.Application.Enums;
using System.ComponentModel.DataAnnotations;
namespace CompanyManagment.App.Contracts.ClassificationScheme;
public class EditClassificationSchemeDto
{
/// <summary>
/// آی دی طرح
/// </summary>
public long Id { get; set; }
/// <summary>
/// تاریخ شمول طرح
/// شمسی
/// </summary>
public string IncludingDateFa { get; set; }
/// <summary>
/// تاریخ اجرای طرح
/// شمسی
/// </summary>
public string ExecutionDateFa { get; set; }
/// <summary>
/// نام کامل طراح
/// </summary>
public string DesignerFullName { get; set; }
/// <summary>
/// شماره همراه طراح
/// </summary>
[RegularExpression("^[0-9]*$", ErrorMessage = "لطفا فقط عدد وارد کنید")]
public string DesignerPhone { get; set; }
/// <summary>
/// نوع ضریب
/// </summary>
public TypeOfCoefficient TypeOfCoefficient { get; set; }
}

View File

@@ -1,109 +0,0 @@
using System;
using System.Collections.Generic;
namespace CompanyManagment.App.Contracts.ClassificationScheme;
/// <summary>
/// ویرایش گروه پرسنل
/// </summary>
public class EditEmployeeGroup
{
/// <summary>
/// آیا گروه بندی پرسنل چند گانه است
/// </summary>
public bool HasMultipleGroup { get; set; }
/// <summary>
/// نام کامل پرسنل
/// </summary>
public string EmployeeFullName { get; set; }
/// <summary>
/// آی دی پرسنل
/// </summary>
public long EmployeeId { get; set; }
/// <summary>
/// آی دی طرح
/// </summary>
public long SchemeId { get; set; }
/// <summary>
/// لیست گروه های پرسنل
/// </summary>
public List<EditEmployeeGroupList> EditEmployeeGroupLists { get; set; }
/// <summary>
/// لیست گروه های طرح
/// </summary>
public List<ClassificationGroupList> ClassificationGroupList { get; set; }
}
/// <summary>
/// لیست گروه های پرسنل
/// </summary>
public class EditEmployeeGroupList
{
/// <summary>
/// آی دی
/// </summary>
public long Id { get; set; }
/// <summary>
/// آی دی کارگاه
/// </summary>
public long WorkshopId { get; set; }
/// <summary>
/// آی دی پرسنل
/// </summary>
public long EmployeeId { get; set; }
/// <summary>
/// آی دی گروه
/// </summary>
public long ClassificationGroupId { get; set; }
/// <summary>
/// آی دی شغل
/// </summary>
public long ClassificationGroupJobId { get; set; }
/// <summary>
/// تاریخ شروع استفاده از گروه
/// </summary>
public DateTime? StartGroupDate { get; set; }
/// <summary>
/// تاریخ پایان استفاده از گروه
/// </summary>
public DateTime? EndGroupDate { get; set; }
/// <summary>
/// تاریخ شروع استفاده از گروه
/// </summary>
public string StartGroupDateFa { get; set; }
/// <summary>
/// تاریخ پایان استفاده از گروه
/// </summary>
public string EndGroupDateFa { get; set; }
/// <summary>
/// آیا حذف شده است
/// </summary>
public bool IsRemoved { get; set; }
/// <summary>
/// آی دی طرح
/// </summary>
public long SchemeId { get; set; }
/// <summary>
/// شماره گروه
/// </summary>
public string GroupNo { get; set; }
}

View File

@@ -1,110 +0,0 @@
using System.Collections.Generic;
namespace CompanyManagment.App.Contracts.ClassificationScheme;
/// <summary>
/// جستجوی پرسنل
/// تب افزودن پرسنل طبقه بندی مشاغل
/// </summary>
public class EmployeeInfoTab
{
/// <summary>
/// آی دی کارگاه
/// </summary>
public long WorkshopId { get; set; }
/// <summary>
/// آی دی پرسنل
/// </summary>
public long EmployeeId { get; set; }
/// <summary>
/// نام کامل پرسنل
/// </summary>
public string FullName { get; set; }
/// <summary>
/// آی دی طرح
/// </summary>
public long SchemeId { get; set; }
/// <summary>
/// لیست پرسنل
/// </summary>
public List<EmployeeInfoList> EmployeeInfoList { get; set; }
public List<string> YearlyList { get; set; }
}
/// <summary>
/// لیست پرسنل
/// تب افزودن پرسنل طبقه بندی مشاغل
/// </summary>
public class EmployeeInfoList
{
/// <summary>
/// آی دی پرسنل
/// </summary>
public long EmployeeId { get; set; }
/// <summary>
/// نام کامل پرسنل
/// </summary>
public string FullName { get; set; }
/// <summary>
/// شماره گروه یا گره هایی که پرسنل در آن اضافه شده
/// </summary>
public string GroupNo { get; set; }
/// <summary>
/// آیا پرسنل هیچ گروهی دارد؟
/// </summary>
public bool HasGroup { get; set; }
/// <summary>
/// آخرین تاریخ شروع بکار قراداد
/// </summary>
public string LastStartContractWork { get; set; }
/// <summary>
/// آخرین تاریخ ترک کار قراداد
/// </summary>
public string LastLeftContractWork { get; set; }
/// <summary>
/// آخرین تاریخ شروع بکار بیمه
/// </summary>
public string LastStartInsuranceWork { get; set; }
/// <summary>
/// آخرین تاریخ ترک کار بیمه
/// </summary>
public string LastLeftInsuranceWork { get; set; }
/// <summary>
/// آیا پرسنل قرداد است
/// </summary>
public bool ContractPerson { get; set; }
/// <summary>
/// آیا پرسنل بیمه است
/// </summary>
public bool InsurancePerson { get; set; }
/// <summary>
/// آیا ترک کار قرارداد دارد
/// </summary>
public bool ContractLeft { get; set; }
/// <summary>
/// آیا ترک کار بیمه دارد
/// </summary>
public bool InsuranceLeft { get; set; }
/// <summary>
/// آیا کلا ترک کار کرده است
/// </summary>
public bool Black { get; set; }
}

View File

@@ -1,22 +0,0 @@
using System.Collections.Generic;
namespace CompanyManagment.App.Contracts.ClassificationScheme;
public class GetGroupAndJobSchemeListDto
{
/// <summary>
/// آی دی گروه
/// </summary>
public long GroupId { get; set; }
/// <summary>
/// شماره گروه نوع عددی
/// </summary>
public int GroupNoInt { get; set; }
/// <summary>
/// آیا شغلی به گروه اضافه شده
/// </summary>
public bool HasAnyJob { get; set; }
}

View File

@@ -1,244 +0,0 @@
using _0_Framework.Application;
using CompanyManagment.App.Contracts.TemporaryClientRegistration;
using CompanyManagment.App.Contracts.YearlySalary;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace CompanyManagment.App.Contracts.ClassificationScheme;
/// <summary>
/// اپلیکیش طرح طبقه بندی مشاغل
/// </summary>
public interface IClassificationSchemeApplication
{
/// <summary>
/// پارشیال صفحه ایجاد طرح
/// </summary>
/// <param name="worskhopId"></param>
/// <returns></returns>
Task<ClassificationSchemeListDto> GetClassificationSchemeList(long workshopId);
/// <summary>
/// ایجاد طرح
/// </summary>
/// <param name="command"></param>
/// <returns></returns>
Task<OperationResult> CreateClassificationScheme(CreateClassificationSchemeDto command);
/// <summary>
/// دریافت اطلاعات طرح برای مودال ویرایش
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task<EditClassificationSchemeDto> GetClassificationScheme(long id);
/// <summary>
/// دریافت اطلاعات طر برای محاسبات
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task<EditClassificationScheme> GetClassificationSchemeToCompute(long id);
/// <summary>
/// ویرایش طرح
/// </summary>
/// <param name="command"></param>
/// <returns></returns>
Task<OperationResult> EditClassificationScheme(EditClassificationSchemeDto command);
/// <summary>
/// دریافت گروه ها و مشاغلشان برای تب تعیین مشاغل
/// </summary>
/// <param name="schemeId"></param>
/// <returns></returns>
Task<List<ClassificationGroupAndJobModel>> GetGroupAndJobs(long schemeId);
/// <summary>
/// دریافت مشاغل گروه توسط آی دی گروه
/// </summary>
/// <param name="groupId"></param>
/// <returns></returns>
Task<List<EditClassificationGroupJob>> GetGroupJobs(long groupId);
/// <summary>
/// چک میکند که آی پرسنلی وجود دارد که این شغل به او نسبت داده شده
/// </summary>
/// <param name="id"></param>
/// <param name="groupId"></param>
/// <returns></returns>
Task<bool> CheckEmployeeHasThisJob(long id, long groupId);
/// <summary>
/// ایجاد مشاغل گروه
/// </summary>
/// <param name="createClassificationGroupJob"></param>
/// <param name="deleteJobList"></param>
/// <returns></returns>
Task<bool> CreateGroupJobs(List<CreateClassificationGroupJob> createClassificationGroupJob, List<long> deleteJobList);
/// <summary>
/// چک میکند که آیا برای این طرح تابحال دستمزدی ایجاد شده یا نه
/// </summary>
/// <param name="schemeId"></param>
/// <returns></returns>
Task<SalaryAndRialCoefficientTab> GetSalariesTabData(long schemeId);
/// <summary>
/// در یافت اطلاعات گروه برای لود مودال ایجاد دستمزد های
/// </summary>
/// <returns></returns>
Task<SalaryAndRialCoefficientModel> GetGroupToCreateSalariesModal(long schemeId);
/// <summary>
/// ایجاد دستمزدها و ضرایب ریالی هر گروه در هر سال
/// </summary>
/// <param name="command"></param>
/// <returns></returns>
Task<OperationResult> CreateGroupSalaryAndCoefficient(SalaryAndRialCoefficientModel command);
/// <summary>
/// دریافت دستمزدها و ضریب ریالی برای مودال ویرایش
/// </summary>
/// <param name="schemeId"></param>
/// <param name="startDate"></param>
/// <param name="endDate"></param>
/// <returns></returns>
Task<SalaryAndRialCoefficientModel> GetEditSalariesData(long schemeId, string startDate, string endDate);
/// <summary>
/// ثبت ویرایش دستمزدها و ضریب
/// </summary>
/// <param name="command"></param>
/// <returns></returns>
Task<OperationResult> EditGroupSalaryAndCoefficient(SalaryAndRialCoefficientModel command);
/// <summary>
/// دریافت لیست پرسنل برای تب افزودن پرسنل
/// </summary>
/// <param name="command"></param>
/// <returns></returns>
Task<EmployeeInfoTab> GetEmployeeDataTab(EmployeeInfoTab command);
/// <summary>
/// دریافت گروه های طرح
/// </summary>
/// <param name="schemeId"></param>
/// <returns></returns>
Task<List<ClassificationGroupList>> GetGroups(long schemeId);
/// <summary>
/// ذخیره پرسنل افزوده شده در گروه
/// </summary>
/// <param name="command"></param>
/// <returns></returns>
Task<OperationResult> AddEmployeeToGroup(AddEmployeeToGroup command);
/// <summary>
/// انتقال پرسنل به گروه جدید
/// </summary>
/// <param name="command"></param>
/// <returns></returns>
Task<OperationResult> TransferEmployeeToNewGroup(List<EditEmployeeGroupList> command);
/// <summary>
/// ذخیره ویرایش گروه پرسنل
/// </summary>
/// <param name="command"></param>
/// <returns></returns>
Task<OperationResult> EditGroupMember(AddEmployeeToGroup command);
/// <summary>
/// ذخیره ویرایش گروه چندگانه پرسنل
/// </summary>
/// <param name="command"></param>
/// <returns></returns>
Task<OperationResult> EditMultipleGroupMember(List<EditEmployeeGroupList> command);
/// <summary>
/// دریافت اطلاعات عضویتی پرسنل در گروه
/// </summary>
/// <param name="employeeId"></param>
/// <returns></returns>
Task<EditEmployeeGroup> GetEmployeeMemberizeData(long employeeId);
/// <summary>
/// متد محاسبه پایه سنوات برا افراد تک گروه
/// </summary>
/// <param name="schemeStart">تاریخ شروع طرح</param>
/// <param name="schemeEnd">تاریخ پاین طرح، اجباری نیست</param>
/// <param name="contractStart">تاریخ شروع قراداد</param>
/// <param name="contractEnd">تاریخ پایان قراداد</param>
/// <param name="groupNo">شماره گروه</param>
/// <param name="employeeId">آی دی پرسنل</param>
/// <param name="workshopId">آی دی کارگاه</param>
/// <returns></returns>
Task<BaseYearDataViewModel> BaseYearComputeOneGroup(DateTime schemeStart, DateTime? schemeEnd,
DateTime contractStart, DateTime contractEnd, string groupNo, long employeeId, long workshopId);
#region ForApi
/// <summary>
/// چک کردن امکان حذف طرح
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task<OperationResult<CheckStatusToDeleteScheme>> CheckToDeleteScheme(long id);
/// <summary>
/// حذف طرح
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task<OperationResult> DeleteScheme(long id);
/// <summary>
/// تب گروه ها و مشاغل
/// لیست گروه ها
/// </summary>
/// <param name="schemeId"></param>
/// <returns></returns>
Task<List<GetGroupAndJobSchemeListDto>> GetGroupList(long schemeId);
/// <summary>
/// دریافت لیست مشاغل برای مودال ایجاد و ویرایش
/// </summary>
/// <param name="groupId"></param>
/// <returns></returns>
Task<AddOrEditJobInGroupDto> GetCreateOrEditJobsData(long groupId);
/// <summary>
/// چک میکند که آی پرسنلی وجود دارد که این شغل به او نسبت داده شده
/// </summary>
/// <param name="jobId"></param>
/// <param name="groupId"></param>
/// <returns></returns>
Task<OperationResult> CheckIfEmployeeHasThisJob(long jobId, long groupId);
/// <summary>
/// ذخیر ایجاد یا ویرایش مشاغل در گروه
/// </summary>
/// <param name="command"></param>
/// <returns></returns>
Task<OperationResult> SaveJobsToGroup(AddOrEditJobInGroupDto command);
/// <summary>
/// لیست دستمزدها بر اساس تاریخ و سال برای تب دستمزدها
/// </summary>
/// <param name="schemeId"></param>
/// <returns></returns>
Task<List<SalaryAndRialCoefficientTabDataList>> GetSalaryList(long schemeId);
#endregion
}

View File

@@ -1,32 +0,0 @@
using System.ComponentModel.DataAnnotations;
namespace CompanyManagment.App.Contracts.ClassificationScheme;
public class SchemeListDto
{
/// <summary>
/// آی دی طرح
/// </summary>
public long Id { get; set; }
/// <summary>
/// تاریخ شمول طرح
/// شمسی
/// </summary>
public string IncludingDateFa { get; set; }
/// <summary>
/// تاریخ اجرای طرح
/// شمسی
/// </summary>
public string ExecutionDateFa { get; set; }
/// <summary>
/// نام کامل طراح
/// </summary>
public string DesignerFullName { get; set; }
}

View File

@@ -19,6 +19,4 @@ public class ContractSeparationViewModel
public string ConsumableItems { get; set; }
public bool checker { get; set; }
public bool HasLeft { get; set; }
public long EmployeeId { get; set; }
}

View File

@@ -1,26 +0,0 @@
using System.Collections.Generic;
namespace CompanyManagment.App.Contracts.Employee.DTO;
/// <summary>
/// ایجاد ترک کار از کلاینت
/// api
/// </summary>
public class CreateLeftWorkTempDtoClient
{
/// <summary>
/// آی دی پرسنل
/// </summary>
public long EmployeeId { get; set; }
/// <summary>
/// تاریخ ترک کار
/// </summary>
public string LeftWorkTime { get; set; }
/// <summary>
/// تاریخ آخرین روز کاری
/// </summary>
public string LastDayStanding { get; set; }
}

View File

@@ -1,92 +0,0 @@
using System.Diagnostics.Contracts;
namespace CompanyManagment.App.Contracts.Employee.DTO;
/// <summary>
/// لیست پرسنل کلاینت
/// api
/// </summary>
public class EmployeeListDto
{
/// <summary>
/// آی دی پرسنل
/// </summary>
public long Id { get; set; }
/// <summary>
/// نام کامل پرسنل
/// </summary>
public string EmployeeFullName { get; set; }
/// <summary>
/// کد پرسنلی
/// </summary>
public int PersonnelCode { get; set; }
/// <summary>
/// وضعیت تاهل
/// </summary>
public string MaritalStatus { 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 FatherName { get; set; }
/// <summary>
/// تعداد فرزندان
/// </summary>
public string NumberOfChildren { get; set; }
/// <summary>
/// آخرین تاریخ شروع بکار قرارداد
/// </summary>
public string LatestContractStartDate { get; set; }
/// <summary>
/// تاریخ ترک کار قرارداد
/// </summary>
public string ContractLeftDate { get; set; }
/// <summary>
/// آخرین تاریخ شروع بکار بیمه
/// </summary>
public string LatestInsuranceStartDate { get; set; }
/// <summary>
/// تاریخ ترک کار بیمه
/// </summary>
public string InsuranceLeftDate { get; set; }
/// <summary>
/// دارای قرارداد است؟
/// </summary>
public bool HasContract { get; set; }
/// <summary>
/// دارای بیمه است؟
/// </summary>
public bool HasInsurance { get; set; }
/// <summary>
/// وضعیت پرسنل در کارگاه
/// </summary>
public EmployeeStatusInWorkshop EmployeeStatusInWorkshop { get; set; }
}

View File

@@ -1,18 +0,0 @@
namespace CompanyManagment.App.Contracts.Employee.DTO;
/// <summary>
/// سرچ مدل پرسنل
/// api
/// </summary>
public class EmployeeSearchModelDto
{
/// <summary>
/// نام پرسنل
/// </summary>
public string EmployeeFullName { get; set; }
/// <summary>
/// کد ملی
/// </summary>
public string NationalCode { get; set; }
}

View File

@@ -1,29 +0,0 @@
namespace CompanyManagment.App.Contracts.Employee.DTO;
/// <summary>
/// وضعیت پرسنل در کارگاه
/// api
/// </summary>
public enum EmployeeStatusInWorkshop
{
/// <summary>
/// ایجاد شده توسط کارفرما
/// </summary>
CreatedByClient,
/// <summary>
/// ترک کار موقت
/// </summary>
LefWorkTemp,
/// <summary>
/// در حال کار در کارگاه
/// </summary>
Working,
/// <summary>
/// قطع ارتباط و ترک کار کامب
/// </summary>
HasLeft,
}

View File

@@ -1,25 +0,0 @@
namespace CompanyManagment.App.Contracts.Employee.DTO;
public class GetLeftWorkTempDayOfWeekDtoClient
{
/// <summary>
/// تاریخ ترک کار
/// </summary>
public string LeftWorkTime { get; set; }
/// <summary>
/// آخرین روز کاری
/// </summary>
public string LastDayStanding { get; set; }
/// <summary>
/// روز هفته ترک کار
/// </summary>
public string LeftWorkTimeDayOfWeek { get; set; }
/// <summary>
/// روز هفته اخرین روز کاری
/// </summary>
public string LastDayStandingDayOfWeek { get; set; }
}

View File

@@ -1,54 +0,0 @@
namespace CompanyManagment.App.Contracts.Employee.DTO;
/// <summary>
/// پرینت گروهی تفکیکی پرسنل
/// </summary>
public class PrintAllDetailsPersonnelInfoDtoClient
{
/// <summary>
/// نام کامل پرسنل
/// </summary>
public string EmployeeFullName { 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 FatherName { get; set; }
/// <summary>
/// تعداد فرزندان
/// </summary>
public string NumberOfChildren { get; set; }
/// <summary>
/// استان
/// </summary>
public string State { get; set; }
/// <summary>
/// شهر
/// </summary>
public string City { get; set; }
public string Address { get; set; }
}

View File

@@ -1,96 +0,0 @@
namespace CompanyManagment.App.Contracts.Employee.DTO;
/// <summary>
/// پرینت تجمیعی پرسنل
/// </summary>
public class PrintAllEmployeesInfoDtoClient
{
public PrintAllEmployeesInfoDtoClient(EmployeeListDto source)
{
Id = source.Id;
EmployeeFullName = source.EmployeeFullName;
PersonnelCode = source.PersonnelCode;
MaritalStatus = source.MaritalStatus;
NationalCode = source.NationalCode;
IdNumber = source.IdNumber;
DateOfBirth = source.DateOfBirth;
FatherName = source.FatherName;
NumberOfChildren = source.NumberOfChildren;
LatestContractStartDate = source.LatestContractStartDate;
ContractLeftDate = source.ContractLeftDate;
LatestInsuranceStartDate = source.LatestInsuranceStartDate;
InsuranceLeftDate = source.InsuranceLeftDate;
Black = source.EmployeeStatusInWorkshop == EmployeeStatusInWorkshop.HasLeft;
}
/// <summary>
/// آی دی پرسنل
/// </summary>
public long Id { get; set; }
/// <summary>
/// نام کامل پرسنل
/// </summary>
public string EmployeeFullName { get; set; }
/// <summary>
/// کد پرسنلی
/// </summary>
public int PersonnelCode { get; set; }
/// <summary>
/// وضعیت تاهل
/// </summary>
public string MaritalStatus { 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 FatherName { get; set; }
/// <summary>
/// تعداد فرزندان
/// </summary>
public string NumberOfChildren { get; set; }
/// <summary>
/// آخرین تاریخ شروع بکار قرارداد
/// </summary>
public string LatestContractStartDate { get; set; }
/// <summary>
/// تاریخ ترک کار قرارداد
/// </summary>
public string ContractLeftDate { get; set; }
/// <summary>
/// آخرین تاریخ شروع بکار بیمه
/// </summary>
public string LatestInsuranceStartDate { get; set; }
/// <summary>
/// تاریخ ترک کار بیمه
/// </summary>
public string InsuranceLeftDate { get; set; }
/// <summary>
/// وضعیت پرسنل در کارگاه
/// </summary>
public bool Black { get; set; }
}

View File

@@ -1,10 +1,8 @@
using System;
using System.Collections.Generic;
using System.Collections.Generic;
using System.Threading.Tasks;
using _0_Framework.Application;
using CompanyManagment.App.Contracts.Employee.DTO;
using CompanyManagment.App.Contracts.EmployeeInsuranceRecord;
using Microsoft.AspNetCore.Mvc;
namespace CompanyManagment.App.Contracts.Employee;
@@ -75,12 +73,10 @@ public interface IEmployeeApplication
long workshopId);
Task<OperationResult> EditEmployeeInEmployeeDocumentWorkFlow(EditEmployeeInEmployeeDocument command);
[Obsolete("این متد منسوخ شده است و از متد WorkedEmployeesInWorkshopSelectList استفاده کنید")]
Task<List<EmployeeSelectListViewModel>> WorkedEmployeesInWorkshopSelectList(long workshopId);
Task<OperationResult<EmployeeDataFromApiViewModel>> GetEmployeeDataFromApi(string nationalCode, string birthDate);
#endregion
#region Api
@@ -107,40 +103,7 @@ public interface IEmployeeApplication
/// <returns></returns>
Task<List<GetClientEmployeeListViewModel>> GetClientEmployeeList(GetClientEmployeeListSearchModel searchModel, long workshopId);
/// <summary>
/// دریافت لیست پرسنل کلاینت
/// api
/// </summary>
/// <param name="searchModel"></param>
/// <param name="workshopId"></param>
/// <returns></returns>
Task<List<EmployeeListDto>> ListOfAllEmployeesClient(EmployeeSearchModelDto searchModel, long workshopId);
/// <summary>
/// پرینت تجمیعی پرسنل کلاینت
/// api
/// </summary>
/// <param name="workshopId"></param>
/// <returns></returns>
Task<List<PrintAllEmployeesInfoDtoClient>> PrintAllEmployeesInfoClient(long workshopId);
/// <summary>
/// پرینت گروهی تفکیکی پرسنل
/// </summary>
/// <param name="workshopId"></param>
/// <returns></returns>
Task<List<PrintAllDetailsPersonnelInfoDtoClient>> PrintAllDetailsPersonnelInfoClient(long workshopId);
/// <summary>
/// سلکت لیست پرسنل های کارگاه کلاینت
/// </summary>
/// <param name="workshopId"></param>
/// <returns></returns>
Task<List<EmployeeSelectListViewModel>> GetWorkingEmployeesSelectList(long workshopId);
#endregion
#endregion
}

View File

@@ -1,14 +0,0 @@
namespace CompanyManagment.App.Contracts.EmployeeBankInformation;
public class GetEmployeeBankInfoDetailsBankItemDto
{
public long Id { get; set; }
public string CardNumber { get; set; }
public string ShebaNumber { get; set; }
public string BankAccountNumber { get; set; }
public string BankName { get; set; }
public string BankLogoPath { get; set; }
public bool IsDefault { get; set; }
public long BankId { get; set; }
}

View File

@@ -1,10 +0,0 @@
using System.Collections.Generic;
namespace CompanyManagment.App.Contracts.EmployeeBankInformation;
public class GetEmployeeBankInfoDetailsDto
{
public long EmployeeId { get; set; }
public string EmployeeFullName { get; set; }
public List<GetEmployeeBankInfoDetailsBankItemDto> BankItems { get; set; }
}

View File

@@ -1,7 +1,5 @@
using System;
using _0_Framework.Application;
using _0_Framework.Application;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace CompanyManagment.App.Contracts.EmployeeBankInformation
{
@@ -10,7 +8,6 @@ namespace CompanyManagment.App.Contracts.EmployeeBankInformation
OperationResult Create(CreateEmployeeInformation command);
OperationResult GroupCreate(long workshopId, List<CreateEmployeeInformation> command);
OperationResult Edit(EditEmployeeInformation command);
[Obsolete("از متد Async استفاده شود")]
List<GroupedEmployeeBankInformationViewModel> Search(long workshopId, EmployeeBankInformationSearchModel searchParams);
List<EmployeeBankInformationViewModelForExcel> SearchForExcel(long workshopId,
EmployeeBankInformationSearchModel searchParams);
@@ -20,22 +17,5 @@ namespace CompanyManagment.App.Contracts.EmployeeBankInformation
OperationResult RemoveByEmployeeId(long workshopId, long employeeId);
List<GroupedEmployeeBankInformationViewModel> GetAllByWorkshopId(long workshopId);
OperationResult SetDefault(long workshopId, long bankInfoId);
/// <summary>
/// گرفتن لیست اطلاعات بانکی
/// </summary>
/// <param name="workshopId"></param>
/// <param name="searchParams"></param>
/// <returns></returns>
Task<List<GroupedEmployeeBankInformationViewModel>> SearchAsync
(long workshopId, EmployeeBankInformationSearchModel searchParams);
/// <summary>
/// جزئیات اطلاعات بانکی بر اساس پرسنل
/// </summary>
/// <param name="workshopId"></param>
/// <param name="employeeId"></param>
/// <returns></returns>
Task<GetEmployeeBankInfoDetailsDto> GetDetailsByEmployeeIdAsync(long workshopId, long employeeId);
}
}

View File

@@ -1,18 +0,0 @@
using System.Threading.Tasks;
using Microsoft.AspNetCore.SignalR;
namespace CompanyManagment.App.Contracts.Hubs;
public class CheckoutHub : Hub
{
public async Task send(long id)
{
await Groups.AddToGroupAsync(Context.ConnectionId, GetGroupName(id));
}
public static string GetGroupName(long id)
{
return $"group-Checkout-{id}";
}
}

View File

@@ -1,6 +1,5 @@
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using _0_Framework.Application;
using Microsoft.AspNetCore.SignalR;
namespace CompanyManagment.App.Contracts.Hubs;
@@ -8,20 +7,6 @@ namespace CompanyManagment.App.Contracts.Hubs;
public class SendSmsHub : Hub
{
private readonly IAuthHelper _authHelper;
public SendSmsHub(IAuthHelper authHelper)
{
_authHelper = authHelper;
}
public override async Task OnConnectedAsync()
{
var accountId = _authHelper.CurrentAccountId();
var connectionId = Context.ConnectionId;
await send(accountId);
await base.OnConnectedAsync();
}
public async Task send(long id)
{

View File

@@ -1,7 +1,4 @@
using System.Collections.Generic;
using System.Security.AccessControl;
using CompanyManagment.App.Contracts.Workshop;
using Microsoft.AspNetCore.Server.HttpSys;
namespace CompanyManagment.App.Contracts.InstitutionContract;
@@ -107,7 +104,6 @@ public class InstitutionContractListWorkshop
{
public string WorkshopName { get; set; }
public int EmployeeCount { get; set; }
public string Price { get; set; }
public WorkshopServicesViewModel WorkshopServices { get; set; }
}
@@ -115,31 +111,22 @@ public class WorkshopServicesViewModel
{
public bool Insurance { get; set; }
public string InsuranceLabel => "ارسال لیست بیمه";
public string InsurancePrice { get; set; }
public bool InsuranceInPerson { get; set; }
public string InsuranceInPersonLabel => "خدمات مستقیم";
public string InsuranceInPersonPrice { get; set; }
public bool Contract { get; set; }
public string ContractLabel => "قرارداد و تصفیه حساب";
public string ContractPrice { get; set; }
public bool ContractInPerson { get; set; }
public string ContractInPersonLabel => "خدمات مستقیم";
public string ContractInPersonPrice { get; set; }
public bool RollCall { get; set; }
public string RollCallLabel => "ساعت حضور و غیاب";
public string RollCallPrice { get; set; }
public bool RollCallInPerson { get; set; }
public string RollCallInPersonLabel => "خدمات مستقیم";
public string RollCallInPersonPrice { get; set; }
public bool CustomizeCheckout { get; set; }
public string CustomizeCheckoutLabel => "فیش غیر رسمی";
public string CustomizeCheckoutPrice { get; set; }
}

View File

@@ -13,7 +13,6 @@ public class GetInstitutionVerificationDetailsViewModel
public string ContractStart { get; set; }
public string ContractEnd { get; set; }
public List<GetInstitutionVerificationDetailsWorkshopsViewModel> Workshops { get; set; }
public string OneMonthPrice { get; set; }
public string TotalPrice { get; set; }
public string TaxPrice { get; set; }
public string PaymentPrice { get; set; }

View File

@@ -4,7 +4,6 @@ public class GetInstitutionVerificationDetailsWorkshopsViewModel
{
public string Name { get; set; }
public int PersonnelCount { get; set; }
public WorkshopServicesViewModel OldServices { get; set; }
public WorkshopServicesViewModel Services { get; set; }
public string Price { get; set; }
}

View File

@@ -283,7 +283,7 @@ public interface IInstitutionContractApplication
#endregion
Task<OperationResult> ResendVerifyLink(long institutionContractId);
Task AmendmentComplete(InstitutionContractAmendmentCompleteRequest request);
/// <summary>
/// دیتای پرینت قرارداد مالی
/// </summary>
@@ -291,17 +291,14 @@ public interface IInstitutionContractApplication
/// <returns></returns>
Task<InstitutionContractPrintViewModel> PrintOneAsync(long id);
Task<OperationResult> SetPendingWorkflow(long entityId,InstitutionContractSigningType signingType);
Task<GetInstitutionContractWorkshopsDetails> GetContractWorkshopsDetails(long id);
Task<GetInstitutionAmendmentVerificationDetailsViewModel> GetAmendmentVerificationDetails(Guid id, long amendmentId);
Task<OperationResult> SetPendingWorkflow(long entityId, InstitutionContractSigningType signingType);
Task<long> GetIdByInstallmentId(long installmentId);
/// <summary>
/// تایید قرارداد مالی به صورت دستی
/// </summary>
/// <param name="institutionContractId"></param>
/// <returns></returns>
/// </summary>
Task<OperationResult> VerifyInstitutionContractManually(long institutionContractId);
Task<InstitutionContractCreationPaymentResponse> GetCreationPaymentMethod(InstitutionContractCreationPaymentRequest request);
@@ -351,35 +348,4 @@ public class InstitutionContractCreationWorkshopsRequest
public LegalType LegalType { get; set; }
public long RepresentativeId { get; set; }
}
public class GetInstitutionAmendmentVerificationDetailsViewModel
{
public InstitutionContratVerificationParty FirstParty { get; set; }
public InstitutionContratVerificationParty SecondParty { get; set; }
public string ContractNo { get; set; }
public string AmendmentCreationDate { get; set; }
public string AmendmentStart { get; set; }
public string AmendmentEnd { get; set; }
public List<GetInstitutionVerificationDetailsWorkshopsViewModel> Workshops { get; set; }
public string TotalPrice { get; set; }
public string TaxPrice { get; set; }
public string PaymentPrice { get; set; }
public List<InstitutionContractInstallmentViewModel> Installments { get; set; }
public bool IsInstallment { get; set; }
}
public class InstitutionContractAmendmentCompleteRequest
{
public Guid TempId { get; set; }
public bool IsInstallment { get; set; }
public long LawId { get; set; }
}
public class GetInstitutionContractWorkshopsDetails
{
public List<InstitutionContractListWorkshop> Workshops { get; set; }
}
}

View File

@@ -1,28 +1,11 @@
using System.Collections.Generic;
namespace CompanyManagment.App.Contracts.InstitutionContract;
public class InsitutionContractAmendmentPaymentResponse
{
public List<InsitutionContractAmendmentPaymentWorkshopResponse> workshops { get; set; }
public InstitutionContractPaymentOneTimeViewModel OneTime { get; set; }
public InstitutionContractPaymentMonthlyViewModel Monthly { get; set; }
public string ContractStart { get; set; }
public string ContractEnd { get; set; }
public string OneMonthAmount { get; set; }
public string TotalAmount { get; set; }
}
public class InsitutionContractAmendmentPaymentWorkshopResponse
{
public string WorkshopName { get; set; }
public WorkshopServicesViewModel OldServices { get; set; }
public WorkshopServicesViewModel NewServices { get; set; }
public bool IsNewWorkshop { get; set; }
public int PrevPersonnelCount { get; set; }
public int NewPersonnelCount { get; set; }
public double Price { get; set; }
}

View File

@@ -16,8 +16,6 @@ public class InstitutionContractPrintViewModel
public string TaxPrice { get; set; }
public string PaymentPrice { get; set; }
public string OneMonthPrice { get; set; }
public string OneMonthWithoutTax { get; set; }
public string OneMonthTax { get; set; }
public string VerifyCode { get; set; }
public string VerifyDate { get; set; }
public string VerifyTime { get; set; }
@@ -25,4 +23,6 @@ public class InstitutionContractPrintViewModel
public string VerifierPhoneNumber { get; set; }
public LawViewModel LawViewModel { get; set; }
public string Obligation { get; set; }
public string OneMonthWithoutTax { get; set; }
public string OneMonthTax { get; set; }
}

View File

@@ -13,13 +13,6 @@ public interface IJobApplication
List<JobViewModel> Search(JobSearchModel searchModel);
List<JobViewModel> SearchJobForMain(JobSearchModel searchModel);
//Task<List<JobViewModel>> GetJobListByText(string searchtText);
/// <summary>
/// جستجوی مشاغل برای سلکت تو
/// </summary>
/// <param name="searchtText"></param>
/// <returns></returns>
Task<List<JobListDto>> JobSearchSelect(string searchtText);
List<JobViewModel> GetJobListByText(string searchtText);
List<JobViewModel> GetJobListByWorkshopId(long workshopId);
List<JobViewModel> GetJobListByTextAndWorkshopId(string textSearch, long workshopId);

View File

@@ -7,11 +7,4 @@ public class JobViewModel
public string JobCode { get; set; }
public string SearchResultTitle { get; set; }
public string SearchResultCode { get; set; }
}
public class JobListDto
{
public long Id { get; set; }
public string JobName { get; set; }
}

View File

@@ -1,9 +1,8 @@
using _0_Framework.Application;
using CompanyManagment.App.Contracts.Employee.DTO;
using CompanyManagment.App.Contracts.LeftWork;
using System;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using _0_Framework.Application;
using CompanyManagment.App.Contracts.LeftWork;
namespace CompanyManagment.App.Contracts.LeftWorkTemp;
@@ -37,27 +36,6 @@ public interface ILeftWorkTempApplication
List<LeftWorkTempViewModel> GetLeftWorksByWorkshopId(long workshopId);
#region ForApi
/// <summary>
/// ایجاد ترک کار از کلاینت
/// </summary>
/// <param name="command"></param>
/// <param name="workshopId"></param>
/// <returns></returns>
Task<OperationResult> CreateLeftWorkTempClient(CreateLeftWorkTempDtoClient command, long workshopId);
/// <summary>
/// دریافت روز هفته برای ترک کار و اخرین روز کاری
/// </summary>
/// <param name="leftWorkTime"></param>
/// <param name="lastDayStanding"></param>
/// <returns></returns>
Task<GetLeftWorkTempDayOfWeekDtoClient> GetLeftWorkTempDayOfWeekDtoClient(string leftWorkTime,
string lastDayStanding);
#endregion
}
public class LeftWorkTempViewModel

View File

@@ -45,42 +45,4 @@ namespace CompanyManagment.App.Contracts.RollCall
}
#endregion
public class CheckoutPrintRollCallDto
{
public string RollCallDateFa { get; set; }
public string StartDate1 { get; set; }
public string EndDate1 { get; set; }
public string StartDate2 { get; set; }
public string EndDate2 { get; set; }
//منقطع بودن شیفت کاری
public bool IsSliced { get; set; }
public string TotalWorkingHours { get; set; }
public string DayOfWeek { get; set; }
public string BreakTimeString { get; set; }
/// <summary>
/// اگر مرخصی نداشته باشد خالی خواهد بود، اگر داشته باشد نوع مرخصی جانشانی می شود
/// </summary>
public string LeaveType { get; set; }
public bool IsAbsent { get; set; }
public bool IsFriday { get; set; }
public bool IsHoliday { get; set; }
public bool IsBirthDay { get; set; }
public string EnterDifferencesMinutes1 { get; set; }
public string ExitDifferencesMinutes1 { get; set; }
public string EnterDifferencesMinutes2 { get; set; }
public string ExitDifferencesMinutes2 { get; set; }
}
}

View File

@@ -81,7 +81,7 @@ namespace CompanyManagment.App.Contracts.RollCall
/// <summary>
/// گزارش آنلاین حضور غیاب
/// </summary>
CurrentDayRollCall GetWorkshopCurrentDayRollCalls(long workshopId,WorkshopCurrentDayRollCallSearchModel searchModel);
CurrentDayRollCall GetWorkshopCurrentDayRollCalls(long workshopId);
/// <summary>
/// گزارش آفلاین حضور غیاب کارگاه
@@ -153,13 +153,6 @@ namespace CompanyManagment.App.Contracts.RollCall
public long EmployeeId { get; set; }
}
public class WorkshopCurrentDayRollCallSearchModel
{
public long EmployeeId { get; set; }
public int PersonnelCode { get; set; }
}
public enum RollCallRecordStatus
{
Worked = 0,

View File

@@ -1,24 +0,0 @@
namespace CompanyManagment.App.Contracts.Workshop.DTOs;
public class AdminWorkshopSelectListDto
{
/// <summary>
/// آی دی کارگاه
/// </summary>
public long Id { get; set; }
/// <summary>
/// نام کارگاه
/// </summary>
public string WorkshopFullName { get; set; }
/// <summary>
/// کد بایگانی
/// </summary>
public string ArchiveCode { get; set; }
/// <summary>
/// آیا بلاک شده است
/// </summary>
public bool IsBlock { get; set; }
}

View File

@@ -1,12 +1,10 @@
using _0_Framework.Application;
using AccountManagement.Application.Contracts.Account;
using CompanyManagment.App.Contracts.Checkout.Dto;
using CompanyManagment.App.Contracts.Employee.DTO;
using CompanyManagment.App.Contracts.Workshop.DTOs;
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Threading.Tasks;
using _0_Framework.Application;
using AccountManagement.Application.Contracts.Account;
using CompanyManagment.App.Contracts.Workshop.DTOs;
using Microsoft.AspNetCore.Mvc;
namespace CompanyManagment.App.Contracts.Workshop;
@@ -94,19 +92,6 @@ public interface IWorkshopApplication
#endregion
Task<ActionResult<OperationResult>> CreateWorkshopWorkflowRegistration(CreateWorkshopWorkflowRegistration command);
#region ForApi
/// <summary>
/// دریافت لیست کارگاه های ادمین برای سلکت تو
/// Api
/// </summary>
/// <returns></returns>
Task<List<AdminWorkshopSelectListDto>> GetAdminWorkshopSelectList();
#endregion
}
public class CreateWorkshopWorkflowRegistration

View File

@@ -94,9 +94,4 @@ public class BaseYearDataList
/// آیا تاریخ پایان کار دارد
/// </summary>
public bool HasLeftWork { get; set; }
/// <summary>
/// شماره گروه
/// </summary>
public string GroupNo { get; set; }
}

View File

@@ -104,10 +104,5 @@ namespace CompanyManagment.Application
Id = x.Id
}).ToList();
}
public List<BankSelectList> GetBanksForSelectList()
{
return _bankRepository.GetBanksForSelectList();
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,654 +0,0 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using _0_Framework.Application;
using _0_Framework.Application.Enums;
using Company.Domain.ClassificationSchemeAgg;
using CompanyManagment.App.Contracts.ClassificationScheme;
using CompanyManagment.App.Contracts.YearlySalary;
using Microsoft.EntityFrameworkCore;
namespace CompanyManagment.Application;
public class ClassificationSchemeApplication : IClassificationSchemeApplication
{
private readonly IClassificationSchemeRepository _classificationSchemeRepository;
private readonly IClassificationGroupRepository _classificationGroupRepository;
private readonly IClassificationGroupSalariesRepository _classificationGroupSalariesRepository;
private readonly IClassificationRialCoefficientRepository _classificationRialCoefficientRepository;
private readonly IClassificationEmployeeRepository _classificationEmployeeRepository;
public ClassificationSchemeApplication(IClassificationSchemeRepository classificationSchemeRepository, IClassificationGroupRepository classificationGroupRepository, IClassificationGroupSalariesRepository classificationGroupSalariesRepository, IClassificationRialCoefficientRepository classificationRialCoefficientRepository, IClassificationEmployeeRepository classificationEmployeeRepository)
{
_classificationSchemeRepository = classificationSchemeRepository;
_classificationGroupRepository = classificationGroupRepository;
_classificationGroupSalariesRepository = classificationGroupSalariesRepository;
_classificationRialCoefficientRepository = classificationRialCoefficientRepository;
_classificationEmployeeRepository = classificationEmployeeRepository;
}
public Task<ClassificationSchemeListDto> GetClassificationSchemeList(long workshopId)
{
return _classificationSchemeRepository.GetClassificationSchemeList(workshopId);
}
public async Task<OperationResult> CreateClassificationScheme(CreateClassificationSchemeDto command)
{
var op = new OperationResult();
#region Validation
if (!command.ExecutionDateFa.TryToGeorgianDateTime(out var executionDateGr))
{
return op.Failed("تاریخ اجرا صحیح نمی باشد");
}
if (!command.IncludingDateFa.TryToGeorgianDateTime(out var includingDateGr))
{
return op.Failed("تاریخ شمول صحیح نمی باشد");
}
#endregion
//ایجاد طرح
var create = new Company.Domain.ClassificationSchemeAgg.ClassificationScheme(includingDateGr, executionDateGr,
command.DesignerFullName, command.DesignerPhone, command.WorkshopId, command.TypeOfCoefficient);
_classificationSchemeRepository.Create(create);
await _classificationSchemeRepository.SaveChangesAsync();
//ایجاد گروه های طرح
var groups = new List<ClassificationGroup>()
{
new ClassificationGroup("1",command.WorkshopId,create.id),
new ClassificationGroup("2",command.WorkshopId,create.id),
new ClassificationGroup("3",command.WorkshopId,create.id),
new ClassificationGroup("4",command.WorkshopId,create.id),
new ClassificationGroup("5",command.WorkshopId,create.id),
new ClassificationGroup("6",command.WorkshopId,create.id),
new ClassificationGroup("7",command.WorkshopId,create.id),
new ClassificationGroup("8",command.WorkshopId,create.id),
new ClassificationGroup("9",command.WorkshopId,create.id),
new ClassificationGroup("10",command.WorkshopId,create.id),
new ClassificationGroup("11",command.WorkshopId,create.id),
new ClassificationGroup("12",command.WorkshopId,create.id),
new ClassificationGroup("13",command.WorkshopId,create.id),
new ClassificationGroup("14",command.WorkshopId,create.id),
new ClassificationGroup("15",command.WorkshopId,create.id),
new ClassificationGroup("16",command.WorkshopId,create.id),
new ClassificationGroup("17",command.WorkshopId,create.id),
new ClassificationGroup("18",command.WorkshopId,create.id),
new ClassificationGroup("19",command.WorkshopId,create.id),
new ClassificationGroup("20",command.WorkshopId,create.id),
};
await _classificationGroupRepository.CreateGroups(groups);
return op.Succcedded();
}
public async Task<EditClassificationSchemeDto> GetClassificationScheme(long id)
{
return await _classificationSchemeRepository.GetClassificationScheme(id);
}
public Task<EditClassificationScheme> GetClassificationSchemeToCompute(long id)
{
return _classificationSchemeRepository.GetClassificationSchemeToCompute(id);
}
public async Task<OperationResult> EditClassificationScheme(EditClassificationSchemeDto command)
{
var op = new OperationResult();
#region Validation
if (!command.ExecutionDateFa.TryToGeorgianDateTime(out var executionDateGr))
{
return op.Failed("تاریخ اجرا صحیح نمی باشد");
}
if (!command.IncludingDateFa.TryToGeorgianDateTime(out var includingDateGr))
{
return op.Failed("تاریخ شمول صحیح نمی باشد");
}
var scheme = _classificationSchemeRepository.Get(command.Id);
if (scheme == null)
return op.Failed("رکورد مورد نظر وجود ندارد");
#endregion
scheme.Edit(includingDateGr, executionDateGr, command.DesignerFullName, command.DesignerPhone, command.TypeOfCoefficient);
await _classificationSchemeRepository.SaveChangesAsync();
return op.Succcedded();
}
public async Task<List<ClassificationGroupAndJobModel>> GetGroupAndJobs(long schemeId)
{
return await _classificationGroupRepository.GetGroupAndJobs(schemeId);
}
public async Task<List<GetGroupAndJobSchemeListDto>> GetGroupList(long schemeId)
{
return await _classificationGroupRepository.GetGroupList(schemeId);
}
public async Task<List<EditClassificationGroupJob>> GetGroupJobs(long groupId)
{
return await _classificationGroupRepository.GetGroupJobs(groupId);
}
public async Task<bool> CheckEmployeeHasThisJob(long id, long groupId)
{
return await _classificationGroupRepository.CheckEmployeeHasThisJob(id, groupId);
}
public async Task<bool> CreateGroupJobs(List<CreateClassificationGroupJob> createClassificationGroupJob, List<long> deleteJobList)
{
var newJoblist = new List<ClassificationGroupJob>();
if (createClassificationGroupJob.Count > 0)
{
foreach (var item in createClassificationGroupJob)
{
var newJob = new ClassificationGroupJob(item.JobId, item.JobName, item.JobCode, item.ClassificationGroupId,
item.GroupNo);
newJoblist.Add(newJob);
}
}
return await _classificationGroupRepository.CreateJobs(newJoblist, deleteJobList);
}
public async Task<SalaryAndRialCoefficientTab> GetSalariesTabData(long schemeId)
{
return await _classificationGroupSalariesRepository.GetSalariesTabData(schemeId);
}
public async Task<SalaryAndRialCoefficientModel> GetGroupToCreateSalariesModal(long schemeId)
{
return await _classificationGroupRepository.GetGroupToCreateSalariesModal(schemeId);
}
public async Task<OperationResult> CreateGroupSalaryAndCoefficient(SalaryAndRialCoefficientModel command)
{
var op = new OperationResult();
#region Validation
if (string.IsNullOrWhiteSpace(command.StartDateFa) || string.IsNullOrWhiteSpace(command.StartDateFa))
return op.Failed("تاریخ شروع و پایان نمی توانند خالی باشند");
if (command.TypeOfCoefficient == TypeOfCoefficient.RialCoefficient && command.RialCoefficient == 0)
return op.Failed("ضریب ریالی وارد نشده است");
if (command.SalariesAndCoefficientList.Any(x => string.IsNullOrWhiteSpace(x.GroupSalaryStr) || x.GroupSalaryStr == "0"))
return op.Failed("دستمزد تمامی گروه ها می بایست تعیین شود");
if (!command.StartDateFa.TryToGeorgianDateTime(out var startDate))
{
return op.Failed("تاریخ شروع وارد شده صحیح نمی باشد");
}
if (!command.EndDateFa.TryToGeorgianDateTime(out var endDate))
{
return op.Failed("تاریخ پایان وارد شده صحیح نمی باشد");
}
if (_classificationGroupSalariesRepository.Exists(x => x.StartDate <= endDate && x.EndDate >= startDate && x.SchemeId == command.SchemeId))
{
return op.Failed("بازه تاریخ وارد شده با داده های ذخیره شده قبل تداخل دارد");
}
var year = Convert.ToInt32(command.StartDateFa.Substring(0, 4));
var endDateYear = Convert.ToInt32(command.EndDateFa.Substring(0, 4));
if (year != endDateYear)
return op.Failed("سال تاریخ شروع از سال تاریخ پایان متفاوت است");
#endregion
var createSalaries = new List<ClassificationGroupSalary>();
foreach (var item in command.SalariesAndCoefficientList)
{
item.GroupSalary = item.GroupSalaryStr.MoneyToDouble();
var create = new ClassificationGroupSalary(item.ClassificationGroupId, item.GroupNo, item.GroupSalary, startDate, endDate, year, command.SchemeId);
createSalaries.Add(create);
}
await _classificationGroupSalariesRepository.CreateSalaries(createSalaries);
if (command.TypeOfCoefficient == TypeOfCoefficient.RialCoefficient)
{
try
{
command.RialCoefficient = command.RialCoefficient;
await _classificationRialCoefficientRepository.CreateAsync(new ClassificationRialCoefficient(command.SchemeId,
command.RialCoefficient, startDate, endDate, year));
await _classificationRialCoefficientRepository.SaveChangesAsync();
}
catch (Exception e)
{
return op.Failed("فرمت مبلغ ضریب ریالی اشتباه است");
}
}
op.SendId = command.SchemeId;
return op.Succcedded();
}
public async Task<SalaryAndRialCoefficientModel> GetEditSalariesData(long schemeId, string startDate, string endDate)
{
return await _classificationGroupSalariesRepository.GetEditSalariesData(schemeId, startDate, endDate);
}
public async Task<OperationResult> EditGroupSalaryAndCoefficient(SalaryAndRialCoefficientModel command)
{
var op = new OperationResult();
#region Validation
if (string.IsNullOrWhiteSpace(command.StartDateFa) || string.IsNullOrWhiteSpace(command.StartDateFa))
return op.Failed("تاریخ شروع و پایان نمی توانند خالی باشند");
if (command.TypeOfCoefficient == TypeOfCoefficient.RialCoefficient && command.RialCoefficient == 0)
return op.Failed("ضریب ریالی وارد نشده است");
if (command.SalariesAndCoefficientList.Any(x => string.IsNullOrWhiteSpace(x.GroupSalaryStr) || x.GroupSalaryStr == "0"))
return op.Failed("دستمزد تمامی گروه ها می بایست تعیین شود");
if (!command.StartDateFa.TryToGeorgianDateTime(out var startDate))
{
return op.Failed("تاریخ شروع وارد شده صحیح نمی باشد");
}
if (!command.EndDateFa.TryToGeorgianDateTime(out var endDate))
{
return op.Failed("تاریخ پایان وارد شده صحیح نمی باشد");
}
var salariesId = command.SalariesAndCoefficientList.Select(x => x.Id).ToList();
if (_classificationGroupSalariesRepository.Exists(x => x.StartDate <= endDate && x.EndDate >= startDate && x.SchemeId == command.SchemeId && !salariesId.Contains(x.id)))
{
return op.Failed("بازه تاریخ وارد شده با داده های ذخیره شده قبل تداخل دارد");
}
var year = Convert.ToInt32(command.StartDateFa.Substring(0, 4));
var endDateYear = Convert.ToInt32(command.EndDateFa.Substring(0, 4));
if (year != endDateYear)
return op.Failed("سال تاریخ شروع از سال تاریخ پایان متفاوت است");
#endregion
foreach (var item in command.SalariesAndCoefficientList)
{
var editSalary = _classificationGroupSalariesRepository.Get(item.Id);
item.GroupSalary = item.GroupSalaryStr.MoneyToDouble();
editSalary.Edit(item.GroupSalary, startDate, endDate, year);
await _classificationGroupSalariesRepository.SaveChangesAsync();
}
if (command.TypeOfCoefficient == TypeOfCoefficient.RialCoefficient)
{
var editRialCoefficient = _classificationRialCoefficientRepository.Get(command.CoefficientId);
editRialCoefficient.Edit(command.RialCoefficient, startDate, endDate, year);
await _classificationRialCoefficientRepository.SaveChangesAsync();
}
return op.Succcedded();
}
public async Task<EmployeeInfoTab> GetEmployeeDataTab(EmployeeInfoTab command)
{
var employeeInfoTab = new EmployeeInfoTab();
var employeeInfoList = _classificationEmployeeRepository.GetEmployeeListData(command.SchemeId).GetAwaiter().GetResult();
if (employeeInfoList.Any())
{
if (!string.IsNullOrWhiteSpace(command.FullName))
employeeInfoList = employeeInfoList.Where(x => x.FullName.Contains(command.FullName)).ToList();
employeeInfoTab.EmployeeInfoList = employeeInfoList;
employeeInfoTab.FullName = command.FullName;
}
return employeeInfoTab;
}
public async Task<List<ClassificationGroupList>> GetGroups(long schemeId)
{
return await _classificationGroupRepository.GetGroups(schemeId);
}
public async Task<OperationResult> AddEmployeeToGroup(AddEmployeeToGroup command)
{
var op = new OperationResult();
#region Validation
if (command.GroupId == 0)
return op.Failed("لطفا گروه را انتخاب کنید");
if (command.JobId == 0)
return op.Failed("لطفا سمت را انتخاب کنید");
#endregion
var scheme = _classificationSchemeRepository.GetClassificationSchemeToCompute(command.SchemeId).GetAwaiter().GetResult();
var create = new ClassificationEmployee(scheme.WorkshopId, command.EmployeeId, command.SchemeId,
command.GroupId, command.JobId, scheme.ExecutionDateGr);
await _classificationEmployeeRepository.CreateAsync(create);
await _classificationEmployeeRepository.SaveChangesAsync();
return op.Succcedded();
}
public async Task<OperationResult> EditGroupMember(AddEmployeeToGroup command)
{
var op = new OperationResult();
#region Validation
if (command.GroupId == 0)
return op.Failed("لطفا گروه را انتخاب کنید");
if (command.JobId == 0)
return op.Failed("لطفا سمت را انتخاب کنید");
#endregion
var editGroup = _classificationEmployeeRepository.Get(command.Id);
editGroup.Edit(command.GroupId, command.JobId);
await _classificationEmployeeRepository.SaveChangesAsync();
return op.Succcedded();
}
public async Task<OperationResult> TransferEmployeeToNewGroup(List<EditEmployeeGroupList> command)
{
var op = new OperationResult();
if (command.Count < 1)
return op.Failed("هیچ انتقالی ایجاد نشده است");
var oldGroupsMemberize = await _classificationEmployeeRepository.GetEmployeeMemberizeData(command[0].EmployeeId);
var scheme = await _classificationSchemeRepository.GetClassificationSchemeToCompute(oldGroupsMemberize[0].SchemeId);
var newStartDateList = new List<DateTime>();
foreach (var item in command)
{
#region Validation
if (item.ClassificationGroupId == 0)
return op.Failed("لطفا گروه را انتخاب کنید");
if (item.ClassificationGroupJobId == 0)
return op.Failed("لطفا سمت را انتخاب کنید");
if (!item.StartGroupDateFa.TryToGeorgianDateTime(out var startDate))
{
string startDateFaild = "تاریخ شروع" + " " + item.StartGroupDateFa + " " + "صحیح نمیباشد";
return op.Failed(startDateFaild);
}
if (item.StartGroupDateFa.Substring(8, 2) != "01")
return op.Failed("تاریخ شروع فقط می تواند یکم هر ماه باشد");
if (newStartDateList.Any(x => x == startDate))
return op.Failed($"تاریخ انتقال {item.StartGroupDateFa} با تاریخ های قبل تداخل دارد");
newStartDateList.Add(startDate);
if (oldGroupsMemberize.Any(x => x.StartGroupDate == startDate))
return op.Failed($"تاریخ انتقال {item.StartGroupDateFa} با تاریخ های قبل تداخل دارد");
if (startDate < scheme.ExecutionDateGr)
return op.Failed($"تاریخ انتقال {item.StartGroupDateFa} کوچکتر از تاریخ شروع طرح : {scheme.ExecutionDateFa} است");
#endregion
}
var lastRecord = oldGroupsMemberize.FirstOrDefault(x => x.EndGroupDate == null);
if (lastRecord != null)
{
var edit = _classificationEmployeeRepository.Get(lastRecord.Id);
var firstNewRcord = newStartDateList.MinBy(x => x);
edit.EditMultipleGroupMember(lastRecord.ClassificationGroupId, lastRecord.ClassificationGroupJobId, lastRecord.StartGroupDate.Value);
}
newStartDateList = newStartDateList.OrderByDescending(x => x).ToList();
var lastNewRecord = newStartDateList.MaxBy(x => x);
var c = command.FirstOrDefault(x => x.StartGroupDateFa == lastNewRecord.ToFarsi());
var create = new ClassificationEmployee(scheme.WorkshopId, c.EmployeeId, c.SchemeId,
c.ClassificationGroupId, c.ClassificationGroupJobId, lastNewRecord.Date);
await _classificationEmployeeRepository.CreateAsync(create);
newStartDateList.Remove(lastNewRecord);
var createList = new List<ClassificationEmployee>();
foreach (var item in newStartDateList)
{
var commandEdit = command.FirstOrDefault(x => x.StartGroupDateFa == item.ToFarsi());
var createCommand = new ClassificationEmployee(scheme.WorkshopId, commandEdit.EmployeeId, commandEdit.SchemeId,
commandEdit.ClassificationGroupId, commandEdit.ClassificationGroupJobId, item);
createList.Add(createCommand);
lastNewRecord = item;
}
if (createList.Any())
{
createList = createList.OrderBy(x => x.StartGroupDate).ToList();
await _classificationEmployeeRepository.CreateTransferRange(createList);
}
await _classificationEmployeeRepository.SaveChangesAsync();
return op.Succcedded();
}
public async Task<OperationResult> EditMultipleGroupMember(List<EditEmployeeGroupList> command)
{
var op = new OperationResult();
var zeroItem = command.First(x => x.Id == 0);
var oldGroupsMemberize = await _classificationEmployeeRepository.GetEmployeeMemberizeData(zeroItem.EmployeeId);
var scheme = await _classificationSchemeRepository.GetClassificationSchemeToCompute(zeroItem.SchemeId);
command = command.Where(x => x.Id != 0).ToList();
var newStartDateList = new List<DateTime>();
foreach (var item in command)
{
#region Validation
if (item.ClassificationGroupId == 0)
return op.Failed("لطفا گروه را انتخاب کنید");
if (item.ClassificationGroupJobId == 0)
return op.Failed("لطفا سمت را انتخاب کنید");
if (!item.StartGroupDateFa.TryToGeorgianDateTime(out var startDate))
{
string startDateFaild = "تاریخ شروع" + " " + item.StartGroupDateFa + " " + "صحیح نمیباشد";
return op.Failed(startDateFaild);
}
if (item.StartGroupDateFa.Substring(8, 2) != "01")
return op.Failed("تاریخ شروع فقط می تواند یکم هر ماه باشد");
if (oldGroupsMemberize.Any(x => x.StartGroupDate == startDate && x.Id != item.Id))
return op.Failed($"تاریخ {item.StartGroupDateFa} با تاریخ های قبل یا بعد از خود تداخل دارد");
if (startDate < scheme.ExecutionDateGr)
return op.Failed($"تاریخ انتقال {item.StartGroupDateFa} کوچکتر از تاریخ شروع طرح : {scheme.ExecutionDateFa} است");
newStartDateList.Add(startDate);
#endregion
}
foreach (var item in command)
{
var edit = _classificationEmployeeRepository.Get(item.Id);
edit.EditMultipleGroupMember(item.ClassificationGroupId, item.ClassificationGroupJobId, item.StartGroupDateFa.ToGeorgianDateTime());
}
var removeItemIdList = command.Select(x => x.Id).ToList();
var toBeRemove = removeItemIdList.Any() ? oldGroupsMemberize.Where(x => !removeItemIdList.Contains(x.Id)).Select(x => x.Id).ToList() : oldGroupsMemberize.Select(x => x.Id).ToList();
if (toBeRemove.Any())
{
var getRemoveList = await _classificationEmployeeRepository.GetListByIdList(toBeRemove);
await _classificationEmployeeRepository.RemoveRangeByEdit(getRemoveList);
}
await _classificationEmployeeRepository.SaveChangesAsync();
return op.Succcedded();
}
/// <summary>
/// دریافت اطلاعات عضویتی پرسنل در گروه
/// </summary>
/// <param name="employeeId"></param>
/// <returns></returns>
public async Task<EditEmployeeGroup> GetEmployeeMemberizeData(long employeeId)
{
var result = new EditEmployeeGroup();
var res = await _classificationEmployeeRepository.GetEmployeeMemberizeData(employeeId);
if (res.Any())
{
result.HasMultipleGroup = res.Count > 1;
result.EditEmployeeGroupLists = res;
}
return result;
}
public async Task<BaseYearDataViewModel> BaseYearComputeOneGroup(DateTime schemeStart, DateTime? schemeEnd, DateTime contractStart, DateTime contractEnd,
string groupNo, long employeeId, long workshopId)
{
return await _classificationSchemeRepository.BaseYearComputeOneGroup(schemeStart, schemeEnd, contractStart,
contractEnd, groupNo, employeeId, workshopId);
}
public async Task<OperationResult<CheckStatusToDeleteScheme>> CheckToDeleteScheme(long id)
{
var op = new OperationResult<CheckStatusToDeleteScheme>();
var scheme = _classificationSchemeRepository.Get(id);
if (scheme != null)
{
var employeeInfoList = await _classificationEmployeeRepository.GetEmployeeListData(id);
var anyHasGroup = employeeInfoList.Any(x => x.HasGroup);
if (employeeInfoList.Any() && anyHasGroup)
{
string message = "برای این طرح پرسنل افزوده شده است، آیا از حذف طرح اطمینان دارید";
return op.Succcedded(new CheckStatusToDeleteScheme()
{ DeleteSchemeStatus = DeleteSchemeStatus.ConfirmationNeeded, Message = message });
}
else
{
var message = "مجاز برای حذف";
return op.Succcedded(new CheckStatusToDeleteScheme()
{ DeleteSchemeStatus = DeleteSchemeStatus.Valid, Message = message });
}
}
return op.Failed("یافت نشد", new CheckStatusToDeleteScheme() { DeleteSchemeStatus = DeleteSchemeStatus.NotValid });
}
#region ForApi
public async Task<OperationResult> DeleteScheme(long id)
{
var op = new OperationResult();
var scheme = _classificationSchemeRepository.Get(id);
if (scheme != null)
{
await _classificationSchemeRepository.DeleteClassificationScheme(id);
return op.Succcedded();
}
return op.Failed("یافت نشد");
}
public async Task<AddOrEditJobInGroupDto> GetCreateOrEditJobsData(long groupId)
{
return await _classificationGroupRepository.GetCreateOrEditJobsData(groupId);
}
public async Task<OperationResult> CheckIfEmployeeHasThisJob(long jobId, long groupId)
{
var op = new OperationResult();
var checkExistAny = await _classificationGroupRepository.CheckIfEmployeeHasThisJob(jobId, groupId);
if (checkExistAny)
return op.Failed("این شغل قبلا به پرسنلی از این گروه داده شده و نمیتوانید آن را حذف کنید");
return op.Succcedded(-1, "حذف با موفقیت انجام شد");
}
public async Task<OperationResult> SaveJobsToGroup(AddOrEditJobInGroupDto command)
{
var op = new OperationResult();
var res = await _classificationGroupRepository.SaveJobsToGroup(command);
if (!res)
return op.Failed("خطا در انجام عملیات");
return op.Succcedded();
}
public async Task<List<SalaryAndRialCoefficientTabDataList>> GetSalaryList(long schemeId)
{
return await _classificationGroupSalariesRepository.GetSalaryList(schemeId);
}
#endregion
}

View File

@@ -1734,25 +1734,5 @@ public class EmployeeAplication : RepositoryBase<long, Employee>, IEmployeeAppli
return await _EmployeeRepository.GetClientEmployeeList(searchModel, workshopId);
}
public async Task<List<EmployeeListDto>> ListOfAllEmployeesClient(EmployeeSearchModelDto searchModel, long workshopId)
{
return await _EmployeeRepository.ListOfAllEmployeesClient(searchModel, workshopId);
}
public async Task<List<PrintAllEmployeesInfoDtoClient>> PrintAllEmployeesInfoClient(long workshopId)
{
return await _EmployeeRepository.PrintAllEmployeesInfoClient(workshopId);
}
public async Task<List<PrintAllDetailsPersonnelInfoDtoClient>> PrintAllDetailsPersonnelInfoClient(long workshopId)
{
return await _EmployeeRepository.PrintAllDetailsPersonnelInfoClient(workshopId);
}
public async Task<List<EmployeeSelectListViewModel>> GetWorkingEmployeesSelectList(long workshopId)
{
return await _EmployeeRepository.GetWorkingEmployeesSelectList(workshopId);
}
#endregion
}

View File

@@ -4,7 +4,6 @@ using Company.Domain.EmployeeBankInformationAgg;
using CompanyManagment.App.Contracts.EmployeeBankInformation;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace CompanyManagment.Application
{
@@ -102,13 +101,7 @@ namespace CompanyManagment.Application
}
public async Task<List<GroupedEmployeeBankInformationViewModel>> SearchAsync(long workshopId,
EmployeeBankInformationSearchModel searchParams)
{
return await _employeeBankInformationRepository.SearchAsync(workshopId, searchParams);
}
//todo: add CardNumber, BankAccountNumber, etc validations
public OperationResult Edit(EditEmployeeInformation command)
{
OperationResult op = new();
@@ -175,6 +168,9 @@ namespace CompanyManagment.Application
{
var entity = _employeeBankInformationRepository.GetByEmployeeId(workshopId, employeeId);
if (entity == null)
return new();
return entity;
}
@@ -215,12 +211,6 @@ namespace CompanyManagment.Application
return _employeeBankInformationRepository.GetAllByWorkshopId(workshopId);
}
public async Task<GetEmployeeBankInfoDetailsDto> GetDetailsByEmployeeIdAsync(long workshopId, long employeeId)
{
return await _employeeBankInformationRepository.GetDetailsByEmployeeIdAsync(workshopId, employeeId);
}
#region Private Methods
private OperationResult ValidateCreateOperation(List<GroupedEmployeeBankInformationViewModel> workshopEmployeeBankInfoList, CreateEmployeeInformation command)
@@ -263,7 +253,8 @@ namespace CompanyManagment.Application
return !workshopRecords.Exists(x =>
x.WorkshopId == workshopId && x.EmployeeId == employeeId);
}
#endregion
}
}

View File

@@ -1498,7 +1498,6 @@ public class InstitutionContractApplication : IInstitutionContractApplication
return (await _institutionContractRepository.PrintAllAsync([id])).FirstOrDefault();
}
public async Task<OperationResult> SetPendingWorkflow(long entityId,InstitutionContractSigningType signingType)
{
var op = new OperationResult();
@@ -1552,7 +1551,7 @@ public class InstitutionContractApplication : IInstitutionContractApplication
createdWorkshop.Services.ContractInPerson, createdWorkshop.Services.Insurance,
createdWorkshop.Services.InsuranceInPerson,createdWorkshop.PersonnelCount, createdWorkshop.Price,
createdWorkshop.InstitutionContractWorkshopGroupId,createdWorkshop.WorkshopGroup,
createdWorkshop.WorkshopId!.Value, false,createdWorkshop.id);
createdWorkshop.WorkshopId!.Value, createdWorkshop.id);
institutionContract.WorkshopGroup.AddCurrentWorkshop(currentWorkshop);
}
}
@@ -1580,21 +1579,6 @@ public class InstitutionContractApplication : IInstitutionContractApplication
{
return await _institutionContractRepository.GetIdByInstallmentId(installmentId);
}
public Task<GetInstitutionContractWorkshopsDetails> GetContractWorkshopsDetails(long id)
{
return _institutionContractRepository.GetContractWorkshopsDetails(id);
}
public async Task<GetInstitutionAmendmentVerificationDetailsViewModel> GetAmendmentVerificationDetails(Guid id, long amendmentId)
{
return await _institutionContractRepository.GetAmendmentVerificationDetails(id,amendmentId);
}
public async Task AmendmentComplete(InstitutionContractAmendmentCompleteRequest request)
{
await _institutionContractRepository.AmendmentComplete(request);
}
public async Task<OperationResult> VerifyInstitutionContractManually(long institutionContractId)
{

View File

@@ -1,5 +1,4 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using _0_Framework.Application;
using Company.Domain.JobAgg;
using CompanyManagment.App.Contracts.Job;
@@ -67,11 +66,6 @@ public class JobApplication : IJobApplication
return _jobRepository.SearchJobForMain(searchModel);
}
public async Task<List<JobListDto>> JobSearchSelect(string searchtText)
{
return await _jobRepository.JobSearchSelect(searchtText);
}
//public Task<List<JobViewModel>> GetJobListByText(string searchtText)
//{
// return _jobRepository.GetJobListByText(searchtText);

View File

@@ -1,4 +1,8 @@
using _0_Framework.Application;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using _0_Framework.Application;
using _0_Framework_b.Application;
using Company.Domain.CheckoutAgg;
using Company.Domain.ContractAgg;
@@ -11,17 +15,11 @@ using Company.Domain.RollCallEmployeeStatusAgg;
using Company.Domain.WorkshopAgg;
using CompanyManagment.App.Contracts.Checkout;
using CompanyManagment.App.Contracts.Contract;
using CompanyManagment.App.Contracts.Employee.DTO;
using CompanyManagment.App.Contracts.LeftWork;
using CompanyManagment.App.Contracts.LeftWorkTemp;
using CompanyManagment.App.Contracts.ReportClient;
using CompanyManagment.App.Contracts.RollCallEmployee;
using CompanyManagment.EFCore.Migrations;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using PersianTools.Core;
using OperationResult = _0_Framework.Application.OperationResult;
using Tools = _0_Framework.Application.Tools;
@@ -331,112 +329,4 @@ public class LeftWorkTempApplication : ILeftWorkTempApplication
}
#region ForApi
public async Task<OperationResult> CreateLeftWorkTempClient(CreateLeftWorkTempDtoClient command, long workshopId)
{
var op = new OperationResult();
#region Validation
if (_leftWorkTempRepository.Exists(x => x.WorkshopId == workshopId && x.EmployeeId == command.EmployeeId))
{
return op.Failed("برای پرسنل وارد شده قبلا درخواست ترک کار ثبت کرده اید");
}
if (command.LeftWorkTime.TryToGeorgianDateTime(out var leftWorkDateGr) == false)
{
return op.Failed("تاریخ شروع به کار وارد شده نامعتبر است");
}
if (command.LastDayStanding.TryToGeorgianDateTime(out var lastDayStandingDateGr) == false)
{
return op.Failed("تاریخ شروع به کار وارد شده نامعتبر است");
}
var leftWork = await _leftWorkRepository.GetLastLeftWork(command.EmployeeId, workshopId);
if (lastDayStandingDateGr.AddDays(1).Date != leftWorkDateGr)
{
return op.Failed("تاریخ آخرین روز کاری با تاریخ ترک کار یک روز اختلاف ندارند");
}
if (leftWork == null)
{
return op.Failed("شروع به کار پرسنل یافت نشد");
}
if (leftWork.HasLeft)
{
return op.Failed("پرسنل وارد شده قبلا ترک کار ثبت شده است");
}
if (leftWork.StartWorkDate > lastDayStandingDateGr)
{
return op.Failed("تاریخ ثبت شده قبل از شروع به کار است");
}
if (leftWork.WorkshopId != workshopId || leftWork.EmployeeId != command.EmployeeId)
{
return op.Failed("اطلاعات وارد شده نامعتبر است");
}
var leftWorkTemp = LeftWorkTemp.CreateLeftWork(leftWork.id, leftWork.StartWorkDate, leftWorkDateGr,
lastDayStandingDateGr,
workshopId, command.EmployeeId, leftWork.JobId);
await _leftWorkTempRepository.CreateAsync(leftWorkTemp);
await _leftWorkTempRepository.SaveChangesAsync();
return op.Succcedded();
#endregion
}
public async Task<GetLeftWorkTempDayOfWeekDtoClient> GetLeftWorkTempDayOfWeekDtoClient(string leftWorkTime,
string lastDayStanding)
{
var result = new GetLeftWorkTempDayOfWeekDtoClient();
if (!string.IsNullOrWhiteSpace(leftWorkTime) && leftWorkTime.Length == 10)
{
if (leftWorkTime.TryToGeorgianDateTime(out var left) == false)
return result;
int year = Convert.ToInt32(leftWorkTime.Substring(0, 4));
int month = Convert.ToInt32(leftWorkTime.Substring(5, 2));
int day = Convert.ToInt32(leftWorkTime.Substring(8, 2));
var leftWorkTimePersian = new PersianDateTime(year, month, day);
result.LeftWorkTime = leftWorkTime;
result.LeftWorkTimeDayOfWeek = leftWorkTimePersian.DayOfWeek;
var lastDayStandingPersian = leftWorkTimePersian.AddDays(-1);
result.LastDayStanding = $"{lastDayStandingPersian}";
result.LastDayStandingDayOfWeek = lastDayStandingPersian.DayOfWeek;
}
else if(!string.IsNullOrWhiteSpace(lastDayStanding) && lastDayStanding.Length == 10)
{
if (lastDayStanding.TryToGeorgianDateTime(out var lastDay) == false)
return result;
int year = Convert.ToInt32(lastDayStanding.Substring(0, 4));
int month = Convert.ToInt32(lastDayStanding.Substring(5, 2));
int day = Convert.ToInt32(lastDayStanding.Substring(8, 2));
var lastDayStandingPersian = new PersianDateTime(year, month, day);
result.LastDayStanding = lastDayStanding;
result.LastDayStandingDayOfWeek = lastDayStandingPersian.DayOfWeek;
var leftWorkTimePersian = lastDayStandingPersian.AddDays(1);
result.LeftWorkTime = $"{leftWorkTimePersian}";
result.LeftWorkTimeDayOfWeek = leftWorkTimePersian.DayOfWeek;
}
return result;
}
#endregion
}

View File

@@ -150,9 +150,9 @@ public class RollCallApplication : IRollCallApplication
return _rollCallRepository.GetWorkshopRollCallHistory(searchModel);
}
public CurrentDayRollCall GetWorkshopCurrentDayRollCalls(long workshopId, WorkshopCurrentDayRollCallSearchModel searchModel)
public CurrentDayRollCall GetWorkshopCurrentDayRollCalls(long workshopId)
{
return _rollCallRepository.GetWorkshopCurrentDayRollCalls(workshopId, searchModel);
return _rollCallRepository.GetWorkshopCurrentDayRollCalls(workshopId);
}
public List<CheckoutDailyRollCallViewModel> GetActiveEmployeeRollCallsForDuration(long employeeId, long workshopId, string startDate,

View File

@@ -90,7 +90,7 @@ namespace CompanyManagment.Application
public bool HasRollCallRecord(long employeeId, long workshopId, DateTime contractStart, DateTime contractEnd)
{
return _rollCallEmployeeRepository.HasRollCallRecord(employeeId, workshopId, contractStart, contractEnd).GetAwaiter().GetResult();
return _rollCallEmployeeRepository.HasRollCallRecord(employeeId, workshopId, contractStart, contractEnd);
}
public List<RollCallEmployeeStatusViewModel> GetActiveByWorkshopIdInDate(long workshopId, DateTime startDateGr, DateTime endDateGr)

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