Compare commits
459 Commits
Feature/Sm
...
Main
| Author | SHA1 | Date | |
|---|---|---|---|
| dd89e5a04d | |||
| c844867cab | |||
|
|
59d73d5ca8 | ||
|
|
ce146d9733 | ||
| cb3d4b711a | |||
| 779514f5c0 | |||
|
|
ec8dfe4799 | ||
| b69d450a3a | |||
| bc491eec18 | |||
| c980c627ba | |||
| 67910d2fa5 | |||
| 8cf960ebd7 | |||
| ad167ea1f4 | |||
| 9475c786d3 | |||
| db32b1e6ea | |||
| b30a8b0e4d | |||
| 0ba0043751 | |||
| 79a9d72b86 | |||
| dddc4b143a | |||
| 127d9f7a46 | |||
| a8cb226d20 | |||
| 793b10c6cc | |||
| ffe8fa67e2 | |||
| a0d2023a6c | |||
|
|
8ff6d8ecc0 | ||
|
|
c466b68c9a | ||
| 332f58de9b | |||
| db0047d3d3 | |||
|
|
2c305e1d7a | ||
|
|
da966e49c3 | ||
|
|
7d35a65f35 | ||
| ddeb6a7182 | |||
| 77b5c8168e | |||
|
|
1343d9a2a7 | ||
| d7731cd7ad | |||
| cd2c770a9f | |||
|
|
734d0ca692 | ||
|
|
d07a78a637 | ||
| c28bb46aaf | |||
|
|
d2d95b4fbe | ||
|
|
f067d5a7b4 | ||
| dc56df5e0f | |||
| d6e60e2cab | |||
| fa4c39904a | |||
|
|
6e74447ccb | ||
|
|
b65c33c43a | ||
| 0b1cc34008 | |||
| 3dace574ff | |||
| bf2a102a55 | |||
| 88744bd4cf | |||
| 0705823157 | |||
| 5942075dd6 | |||
|
|
734fd9ebca | ||
|
|
add04f854e | ||
|
|
debb54bafc | ||
| 3bd20d528f | |||
| b850ab1206 | |||
| 33a2c0be95 | |||
| fedfc372d0 | |||
|
|
a2c1fd30bf | ||
| 170f30f162 | |||
| db26c29057 | |||
| 0e7787dd56 | |||
|
|
1e9f864c1e | ||
|
|
3f23d1dac0 | ||
|
|
6f0a579c33 | ||
|
|
26517c20d8 | ||
|
|
7ce3224d69 | ||
|
|
5a9bfde922 | ||
|
|
64746fa3c3 | ||
|
|
bc3bc17a61 | ||
|
|
a678b92c39 | ||
|
|
4c513191b6 | ||
|
|
33ae28f0e5 | ||
|
|
2f45d519b9 | ||
| 3840d89433 | |||
| 23d42bd8f5 | |||
| 25aa76b16c | |||
| d6a9c5e87d | |||
|
|
34d336f43e | ||
|
|
6b81f383f6 | ||
|
|
54ff59de48 | ||
| 411363555f | |||
|
|
faeb5e11a5 | ||
|
|
50b56d928d | ||
|
|
9f09b6af97 | ||
|
|
63e169b82d | ||
|
|
7339eaaadf | ||
|
|
e5c96c8bcb | ||
|
|
187b7406d2 | ||
|
|
c51bb90a2b | ||
|
|
17f117726e | ||
|
|
13fb6fec5d | ||
| 5bead0cc86 | |||
|
|
bef21edf22 | ||
|
|
c151e2d3f7 | ||
|
|
1e36966767 | ||
| 64693b2ca3 | |||
| 64cb4baba9 | |||
| 03657b6848 | |||
|
|
1324baa9c7 | ||
| ce836476a1 | |||
| 15f1c938f7 | |||
| 7e563a0f01 | |||
|
|
48cc07bf2a | ||
|
|
be319f6286 | ||
|
|
d3dacceab1 | ||
| a3fd3e6920 | |||
|
|
8db161f960 | ||
|
|
3bb16c02b4 | ||
| 025c59e695 | |||
|
|
7a79343b2f | ||
| 36ccd96352 | |||
| a7c97b22b4 | |||
| 4c143d6bbc | |||
| 0e5a0a16ac | |||
|
|
dfc392f07a | ||
| 88f54b6310 | |||
| a68b879e95 | |||
| 161f3a92a7 | |||
| 5a1ec104a1 | |||
|
|
7fc5ac7ccd | ||
|
|
5b6f967fca | ||
| d4694e7e1c | |||
|
|
3317bde6d6 | ||
| 4bde4ade2d | |||
|
|
5cd30e5910 | ||
| 5c3c9739d1 | |||
| bd12ff0506 | |||
|
|
d51e4c462a | ||
|
|
4463fdc177 | ||
|
|
2ce63d1e0f | ||
|
|
38603b2249 | ||
|
|
037723ef70 | ||
|
|
7bb507c841 | ||
|
|
bf03247f81 | ||
| cb2c6b9ad1 | |||
| 355ec72140 | |||
| 21b3467517 | |||
| e9d0efc52f | |||
| 301a8f06f4 | |||
| 63a3027a17 | |||
| b22aa86aea | |||
| f0feac9601 | |||
| 8faddedd46 | |||
|
|
12af5dcb56 | ||
| 1382305433 | |||
| 90fa0ac8f8 | |||
| eb8352e8fc | |||
| 4c7599b568 | |||
| d179c90c48 | |||
|
|
ae2427473b | ||
|
|
068d34b4b4 | ||
|
|
377f95561c | ||
| 8850328fd4 | |||
|
|
b66dc81688 | ||
|
|
20ff66da2f | ||
| 915f16c7c0 | |||
|
|
2e95846336 | ||
| ad91383e86 | |||
| 6281a024ca | |||
| 0ef4ead292 | |||
| b286923dfe | |||
| 18867b4929 | |||
| a9df0669c6 | |||
| 5c75316f40 | |||
| 8839b54dd3 | |||
| 87c3cebb60 | |||
| 0d72392701 | |||
| 8f6007835c | |||
| 05d860795e | |||
| 607c0780b6 | |||
| 791c8f91b7 | |||
| c980354c6b | |||
| 22a5564ba0 | |||
| ef49302f8a | |||
| d8d2c34de7 | |||
|
|
3a343a19e1 | ||
|
|
e65852c829 | ||
| 7f1939390c | |||
|
|
07a4ce1f64 | ||
|
|
7207172ce0 | ||
| 048da40f3c | |||
| 7ba85fe1aa | |||
|
|
3280202644 | ||
| 1a334c22b8 | |||
|
|
a1bda5bc54 | ||
| c80be16807 | |||
|
|
f6a285b6ea | ||
| 68b1f89ef0 | |||
| 18fe6a5c6a | |||
|
|
56fc69f99f | ||
| d6096b232d | |||
| 6d5c032802 | |||
| 71c0cff03a | |||
|
|
ebcb7530e0 | ||
|
|
9ff9b0be18 | ||
|
|
ceb328cfa7 | ||
| 5a7d65427d | |||
| 8adb0f567c | |||
|
|
7aaf161718 | ||
|
|
2f408a6cc1 | ||
|
|
3ef717583f | ||
|
|
551f5a754c | ||
|
|
ba88a012ff | ||
|
|
e4c41bb704 | ||
|
|
dee55f8854 | ||
|
|
802c79812b | ||
| e2e7aa1989 | |||
| b82e831991 | |||
|
|
44cbdbaa1c | ||
|
|
94466bbb27 | ||
| 931d41c446 | |||
|
|
9614e44003 | ||
|
|
f097be54aa | ||
| 5ba72e2281 | |||
|
|
be4bc2c900 | ||
| 0b42546666 | |||
| a35a51370a | |||
|
|
ef86c6d07d | ||
|
|
1b284b51b9 | ||
|
|
5b15596696 | ||
| f290a71dd3 | |||
| 0d0f643058 | |||
|
|
5ad5fdcca0 | ||
|
|
fb1601db77 | ||
|
|
b39b58b21e | ||
|
|
2a3e733eb6 | ||
| 5d2a917168 | |||
| 4ab9f60932 | |||
| cbcd42db85 | |||
|
|
76aabc3a45 | ||
| a22dbd8811 | |||
| 9cfae54db3 | |||
|
|
3cdd5e7ac7 | ||
| de4e2de2e7 | |||
| d7dd91eaba | |||
|
|
d6e3c48770 | ||
|
|
946024d81e | ||
| e7ce947342 | |||
| 796a13cdcc | |||
| 2b7871c582 | |||
| 8f0c707647 | |||
| a835663e5c | |||
| 0bceed55d1 | |||
| 946e980324 | |||
| 93847e6aa8 | |||
| b329e40930 | |||
|
|
6e34ba79e0 | ||
| 5f21b59cb3 | |||
| e0ea5aec53 | |||
|
|
43000bde7e | ||
|
|
0a7d80c2fe | ||
| 2984d2a3cf | |||
| bc6854f8a7 | |||
| 4f66270cb0 | |||
|
|
6b6ec79faa | ||
|
|
1304a3e8ef | ||
|
|
57881af130 | ||
|
|
6154c2c7f5 | ||
|
|
647909319f | ||
|
|
d5b70d1545 | ||
| 4ed1907075 | |||
| efcf40eea8 | |||
|
|
d2acf59eba | ||
|
|
3139552217 | ||
|
|
8e6defb29e | ||
|
|
fe4e81a60c | ||
|
|
098233fd1b | ||
| 61062dba7b | |||
| 5581e7e013 | |||
|
|
47d8f7156c | ||
| 0b704da21f | |||
| e8059f98d5 | |||
|
|
df5b820782 | ||
|
|
ed8f9558d6 | ||
| 60a1d1cd8e | |||
|
|
dc4c8e9a26 | ||
| 0721467abf | |||
|
|
0e7cb00a9f | ||
|
|
ba4c00c012 | ||
|
|
b3b3b14ebf | ||
|
|
ee486eb706 | ||
| c60af8d248 | |||
|
|
57d13b9bed | ||
|
|
6d0a6085a5 | ||
| 2e274dd280 | |||
| be7fad2cf5 | |||
| a79f9a28fb | |||
| 0d4b5774b6 | |||
|
|
a623044b93 | ||
|
|
76408c48cf | ||
|
|
4ac51f24b5 | ||
| ed121e9ade | |||
| 548aefb8e1 | |||
| 223c2bde21 | |||
| a1736fa3cc | |||
| 62f6817640 | |||
| f17b566957 | |||
|
|
27edcc5f7b | ||
|
|
21b69edf93 | ||
|
|
68b42c98d6 | ||
|
|
f13688ccb2 | ||
|
|
bb9074df34 | ||
| 1a6248f15d | |||
| a9511ffa82 | |||
| 6f3d6e986c | |||
| 18da3221d7 | |||
| 186cb95c70 | |||
| b1f9bc98ba | |||
| 93ee88ba46 | |||
| 5c6af6184c | |||
| e81a3ea7aa | |||
| 7d92ae6658 | |||
| 5de90be51e | |||
| a1ead80a42 | |||
| a121e62102 | |||
| 5d20238904 | |||
| 4b35c3e443 | |||
|
|
c8d6644116 | ||
|
|
fff5bb3706 | ||
|
|
74597c0ad5 | ||
|
|
cccccf084e | ||
| 54b3745276 | |||
| b50ad83144 | |||
| d2e832d52e | |||
| cdeba2009f | |||
| 65adbda73f | |||
|
|
c137c9e78e | ||
|
|
4801d593b7 | ||
|
|
582e140726 | ||
| ff04dff0ca | |||
|
|
c04089b68a | ||
|
|
d9ee96c057 | ||
| fc45e46502 | |||
| 8015e583bf | |||
| 524660d7b4 | |||
| c2d9d809f1 | |||
| b5d52feee4 | |||
| 4c58942e15 | |||
| edf8c8c92d | |||
|
|
8eaeefecc8 | ||
|
|
911c29ea6b | ||
| 8fc798746f | |||
| 3526fdbf2f | |||
|
|
9d0bb7df0e | ||
|
|
a1d0c3ba5b | ||
| 409fc0df96 | |||
| 7533bc821a | |||
|
|
ca520c7291 | ||
| 0a3bdb2720 | |||
| 1eb3b7d066 | |||
| bc3cb5b115 | |||
| c9f519d7ec | |||
| aabb53c6d2 | |||
|
|
0fe0c05e5c | ||
|
|
62349c0a54 | ||
|
|
cb08e11593 | ||
|
|
7eba632f1c | ||
| de37555db9 | |||
| 6102ec3be8 | |||
| aaea658e58 | |||
|
|
e704258c23 | ||
| ea153d17b7 | |||
| dce24e3849 | |||
| f112bab021 | |||
| 00ffb08e2e | |||
| 8b39eed7bb | |||
| 58e30eb297 | |||
| 07851ff7c8 | |||
|
|
17eb5832fe | ||
|
|
8b8b5c3e76 | ||
|
|
db761ceba8 | ||
| 58499d6837 | |||
| d2df27320f | |||
| f4c73a418b | |||
|
|
daf0a366ef | ||
| b36919e0b6 | |||
| 87d47fa0d9 | |||
| c7d4481a6d | |||
| 4b52d144e0 | |||
|
|
91b72fdf8f | ||
| 38184b8d1b | |||
| 90a1683047 | |||
|
|
f93991db96 | ||
|
|
bca3e1dd42 | ||
|
|
c7e22e4ca6 | ||
|
|
7386bd5750 | ||
|
|
5c8a521f8e | ||
|
|
22973fe47b | ||
|
|
48c83e648d | ||
| 36b60555f3 | |||
|
|
494b80c461 | ||
|
|
7cdb431d98 | ||
|
|
f7ae463544 | ||
|
|
1913147f89 | ||
|
|
77798eaccb | ||
|
|
f17c1f0d8e | ||
|
|
bd4f2d18f5 | ||
|
|
0bbed013d2 | ||
|
|
3455c8a786 | ||
|
|
9981116caa | ||
|
|
10e7400611 | ||
| 379126c513 | |||
| d078feccf9 | |||
| fb2d67c069 | |||
| d1ac8e49ba | |||
| c596bf78f4 | |||
| c6a7e0a0bd | |||
| d0fa1b2f58 | |||
| c10ae17f8c | |||
| e612150f1d | |||
| f3c391582c | |||
| c13ad3a8a7 | |||
|
|
2803c34591 | ||
| f76a12d45c | |||
| 2d5efb62be | |||
| ef3338c648 | |||
| fcf2b38457 | |||
|
|
82bb932cfc | ||
|
|
82c2b641fe | ||
| 7b71bd36b1 | |||
| bdc142d577 | |||
| 62900a22a1 | |||
|
|
23c99e60d5 | ||
| f7b9389f55 | |||
| 1c2ff03c90 | |||
| e6977b29fc | |||
| 6e902011ca | |||
| 7cce903f6e | |||
| 4d6077c93d | |||
| 83c1985ad9 | |||
| e0c247d07b | |||
| 1a3558df52 | |||
| c36e81e263 | |||
|
|
490393acbc | ||
| d3cd7e5b3c | |||
| 818d88d859 | |||
| 1a70569a36 | |||
| 8d24339f04 | |||
| bea858d4e7 | |||
|
|
c6874b33cf | ||
|
|
596e21b712 | ||
|
|
e9c3176dfc | ||
|
|
4a956a1397 | ||
|
|
fc3053dd17 | ||
|
|
bb79380ce5 | ||
|
|
849369fea3 | ||
|
|
283f66ab32 | ||
|
|
abf00884a4 | ||
|
|
50718eda93 | ||
|
|
a3dc27f08e | ||
|
|
055ce2b2a7 | ||
|
|
8171e06965 | ||
|
|
bfa8688c38 | ||
|
|
66c903045f | ||
|
|
b245023dd2 | ||
|
|
8044d64d5e | ||
|
|
1ef86d5e9c |
27
.github/workflows/dotnet-developPublish.yml
vendored
27
.github/workflows/dotnet-developPublish.yml
vendored
@@ -5,6 +5,8 @@ on:
|
|||||||
branches:
|
branches:
|
||||||
- Main
|
- Main
|
||||||
|
|
||||||
|
env:
|
||||||
|
DOTNET_ENVIRONMENT: Development
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-and-deploy:
|
build-and-deploy:
|
||||||
@@ -17,29 +19,36 @@ jobs:
|
|||||||
- name: Setup .NET SDK
|
- name: Setup .NET SDK
|
||||||
uses: actions/setup-dotnet@v4
|
uses: actions/setup-dotnet@v4
|
||||||
with:
|
with:
|
||||||
dotnet-version: '8.0.x' # یا نسخه پروژهت
|
dotnet-version: '10.0.x'
|
||||||
|
|
||||||
- name: Restore dependencies
|
- name: Restore dependencies
|
||||||
run: dotnet restore
|
run: dotnet restore ServiceHost/ServiceHost.csproj
|
||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
run: dotnet build --configuration Release
|
run: dotnet build ServiceHost/ServiceHost.csproj --configuration Release
|
||||||
|
|
||||||
- name: Publish
|
- name: Publish
|
||||||
run: dotnet publish --configuration Release --output ./publish /p:EnvironmentName=Development --no-build
|
run: dotnet publish ServiceHost/ServiceHost.csproj --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
|
shell: powershell
|
||||||
run: |
|
run: |
|
||||||
$publishFolder = Resolve-Path ./publish
|
$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" `
|
& "C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" `
|
||||||
-verb:sync `
|
-verb:sync `
|
||||||
-source:contentPath="$publishFolder" `
|
-source:contentPath="$publishFolder" `
|
||||||
-dest:contentPath="dadmehrg",computerName="https://$env:SERVER_HOST:8172/msdeploy.axd?site=gozareshgir",userName="$env:DEPLOY_USER",password="$env:DEPLOY_PASSWORD",authType="Basic" `
|
-dest:contentPath="dadmehrg",computerName="https://${server}:8172/msdeploy.axd?site=dadmehrg",userName="$user",password="$pass",authType="Basic" `
|
||||||
-allowUntrusted `
|
-allowUntrusted `
|
||||||
-enableRule:AppOffline
|
-enableRule:AppOffline
|
||||||
|
-disableRule:DeleteRule `
|
||||||
|
-useChecksum `
|
||||||
|
-retryAttempts:3 `
|
||||||
|
-retryInterval:2000
|
||||||
|
|
||||||
env:
|
env:
|
||||||
SERVER_HOST: 171.22.24.15
|
SERVER_HOST: ${{ secrets.DEV_HOST }}
|
||||||
DEPLOY_USER: ${{ secrets.DEPLOY_USER }}
|
DEPLOY_USER: ${{ secrets.DEV_USER }}
|
||||||
DEPLOY_PASSWORD: ${{ secrets.DEPLOY_PASSWORD }}
|
DEPLOY_PASSWORD: ${{ secrets.DEV_PASS }}
|
||||||
|
|||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -364,6 +364,7 @@ MigrationBackup/
|
|||||||
.idea
|
.idea
|
||||||
/ServiceHost/appsettings.Development.json
|
/ServiceHost/appsettings.Development.json
|
||||||
/ServiceHost/appsettings.json
|
/ServiceHost/appsettings.json
|
||||||
|
/ServiceHost/web.config
|
||||||
|
|
||||||
# Storage folder - ignore all uploaded files, thumbnails, and temporary files
|
# Storage folder - ignore all uploaded files, thumbnails, and temporary files
|
||||||
ServiceHost/Storage
|
ServiceHost/Storage
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
<PackageReference Include="MD.PersianDateTime.Standard" Version="2.6.0" />
|
<PackageReference Include="MD.PersianDateTime.Standard" Version="2.6.0" />
|
||||||
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="10.0.1" />
|
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="10.0.1" />
|
||||||
<PackageReference Include="System.Security.Cryptography.Xml" Version="10.0.1" />
|
<PackageReference Include="System.Security.Cryptography.Xml" Version="10.0.1" />
|
||||||
|
<!--<PackageReference Include="DNTPersianUtils.Core" Version="6.7.1" />-->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
237
0_Framework/Application/ClassificationRangeOfGroupRate.cs
Normal file
237
0_Framework/Application/ClassificationRangeOfGroupRate.cs
Normal file
@@ -0,0 +1,237 @@
|
|||||||
|
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; }
|
||||||
|
}
|
||||||
14
0_Framework/Application/Enums/TypeOfCoefficient.cs
Normal file
14
0_Framework/Application/Enums/TypeOfCoefficient.cs
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
namespace _0_Framework.Application.Enums;
|
||||||
|
|
||||||
|
public enum TypeOfCoefficient
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// ضریب ریالی طرح
|
||||||
|
/// </summary>
|
||||||
|
RialCoefficient,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ضریب ریالی اداره کار
|
||||||
|
/// </summary>
|
||||||
|
JobOrganization,
|
||||||
|
}
|
||||||
@@ -7,7 +7,7 @@ namespace _0_Framework.Application;
|
|||||||
public class PagedResult<T> where T : class
|
public class PagedResult<T> where T : class
|
||||||
{
|
{
|
||||||
public int TotalCount { get; set; }
|
public int TotalCount { get; set; }
|
||||||
public List<T> List { get; set; }
|
public List<T> List { get; set; } = [];
|
||||||
}
|
}
|
||||||
public class PagedResult<T,TMeta>:PagedResult<T> where T : class
|
public class PagedResult<T,TMeta>:PagedResult<T> where T : class
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -33,6 +33,35 @@ public static class Tools
|
|||||||
public static string[] DayNames = { "شنبه", "یکشنبه", "دو شنبه", "سه شنبه", "چهار شنبه", "پنج شنبه", "جمعه" };
|
public static string[] DayNames = { "شنبه", "یکشنبه", "دو شنبه", "سه شنبه", "چهار شنبه", "پنج شنبه", "جمعه" };
|
||||||
public static string[] DayNamesG = { "یکشنبه", "دو شنبه", "سه شنبه", "چهار شنبه", "پنج شنبه", "جمعه", "شنبه" };
|
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)
|
public static bool IsMobileValid(this string mobileNo)
|
||||||
{
|
{
|
||||||
@@ -41,6 +70,33 @@ public static class Tools
|
|||||||
return Regex.IsMatch(mobileNo, "^((09))(\\d{9})$");
|
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>
|
||||||
/// تاریخ شروع و تعداد ماه را میگیرد و تاریخ پایان قراردا را بر میگرداند
|
/// تاریخ شروع و تعداد ماه را میگیرد و تاریخ پایان قراردا را بر میگرداند
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -445,6 +501,30 @@ public static class Tools
|
|||||||
|
|
||||||
return myMoney.ToString("N0", CultureInfo.CreateSpecificCulture("fa-ir"));
|
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)
|
public static string ToMoneyNullable(this double? myMoney)
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -626,7 +706,115 @@ public static class Tools
|
|||||||
return y2;
|
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>
|
/// <summary>
|
||||||
/// تعداد روزهای سال را برمیگرداند
|
/// تعداد روزهای سال را برمیگرداند
|
||||||
/// اگر کبیسهد بود سال 366 روزه برمیگرداند
|
/// اگر کبیسهد بود سال 366 روزه برمیگرداند
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ public interface IRepository<TKey, T> where T:class
|
|||||||
{
|
{
|
||||||
T Get(TKey id);
|
T Get(TKey id);
|
||||||
List<T> Get();
|
List<T> Get();
|
||||||
|
Task<List<T>> GetListByIdList(List<TKey> ids);
|
||||||
void Create(T entity);
|
void Create(T entity);
|
||||||
Task CreateAsync(T entity);
|
Task CreateAsync(T entity);
|
||||||
bool ExistsIgnoreQueryFilter(Expression<Func<T, bool>> expression);
|
bool ExistsIgnoreQueryFilter(Expression<Func<T, bool>> expression);
|
||||||
|
|||||||
@@ -53,6 +53,11 @@ namespace _0_Framework.InfraStructure
|
|||||||
{
|
{
|
||||||
return _context.Set<T>().ToList();
|
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)
|
public void Remove(T entity)
|
||||||
{
|
{
|
||||||
_context.Set<T>().Remove(entity);
|
_context.Set<T>().Remove(entity);
|
||||||
|
|||||||
@@ -8,5 +8,6 @@ namespace Company.Domain.BankAgg
|
|||||||
{
|
{
|
||||||
public void Remove(Bank entity);
|
public void Remove(Bank entity);
|
||||||
List<BankViewModel> Search(string name);
|
List<BankViewModel> Search(string name);
|
||||||
|
List<BankSelectList> GetBanksForSelectList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
using System;
|
using _0_Framework.Application;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using _0_Framework.Application;
|
|
||||||
using _0_Framework.Domain;
|
using _0_Framework.Domain;
|
||||||
using CompanyManagment.App.Contracts.Checkout;
|
using CompanyManagment.App.Contracts.Checkout;
|
||||||
|
using CompanyManagment.App.Contracts.Checkout.Dto;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
|
||||||
namespace Company.Domain.CheckoutAgg;
|
namespace Company.Domain.CheckoutAgg;
|
||||||
@@ -22,7 +23,7 @@ public interface ICheckoutRepository : IRepository<long, Checkout>
|
|||||||
string year, string month);
|
string year, string month);
|
||||||
EditCheckout GetDetails(long id);
|
EditCheckout GetDetails(long id);
|
||||||
|
|
||||||
Task CreateCkeckout(Checkout command);
|
Task<bool> CreateCheckout(Checkout command);
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// لود لیست اولیه جهت ایجاد فیش حقوقی
|
/// لود لیست اولیه جهت ایجاد فیش حقوقی
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -80,4 +81,44 @@ public interface ICheckoutRepository : IRepository<long, Checkout>
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
Task<Checkout> GetByWorkshopIdEmployeeIdInDate(long workshopId, long employeeId, DateTime inDate);
|
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
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,93 @@
|
|||||||
|
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;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
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; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
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; }
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,82 @@
|
|||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,68 @@
|
|||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,88 @@
|
|||||||
|
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;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
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);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,89 @@
|
|||||||
|
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);
|
||||||
|
}
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
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
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
using _0_Framework.Domain;
|
||||||
|
|
||||||
|
namespace Company.Domain.ClassificationSchemeAgg;
|
||||||
|
|
||||||
|
public interface IClassificationRialCoefficientRepository : IRepository<long, ClassificationRialCoefficient>
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
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);
|
||||||
|
}
|
||||||
@@ -54,6 +54,7 @@ public interface IEmployeeRepository : IRepository<long, Employee>
|
|||||||
|
|
||||||
Employee GetIgnoreQueryFilter(long id);
|
Employee GetIgnoreQueryFilter(long id);
|
||||||
|
|
||||||
|
[Obsolete("این متد منسوخ شده است و از متد WorkedEmployeesInWorkshopSelectList استفاده کنید")]
|
||||||
Task<List<EmployeeSelectListViewModel>> WorkedEmployeesInWorkshopSelectList(long workshopId);
|
Task<List<EmployeeSelectListViewModel>> WorkedEmployeesInWorkshopSelectList(long workshopId);
|
||||||
|
|
||||||
|
|
||||||
@@ -77,6 +78,38 @@ public interface IEmployeeRepository : IRepository<long, Employee>
|
|||||||
Task<List<EmployeeSelectListViewModel>> GetSelectList(string searchText,long id);
|
Task<List<EmployeeSelectListViewModel>> GetSelectList(string searchText,long id);
|
||||||
Task<List<GetEmployeeListViewModel>> GetList(GetEmployeeListSearchModel searchModel);
|
Task<List<GetEmployeeListViewModel>> GetList(GetEmployeeListSearchModel searchModel);
|
||||||
Task<List<GetClientEmployeeListViewModel>> GetClientEmployeeList(GetClientEmployeeListSearchModel searchModel, long workshopId);
|
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
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,11 @@
|
|||||||
|
|
||||||
|
using System;
|
||||||
using _0_Framework.Domain;
|
using _0_Framework.Domain;
|
||||||
using CompanyManagment.App.Contracts.EmployeeBankInformation;
|
using CompanyManagment.App.Contracts.EmployeeBankInformation;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Security.AccessControl;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using CompanyManagment.App.Contracts.Workshop;
|
||||||
|
|
||||||
namespace Company.Domain.EmployeeBankInformationAgg
|
namespace Company.Domain.EmployeeBankInformationAgg
|
||||||
{
|
{
|
||||||
@@ -11,14 +15,31 @@ namespace Company.Domain.EmployeeBankInformationAgg
|
|||||||
void Remove(EmployeeBankInformation bankInformation);
|
void Remove(EmployeeBankInformation bankInformation);
|
||||||
void RemoveRange(List<EmployeeBankInformation> entities);
|
void RemoveRange(List<EmployeeBankInformation> entities);
|
||||||
|
|
||||||
|
[Obsolete("از متد async استفاده کنید")]
|
||||||
List<GroupedEmployeeBankInformationViewModel> Search(long workshopId, EmployeeBankInformationSearchModel searchParams);
|
List<GroupedEmployeeBankInformationViewModel> Search(long workshopId, EmployeeBankInformationSearchModel searchParams);
|
||||||
|
|
||||||
|
Task<List<GroupedEmployeeBankInformationViewModel>> SearchAsync(long workshopId,
|
||||||
|
EmployeeBankInformationSearchModel searchParams);
|
||||||
|
|
||||||
|
|
||||||
GroupedEmployeeBankInformationViewModel GetByEmployeeId(long workshopId, long employeeId);
|
GroupedEmployeeBankInformationViewModel GetByEmployeeId(long workshopId, long employeeId);
|
||||||
List<EmployeeBankInformation> GetRangeByEmployeeId(long workshopId, long employeeId);
|
List<EmployeeBankInformation> GetRangeByEmployeeId(long workshopId, long employeeId);
|
||||||
EmployeeBankInformationViewModel GetDetails(long id);
|
EmployeeBankInformationViewModel GetDetails(long id);
|
||||||
List<GroupedEmployeeBankInformationViewModel> GetAllByWorkshopId(long workshopId);
|
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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ using _0_Framework.Application.Enums;
|
|||||||
using _0_Framework.Domain;
|
using _0_Framework.Domain;
|
||||||
using CompanyManagment.App.Contracts.InstitutionContract;
|
using CompanyManagment.App.Contracts.InstitutionContract;
|
||||||
using CompanyManagment.App.Contracts.Workshop;
|
using CompanyManagment.App.Contracts.Workshop;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
|
||||||
|
|
||||||
namespace Company.Domain.InstitutionContractAgg;
|
namespace Company.Domain.InstitutionContractAgg;
|
||||||
|
|
||||||
@@ -89,6 +88,9 @@ public interface IInstitutionContractRepository : IRepository<long, InstitutionC
|
|||||||
|
|
||||||
Task<List<InstitutionContractSelectListViewModel>> GetInstitutionContractSelectList(string search, string selected);
|
Task<List<InstitutionContractSelectListViewModel>> GetInstitutionContractSelectList(string search, string selected);
|
||||||
Task<List<InstitutionContractPrintViewModel>> PrintAllAsync(List<long> ids);
|
Task<List<InstitutionContractPrintViewModel>> PrintAllAsync(List<long> ids);
|
||||||
|
Task<GetInstitutionContractWorkshopsDetails> GetContractWorkshopsDetails(long id);
|
||||||
|
Task AmendmentComplete(InstitutionContractAmendmentCompleteRequest request);
|
||||||
|
Task<GetInstitutionAmendmentVerificationDetailsViewModel> GetAmendmentVerificationDetails(Guid id, long amendmentId);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -275,6 +275,11 @@ public class InstitutionContract : EntityBase
|
|||||||
{
|
{
|
||||||
SigningType = signingType;
|
SigningType = signingType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void AddAmendment(InstitutionContractAmendment amendment)
|
||||||
|
{
|
||||||
|
Amendments.Add(amendment);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class InstitutionContractAmendment : EntityBase
|
public class InstitutionContractAmendment : EntityBase
|
||||||
@@ -282,14 +287,15 @@ public class InstitutionContractAmendment : EntityBase
|
|||||||
private InstitutionContractAmendment(){}
|
private InstitutionContractAmendment(){}
|
||||||
public InstitutionContractAmendment(long institutionContractId,
|
public InstitutionContractAmendment(long institutionContractId,
|
||||||
List<InstitutionContractInstallment> installments, double amount, bool hasInstallment,
|
List<InstitutionContractInstallment> installments, double amount, bool hasInstallment,
|
||||||
InstitutionContractAmendmentChange amendmentChange, long lawId)
|
List<InstitutionContractAmendmentChange> amendmentChanges, long lawId)
|
||||||
{
|
{
|
||||||
InstitutionContractId = institutionContractId;
|
InstitutionContractId = institutionContractId;
|
||||||
Installments = installments is { Count: > 0} ? installments : [];
|
Installments = installments is { Count: > 0} ? installments : [];
|
||||||
Amount = amount;
|
Amount = amount;
|
||||||
HasInstallment = hasInstallment;
|
HasInstallment = hasInstallment;
|
||||||
AmendmentChanges = [amendmentChange];
|
AmendmentChanges = amendmentChanges;
|
||||||
LawId = lawId;
|
LawId = lawId;
|
||||||
|
VerificationStatus = InstitutionContractVerificationStatus.PendingForVerify;
|
||||||
}
|
}
|
||||||
|
|
||||||
public long InstitutionContractId { get; set; }
|
public long InstitutionContractId { get; set; }
|
||||||
@@ -303,6 +309,15 @@ public class InstitutionContractAmendment : EntityBase
|
|||||||
|
|
||||||
public long LawId { get; set; }
|
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)
|
public void SetVerifyCode(string code,string verifierFullName, string verifierPhoneNumber)
|
||||||
{
|
{
|
||||||
VerifyCode = code;
|
VerifyCode = code;
|
||||||
@@ -310,25 +325,22 @@ public class InstitutionContractAmendment : EntityBase
|
|||||||
VerifierFullName = verifierFullName;
|
VerifierFullName = verifierFullName;
|
||||||
VerifierPhoneNumber = verifierPhoneNumber;
|
VerifierPhoneNumber = verifierPhoneNumber;
|
||||||
}
|
}
|
||||||
|
public void Verified()
|
||||||
public string VerifierPhoneNumber { get; private set; }
|
{
|
||||||
|
VerificationStatus = InstitutionContractVerificationStatus.Verified;
|
||||||
public string VerifierFullName { get; private set; }
|
}
|
||||||
|
|
||||||
public DateTime VerifyCodeCreation { get; set; }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public class InstitutionContractAmendmentChange : EntityBase
|
public class InstitutionContractAmendmentChange : EntityBase
|
||||||
{
|
{
|
||||||
private InstitutionContractAmendmentChange() { }
|
private InstitutionContractAmendmentChange() { }
|
||||||
private InstitutionContractAmendmentChange(long institutionContractAmendmentId,
|
|
||||||
InstitutionContractAmendment institutionContractAmendment, InstitutionContractAmendmentChangeType changeType,
|
private InstitutionContractAmendmentChange(InstitutionContractAmendmentChangeType changeType,
|
||||||
DateTime changeDateGr, bool? hasRollCallPlan, bool? hasCustomizeCheckoutPlan, bool? hasContractPlan,
|
DateTime changeDateGr, bool? hasCustomizeCheckoutPlan, bool? hasContractPlan,
|
||||||
bool? hasContractPlanInPerson, bool? hasInsurancePlan, bool? hasInsurancePlanInPerson, int? personnelCount,
|
bool? hasContractPlanInPerson, bool? hasInsurancePlan, bool? hasInsurancePlanInPerson, int? personnelCount,
|
||||||
long? workshopDetailsId)
|
bool? hasRollCallPlan, bool? hasRollCallInPerson,
|
||||||
|
long? currentWorkshopId, int personnelCountDifference)
|
||||||
{
|
{
|
||||||
InstitutionContractAmendmentId = institutionContractAmendmentId;
|
|
||||||
InstitutionContractAmendment = institutionContractAmendment;
|
|
||||||
ChangeType = changeType;
|
ChangeType = changeType;
|
||||||
ChangeDateGr = changeDateGr;
|
ChangeDateGr = changeDateGr;
|
||||||
HasRollCallPlan = hasRollCallPlan;
|
HasRollCallPlan = hasRollCallPlan;
|
||||||
@@ -338,9 +350,80 @@ public class InstitutionContractAmendmentChange : EntityBase
|
|||||||
HasInsurancePlan = hasInsurancePlan;
|
HasInsurancePlan = hasInsurancePlan;
|
||||||
HasInsurancePlanInPerson = hasInsurancePlanInPerson;
|
HasInsurancePlanInPerson = hasInsurancePlanInPerson;
|
||||||
PersonnelCount = personnelCount;
|
PersonnelCount = personnelCount;
|
||||||
WorkshopDetailsId = workshopDetailsId;
|
PersonnelCountDifference = personnelCountDifference;
|
||||||
|
CurrentWorkshopId = currentWorkshopId;
|
||||||
|
HasRollCallInPerson = hasRollCallInPerson;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <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 long InstitutionContractAmendmentId { get; private set; }
|
||||||
public InstitutionContractAmendment InstitutionContractAmendment { get; private set; }
|
public InstitutionContractAmendment InstitutionContractAmendment { get; private set; }
|
||||||
public InstitutionContractAmendmentChangeType ChangeType { get; private set; }
|
public InstitutionContractAmendmentChangeType ChangeType { get; private set; }
|
||||||
@@ -351,6 +434,8 @@ public class InstitutionContractAmendmentChange : EntityBase
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public bool? HasRollCallPlan { get; private set; }
|
public bool? HasRollCallPlan { get; private set; }
|
||||||
|
|
||||||
|
public bool? HasRollCallInPerson { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// پلن فیش غیر رسمی
|
/// پلن فیش غیر رسمی
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -381,10 +466,16 @@ public class InstitutionContractAmendmentChange : EntityBase
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public int? PersonnelCount { get; private set; }
|
public int? PersonnelCount { get; private set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// مقدار تغییرات تعداد پرسنل
|
||||||
|
/// </summary>
|
||||||
|
public int PersonnelCountDifference { get; set; }
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// تعداد کارگاه
|
/// تعداد کارگاه
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public long? WorkshopDetailsId { get; private set; }
|
public long? CurrentWorkshopId { get; private set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum InstitutionContractAmendmentChangeType
|
public enum InstitutionContractAmendmentChangeType
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ public class InstitutionContractWorkshopBase:EntityBase
|
|||||||
protected InstitutionContractWorkshopBase(){}
|
protected InstitutionContractWorkshopBase(){}
|
||||||
public InstitutionContractWorkshopBase(string workshopName, bool hasRollCallPlan,bool hasRollCallPlanInPerson,
|
public InstitutionContractWorkshopBase(string workshopName, bool hasRollCallPlan,bool hasRollCallPlanInPerson,
|
||||||
bool hasCustomizeCheckoutPlan, bool hasContractPlan,bool hasContractPlanInPerson,bool hasInsurancePlan,bool hasInsurancePlanInPerson,
|
bool hasCustomizeCheckoutPlan, bool hasContractPlan,bool hasContractPlanInPerson,bool hasInsurancePlan,bool hasInsurancePlanInPerson,
|
||||||
int personnelCount, double price )
|
int personnelCount, double price,bool isAmendment )
|
||||||
{
|
{
|
||||||
WorkshopName = workshopName;
|
WorkshopName = workshopName;
|
||||||
Services = new WorkshopServices(hasInsurancePlan, hasInsurancePlanInPerson,
|
Services = new WorkshopServices(hasInsurancePlan, hasInsurancePlanInPerson,
|
||||||
@@ -17,7 +17,10 @@ public class InstitutionContractWorkshopBase:EntityBase
|
|||||||
PersonnelCount = personnelCount;
|
PersonnelCount = personnelCount;
|
||||||
Price = price;
|
Price = price;
|
||||||
Employers = [];
|
Employers = [];
|
||||||
|
IsAmendment = isAmendment;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// شناسه کارگاه
|
/// شناسه کارگاه
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -43,6 +46,10 @@ public class InstitutionContractWorkshopBase:EntityBase
|
|||||||
|
|
||||||
public double Price { get; private set; }
|
public double Price { get; private set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// جهت نمایش دادن اینکه آیا این کارگاه مربوط به ارتقا قرارداد است یا خیر
|
||||||
|
/// </summary>
|
||||||
|
public bool IsAmendment { get; set; }
|
||||||
|
|
||||||
public List<InstitutionContractWorkshopDetailEmployer> Employers { get; private set; } = new();
|
public List<InstitutionContractWorkshopDetailEmployer> Employers { get; private set; } = new();
|
||||||
|
|
||||||
|
|||||||
@@ -11,9 +11,9 @@ public class InstitutionContractWorkshopCurrent:InstitutionContractWorkshopBase
|
|||||||
bool hasRollCallPlanInPerson, bool hasCustomizeCheckoutPlan, bool hasContractPlan,
|
bool hasRollCallPlanInPerson, bool hasCustomizeCheckoutPlan, bool hasContractPlan,
|
||||||
bool hasContractPlanInPerson, bool hasInsurancePlan, bool hasInsurancePlanInPerson,
|
bool hasContractPlanInPerson, bool hasInsurancePlan, bool hasInsurancePlanInPerson,
|
||||||
int personnelCount, double price,long institutionContractWorkshopGroupId,
|
int personnelCount, double price,long institutionContractWorkshopGroupId,
|
||||||
InstitutionContractWorkshopGroup workshopGroup,long workshopId,long initialWorkshopId) : base(workshopName, hasRollCallPlan,
|
InstitutionContractWorkshopGroup workshopGroup,long workshopId,bool isAmendment, long initialWorkshopId) : base(workshopName, hasRollCallPlan,
|
||||||
hasRollCallPlanInPerson, hasCustomizeCheckoutPlan, hasContractPlan,
|
hasRollCallPlanInPerson, hasCustomizeCheckoutPlan, hasContractPlan,
|
||||||
hasContractPlanInPerson, hasInsurancePlan, hasInsurancePlanInPerson, personnelCount, price)
|
hasContractPlanInPerson, hasInsurancePlan, hasInsurancePlanInPerson, personnelCount, price,isAmendment)
|
||||||
{
|
{
|
||||||
InstitutionContractWorkshopGroupId = institutionContractWorkshopGroupId;
|
InstitutionContractWorkshopGroupId = institutionContractWorkshopGroupId;
|
||||||
WorkshopGroup = workshopGroup;
|
WorkshopGroup = workshopGroup;
|
||||||
|
|||||||
@@ -34,6 +34,13 @@ public class InstitutionContractWorkshopGroup : EntityBase
|
|||||||
LastModifiedDate = DateTime.Now;
|
LastModifiedDate = DateTime.Now;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void AddAmendmentWorkshops(List<InstitutionContractWorkshopInitial> amendmentDetails)
|
||||||
|
{
|
||||||
|
InitialWorkshops.AddRange(amendmentDetails);
|
||||||
|
LastModifiedDate = DateTime.Now;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public void UpdateCurrentWorkshops(List<InstitutionContractWorkshopCurrent> updatedDetails)
|
public void UpdateCurrentWorkshops(List<InstitutionContractWorkshopCurrent> updatedDetails)
|
||||||
{
|
{
|
||||||
CurrentWorkshops = updatedDetails.ToList();
|
CurrentWorkshops = updatedDetails.ToList();
|
||||||
|
|||||||
@@ -11,9 +11,9 @@ public class InstitutionContractWorkshopInitial:InstitutionContractWorkshopBase
|
|||||||
public InstitutionContractWorkshopInitial(string workshopName, bool hasRollCallPlan,
|
public InstitutionContractWorkshopInitial(string workshopName, bool hasRollCallPlan,
|
||||||
bool hasRollCallPlanInPerson, bool hasCustomizeCheckoutPlan, bool hasContractPlan,
|
bool hasRollCallPlanInPerson, bool hasCustomizeCheckoutPlan, bool hasContractPlan,
|
||||||
bool hasContractPlanInPerson, bool hasInsurancePlan, bool hasInsurancePlanInPerson,
|
bool hasContractPlanInPerson, bool hasInsurancePlan, bool hasInsurancePlanInPerson,
|
||||||
int personnelCount, double price) : base(workshopName, hasRollCallPlan,
|
int personnelCount, double price,bool isAmendment =false) : base(workshopName, hasRollCallPlan,
|
||||||
hasRollCallPlanInPerson, hasCustomizeCheckoutPlan, hasContractPlan, hasContractPlanInPerson,
|
hasRollCallPlanInPerson, hasCustomizeCheckoutPlan, hasContractPlan, hasContractPlanInPerson,
|
||||||
hasInsurancePlan, hasInsurancePlanInPerson, personnelCount, price)
|
hasInsurancePlan, hasInsurancePlanInPerson, personnelCount, price,isAmendment)
|
||||||
{
|
{
|
||||||
WorkshopCreated = false;
|
WorkshopCreated = false;
|
||||||
}
|
}
|
||||||
@@ -31,7 +31,8 @@ public class InstitutionContractWorkshopInitial:InstitutionContractWorkshopBase
|
|||||||
WorkshopCreated = true;
|
WorkshopCreated = true;
|
||||||
WorkshopCurrent = new InstitutionContractWorkshopCurrent(WorkshopName,Services.RollCall,Services.RollCallInPerson,
|
WorkshopCurrent = new InstitutionContractWorkshopCurrent(WorkshopName,Services.RollCall,Services.RollCallInPerson,
|
||||||
Services.CustomizeCheckout,Services.Contract,Services.ContractInPerson,Services.Insurance,
|
Services.CustomizeCheckout,Services.Contract,Services.ContractInPerson,Services.Insurance,
|
||||||
Services.InsuranceInPerson,PersonnelCount,Price,InstitutionContractWorkshopGroupId,WorkshopGroup,workshopId,id);
|
Services.InsuranceInPerson,PersonnelCount,Price,InstitutionContractWorkshopGroupId,WorkshopGroup,workshopId,
|
||||||
|
IsAmendment, id);
|
||||||
WorkshopCurrent.SetEmployers(Employers.Select(x=>x.EmployerId).ToList());
|
WorkshopCurrent.SetEmployers(Employers.Select(x=>x.EmployerId).ToList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using CompanyManagment.App.Contracts.InstitutionContract;
|
||||||
using MongoDB.Bson;
|
using MongoDB.Bson;
|
||||||
using MongoDB.Bson.Serialization.Attributes;
|
using MongoDB.Bson.Serialization.Attributes;
|
||||||
|
|
||||||
@@ -16,7 +17,7 @@ public class InstitutionContractAmendmentTemp
|
|||||||
NewWorkshops = prevWorkshops.Select(x=> new InstitutionContractAmendmentTempNewWorkshop(
|
NewWorkshops = prevWorkshops.Select(x=> new InstitutionContractAmendmentTempNewWorkshop(
|
||||||
x.WorkshopName, x.CountPerson, x.ContractAndCheckout, x.ContractAndCheckoutInPerson, x.Insurance,
|
x.WorkshopName, x.CountPerson, x.ContractAndCheckout, x.ContractAndCheckoutInPerson, x.Insurance,
|
||||||
x.InsuranceInPerson, x.RollCall, x.RollCallInPerson, x.CustomizeCheckout, x.Price, x.WorkshopId,
|
x.InsuranceInPerson, x.RollCall, x.RollCallInPerson, x.CustomizeCheckout, x.Price, x.WorkshopId,
|
||||||
x.CurrentWorkshopId, 0)).ToList();
|
x.CurrentWorkshopId, 0,x.Id)).ToList();
|
||||||
InstitutionContractId = institutionContractId;
|
InstitutionContractId = institutionContractId;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -25,17 +26,32 @@ public class InstitutionContractAmendmentTemp
|
|||||||
public Guid Id { get; private set; }
|
public Guid Id { get; private set; }
|
||||||
public List<InstitutionContractAmendmentTempPrevWorkshop> PrevWorkshops { get; private set; }
|
public List<InstitutionContractAmendmentTempPrevWorkshop> PrevWorkshops { get; private set; }
|
||||||
public List<InstitutionContractAmendmentTempNewWorkshop> NewWorkshops { 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 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 class InstitutionContractAmendmentTempNewWorkshop : InstitutionContractAmendmentTempPrevWorkshop
|
||||||
{
|
{
|
||||||
public InstitutionContractAmendmentTempNewWorkshop(string workshopName, int countPerson, bool contractAndCheckout,
|
public InstitutionContractAmendmentTempNewWorkshop(string workshopName, int countPerson, bool contractAndCheckout,
|
||||||
bool contractAndCheckoutInPerson, bool insurance, bool insuranceInPerson, bool rollCall, bool rollCallInPerson,
|
bool contractAndCheckoutInPerson, bool insurance, bool insuranceInPerson, bool rollCall, bool rollCallInPerson,
|
||||||
bool customizeCheckout, double price, long workshopId, long currentWorkshopId,double priceDifference) : base(
|
bool customizeCheckout, double price, long workshopId, long currentWorkshopId,double priceDifference,Guid prevId) : base(
|
||||||
workshopName, countPerson, contractAndCheckout, contractAndCheckoutInPerson, insurance, insuranceInPerson,
|
workshopName, countPerson, contractAndCheckout, contractAndCheckoutInPerson, insurance, insuranceInPerson,
|
||||||
rollCall, rollCallInPerson, customizeCheckout, price, workshopId, currentWorkshopId)
|
rollCall, rollCallInPerson, customizeCheckout, price, workshopId, currentWorkshopId)
|
||||||
{
|
{
|
||||||
|
Id = prevId;
|
||||||
PriceDifference = priceDifference;
|
PriceDifference = priceDifference;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,13 @@ public interface IJobRepository : IRepository<long, Job>
|
|||||||
EditJob GetDetails(long id);
|
EditJob GetDetails(long id);
|
||||||
List<JobViewModel> Search(JobSearchModel searchModel);
|
List<JobViewModel> Search(JobSearchModel searchModel);
|
||||||
List<JobViewModel> SearchJobForMain(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);
|
// Task<List<JobViewModel>> GetJobListByText(string searchtText);
|
||||||
List<JobViewModel> GetJobListByText(string searchtText);
|
List<JobViewModel> GetJobListByText(string searchtText);
|
||||||
List<JobViewModel> GetJobListByWorkshopId(long workshopId);
|
List<JobViewModel> GetJobListByWorkshopId(long workshopId);
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ namespace Company.Domain.RollCallAgg;
|
|||||||
|
|
||||||
public interface IRollCallMandatoryRepository : IRepository<long, RollCall>
|
public interface IRollCallMandatoryRepository : IRepository<long, RollCall>
|
||||||
{
|
{
|
||||||
ComputingViewModel MandatoryCompute(long employeeId, long workshopId, DateTime contractStart, DateTime contractEnd, CreateWorkingHoursTemp command, bool holidayWorking, bool isStaticCheckout, bool rotatingShiftCompute, double dailyWageUnAffected, bool totalLeaveCompute);
|
Task<ComputingViewModel> MandatoryCompute(long employeeId, long workshopId, DateTime contractStart, DateTime contractEnd, CreateWorkingHoursTemp command, bool holidayWorking, bool isStaticCheckout, bool rotatingShiftCompute, double dailyWageUnAffected, bool totalLeaveCompute);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// محاسبه ساعات کارکرد پرسنل در صورت داشتن حضور غیاب
|
/// محاسبه ساعات کارکرد پرسنل در صورت داشتن حضور غیاب
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ using System.Collections.Generic;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using _0_Framework.Application;
|
||||||
using _0_Framework.Domain;
|
using _0_Framework.Domain;
|
||||||
using CompanyManagment.App.Contracts.RollCall;
|
using CompanyManagment.App.Contracts.RollCall;
|
||||||
using CompanyManagment.App.Contracts.WorkingHoursTemp;
|
using CompanyManagment.App.Contracts.WorkingHoursTemp;
|
||||||
@@ -25,7 +26,7 @@ namespace Company.Domain.RollCallAgg
|
|||||||
DateTime endSearch);
|
DateTime endSearch);
|
||||||
void RemoveEmployeeRollCallsInDate(long workshopId, long employeeId, DateTime date);
|
void RemoveEmployeeRollCallsInDate(long workshopId, long employeeId, DateTime date);
|
||||||
RollCallsByDateViewModel GetWorkshopRollCallHistory(RollCallSearchModel searchModel);
|
RollCallsByDateViewModel GetWorkshopRollCallHistory(RollCallSearchModel searchModel);
|
||||||
CurrentDayRollCall GetWorkshopCurrentDayRollCalls(long workshopId);
|
CurrentDayRollCall GetWorkshopCurrentDayRollCalls(long workshopId,WorkshopCurrentDayRollCallSearchModel searchModel);
|
||||||
List<PersonnelCheckoutDailyRollCallViewModel> GetEmployeeRollCallsForMonth(IEnumerable<long> employeeIds,
|
List<PersonnelCheckoutDailyRollCallViewModel> GetEmployeeRollCallsForMonth(IEnumerable<long> employeeIds,
|
||||||
long workshopId, DateTime start, DateTime end);
|
long workshopId, DateTime start, DateTime end);
|
||||||
|
|
||||||
@@ -91,5 +92,9 @@ namespace Company.Domain.RollCallAgg
|
|||||||
Task<List<RollCall>> GetRollCallsUntilNowWithWorkshopIdEmployeeIds(long workshopId, List<long> employeeIds,
|
Task<List<RollCall>> GetRollCallsUntilNowWithWorkshopIdEmployeeIds(long workshopId, List<long> employeeIds,
|
||||||
DateTime fromDate);
|
DateTime fromDate);
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
Task<PagedResult<RollCallCaseHistoryTitleDto>> GetCaseHistoryTitles(long workshopId,RollCallCaseHistorySearchModel searchModel);
|
||||||
|
Task<List<RollCallCaseHistoryDetail>> GetCaseHistoryDetails(long workshopId,
|
||||||
|
string titleId, RollCallCaseHistorySearchModel searchModel);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Threading.Tasks;
|
||||||
using _0_Framework.Domain;
|
using _0_Framework.Domain;
|
||||||
using CompanyManagment.App.Contracts.RollCallEmployee;
|
using CompanyManagment.App.Contracts.RollCallEmployee;
|
||||||
|
|
||||||
@@ -7,7 +8,7 @@ namespace Company.Domain.RollCallEmployeeAgg;
|
|||||||
|
|
||||||
public interface IRollCallEmployeeRepository : IRepository<long, RollCallEmployee>
|
public interface IRollCallEmployeeRepository : IRepository<long, RollCallEmployee>
|
||||||
{
|
{
|
||||||
bool HasRollCallRecord(long employeeId, long workshopId, DateTime contractStart, DateTime contractEnd);
|
Task<bool> HasRollCallRecord(long employeeId, long workshopId, DateTime contractStart, DateTime contractEnd);
|
||||||
List<RollCallEmployeeViewModel> GetByWorkshopId(long workshopId);
|
List<RollCallEmployeeViewModel> GetByWorkshopId(long workshopId);
|
||||||
EditRollCallEmployee GetDetails(long id);
|
EditRollCallEmployee GetDetails(long id);
|
||||||
RollCallEmployeeViewModel GetByEmployeeIdAndWorkshopId(long employeeId, long workshopId);
|
RollCallEmployeeViewModel GetByEmployeeIdAndWorkshopId(long employeeId, long workshopId);
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ public interface ISalaryAidRepository:IRepository<long,SalaryAid>
|
|||||||
void RemoveRange(IEnumerable<SalaryAid> salaryAids);
|
void RemoveRange(IEnumerable<SalaryAid> salaryAids);
|
||||||
|
|
||||||
#region Pooya
|
#region Pooya
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// گروهبندی بر اساس ماه هنگام جستجو با انتخاب کارمند
|
/// گروهبندی بر اساس ماه هنگام جستجو با انتخاب کارمند
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -106,4 +106,14 @@ public interface IWorkshopRepository : IRepository<long, Workshop>
|
|||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
#region ForApi
|
||||||
|
/// <summary>
|
||||||
|
/// دریافت لیست کارگاه های ادمین برای سلکت تو
|
||||||
|
/// Api
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
Task<List<AdminWorkshopSelectListDto>> GetAdminWorkshopSelectList();
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
@@ -185,8 +185,17 @@ public class Workshop : EntityBase
|
|||||||
public bool AddLeavePay { get; private set; }
|
public bool AddLeavePay { get; private set; }
|
||||||
public string ZoneName { get; private set; }
|
public string ZoneName { get; private set; }
|
||||||
public bool TotalPaymentHide { get; private set; }
|
public bool TotalPaymentHide { get; private set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// آیا طبقه بندی شده است
|
||||||
|
/// [کارگاه دارای طرح طبقه بندی می باشد ؟]
|
||||||
|
/// </summary>
|
||||||
public bool IsClassified { get; private set; }
|
public bool IsClassified { get; private set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// آیا طرح طبقه بندی تکمیل شده است
|
||||||
|
/// </summary>
|
||||||
|
public bool IsClassificationSchemeCompleted { get; private set; }
|
||||||
|
|
||||||
//نحوه محاسبه مزد مرخصی
|
//نحوه محاسبه مزد مرخصی
|
||||||
public string ComputeOptions { get; private set; }
|
public string ComputeOptions { get; private set; }
|
||||||
|
|||||||
@@ -1,6 +1,12 @@
|
|||||||
using _0_Framework.Excel;
|
using _0_Framework.Excel;
|
||||||
|
using _0_Framework.Application;
|
||||||
|
using CompanyManagment.App.Contracts.RollCall;
|
||||||
using OfficeOpenXml;
|
using OfficeOpenXml;
|
||||||
using OfficeOpenXml.Drawing;
|
using OfficeOpenXml.Drawing;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
|
||||||
namespace CompanyManagement.Infrastructure.Excel.RollCall;
|
namespace CompanyManagement.Infrastructure.Excel.RollCall;
|
||||||
|
|
||||||
@@ -308,6 +314,111 @@ public class RollCallExcelGenerator : ExcelGenerator
|
|||||||
return package.GetAsByteArray();
|
return package.GetAsByteArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static byte[] CaseHistoryExcelForEmployee(List<RollCallCaseHistoryDetail> data, string titleId)
|
||||||
|
{
|
||||||
|
if (!Regex.IsMatch(titleId, @"^\d{4}_\d{2}$"))
|
||||||
|
throw new ArgumentException("Invalid titleId format.", nameof(titleId));
|
||||||
|
|
||||||
|
var splitDate = titleId.Split("_");
|
||||||
|
var year = Convert.ToInt32(splitDate.First());
|
||||||
|
var month = Convert.ToInt32(splitDate.Last());
|
||||||
|
|
||||||
|
var startDateFa = $"{year:D4}/{month:D2}/01";
|
||||||
|
var startDate = startDateFa.ToGeorgianDateTime();
|
||||||
|
var endDateFa = startDateFa.FindeEndOfMonth();
|
||||||
|
var endDate = endDateFa.ToGeorgianDateTime();
|
||||||
|
|
||||||
|
var dateRange = (int)(endDate.Date - startDate.Date).TotalDays + 1;
|
||||||
|
var dates = Enumerable.Range(0, dateRange).Select(x => startDate.AddDays(x)).ToList();
|
||||||
|
|
||||||
|
var safeData = data ?? new List<RollCallCaseHistoryDetail>();
|
||||||
|
var first = safeData.FirstOrDefault();
|
||||||
|
var totalWorkingTime = new TimeSpan(safeData.Sum(x => x.TotalWorkingTime.Ticks));
|
||||||
|
|
||||||
|
var viewModel = new CaseHistoryRollCallExcelForEmployeeViewModel
|
||||||
|
{
|
||||||
|
EmployeeId = first?.EmployeeId ?? 0,
|
||||||
|
DateGr = startDate,
|
||||||
|
PersonnelCode = first?.PersonnelCode,
|
||||||
|
EmployeeFullName = first?.EmployeeFullName,
|
||||||
|
PersianMonthName = month.ToFarsiMonthByIntNumber(),
|
||||||
|
PersianYear = year.ToString(),
|
||||||
|
TotalWorkingHoursFa = totalWorkingTime.ToFarsiHoursAndMinutes("-"),
|
||||||
|
TotalWorkingTimeSpan = $"{(int)totalWorkingTime.TotalHours}:{totalWorkingTime.Minutes:00}",
|
||||||
|
RollCalls = dates.Select((date, index) =>
|
||||||
|
{
|
||||||
|
var item = index < safeData.Count ? safeData[index] : null;
|
||||||
|
var records = item?.Records ?? new List<RollCallCaseHistoryDetailRecord>();
|
||||||
|
|
||||||
|
return new RollCallItemForEmployeeExcelViewModel
|
||||||
|
{
|
||||||
|
DateGr = date,
|
||||||
|
DateFa = date.ToFarsi(),
|
||||||
|
DayOfWeekFa = date.DayOfWeek.DayOfWeeKToPersian(),
|
||||||
|
PersonnelCode = item?.PersonnelCode,
|
||||||
|
EmployeeFullName = item?.EmployeeFullName,
|
||||||
|
IsAbsent = item?.Status == RollCallRecordStatus.Absent,
|
||||||
|
HasLeave = item?.Status == RollCallRecordStatus.Leaved,
|
||||||
|
IsHoliday = false,
|
||||||
|
TotalWorkingHours = (item?.TotalWorkingTime ?? TimeSpan.Zero).ToFarsiHoursAndMinutes("-"),
|
||||||
|
StartsItems = JoinRecords(records, r => r.StartTime),
|
||||||
|
EndsItems = JoinRecords(records, r => r.EndTime),
|
||||||
|
EnterTimeDifferences = JoinRecords(records, r => FormatSignedTimeSpan(r.EntryTimeDifference)),
|
||||||
|
ExitTimeDifferences = JoinRecords(records, r => FormatSignedTimeSpan(r.ExitTimeDifference))
|
||||||
|
};
|
||||||
|
}).ToList()
|
||||||
|
};
|
||||||
|
|
||||||
|
return CaseHistoryExcelForEmployee(viewModel);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static byte[] CaseHistoryExcelForOneDay(List<RollCallCaseHistoryDetail> data, string titleId)
|
||||||
|
{
|
||||||
|
if (!Regex.IsMatch(titleId, @"^\d{4}/\d{2}/\d{2}$"))
|
||||||
|
throw new ArgumentException("Invalid titleId format.", nameof(titleId));
|
||||||
|
|
||||||
|
var dateGr = titleId.ToGeorgianDateTime();
|
||||||
|
var safeData = data ?? new List<RollCallCaseHistoryDetail>();
|
||||||
|
|
||||||
|
var viewModel = new CaseHistoryRollCallForOneDayViewModel
|
||||||
|
{
|
||||||
|
DateFa = titleId,
|
||||||
|
DateGr = dateGr,
|
||||||
|
DayOfWeekFa = dateGr.DayOfWeek.DayOfWeeKToPersian(),
|
||||||
|
RollCalls = safeData.Select(item =>
|
||||||
|
{
|
||||||
|
var records = item.Records ?? new List<RollCallCaseHistoryDetailRecord>();
|
||||||
|
return new RollCallItemForOneDayExcelViewModel
|
||||||
|
{
|
||||||
|
EmployeeFullName = item.EmployeeFullName,
|
||||||
|
PersonnelCode = item.PersonnelCode,
|
||||||
|
StartsItems = JoinRecords(records, r => r.StartTime),
|
||||||
|
EndsItems = JoinRecords(records, r => r.EndTime),
|
||||||
|
TotalWorkingHours = item.TotalWorkingTime.ToFarsiHoursAndMinutes("-")
|
||||||
|
};
|
||||||
|
}).ToList()
|
||||||
|
};
|
||||||
|
|
||||||
|
return CaseHistoryExcelForOneDay(viewModel);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string JoinRecords(IEnumerable<RollCallCaseHistoryDetailRecord> records, Func<RollCallCaseHistoryDetailRecord, string> selector)
|
||||||
|
{
|
||||||
|
var safeRecords = records ?? Enumerable.Empty<RollCallCaseHistoryDetailRecord>();
|
||||||
|
var values = safeRecords.Select(selector).Where(x => !string.IsNullOrWhiteSpace(x)).ToList();
|
||||||
|
return values.Count == 0 ? string.Empty : string.Join(Environment.NewLine, values);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string FormatSignedTimeSpan(TimeSpan value)
|
||||||
|
{
|
||||||
|
if (value == TimeSpan.Zero)
|
||||||
|
return "-";
|
||||||
|
|
||||||
|
var abs = value.Duration();
|
||||||
|
var sign = value.Ticks < 0 ? "-" : "+";
|
||||||
|
return $"{(int)abs.TotalHours}:{abs.Minutes:00}{sign}";
|
||||||
|
}
|
||||||
|
|
||||||
private string CalculateExitMinuteDifference(TimeSpan early, TimeSpan late)
|
private string CalculateExitMinuteDifference(TimeSpan early, TimeSpan late)
|
||||||
{
|
{
|
||||||
if (early == TimeSpan.Zero && late == TimeSpan.Zero)
|
if (early == TimeSpan.Zero && late == TimeSpan.Zero)
|
||||||
|
|||||||
@@ -10,5 +10,12 @@ namespace CompanyManagment.App.Contracts.Bank
|
|||||||
OperationResult Create(CreateBank command);
|
OperationResult Create(CreateBank command);
|
||||||
OperationResult Edit(EditBank command);
|
OperationResult Edit(EditBank command);
|
||||||
List<BankViewModel> Search(string name);
|
List<BankViewModel> Search(string name);
|
||||||
|
List<BankSelectList> GetBanksForSelectList();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public class BankSelectList:SelectListViewModel
|
||||||
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
92
CompanyManagment.App.Contracts/Checkout/Dto/CheckoutDto.cs
Normal file
92
CompanyManagment.App.Contracts/Checkout/Dto/CheckoutDto.cs
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
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; }
|
||||||
|
|
||||||
|
}
|
||||||
247
CompanyManagment.App.Contracts/Checkout/Dto/CheckoutPrintDto.cs
Normal file
247
CompanyManagment.App.Contracts/Checkout/Dto/CheckoutPrintDto.cs
Normal file
@@ -0,0 +1,247 @@
|
|||||||
|
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; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
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; }
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
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; }
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
namespace CompanyManagment.App.Contracts.Checkout.Dto;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// وضعیت ایجاد فیش
|
||||||
|
/// </summary>
|
||||||
|
public enum CreateCheckoutStatus
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// آماده ایجاد
|
||||||
|
/// </summary>
|
||||||
|
ReadyToCreate,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// غیر مجاز
|
||||||
|
/// </summary>
|
||||||
|
NotValid,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// دارای فیش حقوقی
|
||||||
|
/// </summary>
|
||||||
|
HasCheckout,
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
namespace CompanyManagment.App.Contracts.Checkout.Dto;
|
||||||
|
|
||||||
|
public class EmployeeSelectListDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// آی دی پرسنل
|
||||||
|
/// </summary>
|
||||||
|
public long Id { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// نام پرسنل
|
||||||
|
/// </summary>
|
||||||
|
public string EmployeeFullName { get; set; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,210 @@
|
|||||||
|
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; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,75 @@
|
|||||||
|
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; }
|
||||||
|
}
|
||||||
@@ -1,9 +1,10 @@
|
|||||||
using System;
|
using _0_Framework.Application;
|
||||||
|
using CompanyManagment.App.Contracts.Checkout.Dto;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using _0_Framework.Application;
|
|
||||||
|
|
||||||
namespace CompanyManagment.App.Contracts.Checkout;
|
namespace CompanyManagment.App.Contracts.Checkout;
|
||||||
|
|
||||||
@@ -62,4 +63,108 @@ public interface ICheckoutApplication
|
|||||||
long workshopId, DateTime start, DateTime end);
|
long workshopId, DateTime start, DateTime end);
|
||||||
|
|
||||||
#endregion
|
#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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,84 @@
|
|||||||
|
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; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
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; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
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,
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,104 @@
|
|||||||
|
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; }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
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; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,204 @@
|
|||||||
|
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; }
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
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; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
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; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
namespace CompanyManagment.App.Contracts.ClassificationScheme;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ویرایش طرح
|
||||||
|
/// </summary>
|
||||||
|
public class EditClassificationScheme : CreateClassificationScheme
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// آی دی طرح
|
||||||
|
/// </summary>
|
||||||
|
public long Id { get; set; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
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; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,109 @@
|
|||||||
|
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; }
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,110 @@
|
|||||||
|
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; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
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; }
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,244 @@
|
|||||||
|
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
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
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; }
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -19,4 +19,6 @@ public class ContractSeparationViewModel
|
|||||||
public string ConsumableItems { get; set; }
|
public string ConsumableItems { get; set; }
|
||||||
public bool checker { get; set; }
|
public bool checker { get; set; }
|
||||||
public bool HasLeft { get; set; }
|
public bool HasLeft { get; set; }
|
||||||
|
|
||||||
|
public long EmployeeId { get; set; }
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
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; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,92 @@
|
|||||||
|
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; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
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; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
namespace CompanyManagment.App.Contracts.Employee.DTO;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// وضعیت پرسنل در کارگاه
|
||||||
|
/// api
|
||||||
|
/// </summary>
|
||||||
|
public enum EmployeeStatusInWorkshop
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// ایجاد شده توسط کارفرما
|
||||||
|
/// </summary>
|
||||||
|
CreatedByClient,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ترک کار موقت
|
||||||
|
/// </summary>
|
||||||
|
LefWorkTemp,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// در حال کار در کارگاه
|
||||||
|
/// </summary>
|
||||||
|
Working,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// قطع ارتباط و ترک کار کامب
|
||||||
|
/// </summary>
|
||||||
|
HasLeft,
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
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; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
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; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,96 @@
|
|||||||
|
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; }
|
||||||
|
}
|
||||||
@@ -1,8 +1,10 @@
|
|||||||
using System.Collections.Generic;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using _0_Framework.Application;
|
using _0_Framework.Application;
|
||||||
using CompanyManagment.App.Contracts.Employee.DTO;
|
using CompanyManagment.App.Contracts.Employee.DTO;
|
||||||
using CompanyManagment.App.Contracts.EmployeeInsuranceRecord;
|
using CompanyManagment.App.Contracts.EmployeeInsuranceRecord;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
namespace CompanyManagment.App.Contracts.Employee;
|
namespace CompanyManagment.App.Contracts.Employee;
|
||||||
|
|
||||||
@@ -73,10 +75,12 @@ public interface IEmployeeApplication
|
|||||||
long workshopId);
|
long workshopId);
|
||||||
Task<OperationResult> EditEmployeeInEmployeeDocumentWorkFlow(EditEmployeeInEmployeeDocument command);
|
Task<OperationResult> EditEmployeeInEmployeeDocumentWorkFlow(EditEmployeeInEmployeeDocument command);
|
||||||
|
|
||||||
|
[Obsolete("این متد منسوخ شده است و از متد WorkedEmployeesInWorkshopSelectList استفاده کنید")]
|
||||||
Task<List<EmployeeSelectListViewModel>> WorkedEmployeesInWorkshopSelectList(long workshopId);
|
Task<List<EmployeeSelectListViewModel>> WorkedEmployeesInWorkshopSelectList(long workshopId);
|
||||||
|
|
||||||
Task<OperationResult<EmployeeDataFromApiViewModel>> GetEmployeeDataFromApi(string nationalCode, string birthDate);
|
Task<OperationResult<EmployeeDataFromApiViewModel>> GetEmployeeDataFromApi(string nationalCode, string birthDate);
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Api
|
#region Api
|
||||||
@@ -103,8 +107,41 @@ public interface IEmployeeApplication
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task<List<GetClientEmployeeListViewModel>> GetClientEmployeeList(GetClientEmployeeListSearchModel searchModel, long workshopId);
|
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
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public class GetClientEmployeeListSearchModel
|
public class GetClientEmployeeListSearchModel
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
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; }
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
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; }
|
||||||
|
}
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
using _0_Framework.Application;
|
using System;
|
||||||
|
using _0_Framework.Application;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace CompanyManagment.App.Contracts.EmployeeBankInformation
|
namespace CompanyManagment.App.Contracts.EmployeeBankInformation
|
||||||
{
|
{
|
||||||
@@ -8,6 +10,7 @@ namespace CompanyManagment.App.Contracts.EmployeeBankInformation
|
|||||||
OperationResult Create(CreateEmployeeInformation command);
|
OperationResult Create(CreateEmployeeInformation command);
|
||||||
OperationResult GroupCreate(long workshopId, List<CreateEmployeeInformation> command);
|
OperationResult GroupCreate(long workshopId, List<CreateEmployeeInformation> command);
|
||||||
OperationResult Edit(EditEmployeeInformation command);
|
OperationResult Edit(EditEmployeeInformation command);
|
||||||
|
[Obsolete("از متد Async استفاده شود")]
|
||||||
List<GroupedEmployeeBankInformationViewModel> Search(long workshopId, EmployeeBankInformationSearchModel searchParams);
|
List<GroupedEmployeeBankInformationViewModel> Search(long workshopId, EmployeeBankInformationSearchModel searchParams);
|
||||||
List<EmployeeBankInformationViewModelForExcel> SearchForExcel(long workshopId,
|
List<EmployeeBankInformationViewModelForExcel> SearchForExcel(long workshopId,
|
||||||
EmployeeBankInformationSearchModel searchParams);
|
EmployeeBankInformationSearchModel searchParams);
|
||||||
@@ -17,5 +20,22 @@ namespace CompanyManagment.App.Contracts.EmployeeBankInformation
|
|||||||
OperationResult RemoveByEmployeeId(long workshopId, long employeeId);
|
OperationResult RemoveByEmployeeId(long workshopId, long employeeId);
|
||||||
List<GroupedEmployeeBankInformationViewModel> GetAllByWorkshopId(long workshopId);
|
List<GroupedEmployeeBankInformationViewModel> GetAllByWorkshopId(long workshopId);
|
||||||
OperationResult SetDefault(long workshopId, long bankInfoId);
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
18
CompanyManagment.App.Contracts/Hubs/CheckoutHub.cs
Normal file
18
CompanyManagment.App.Contracts/Hubs/CheckoutHub.cs
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
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}";
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +1,7 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Security.AccessControl;
|
||||||
|
using CompanyManagment.App.Contracts.Workshop;
|
||||||
|
using Microsoft.AspNetCore.Server.HttpSys;
|
||||||
|
|
||||||
namespace CompanyManagment.App.Contracts.InstitutionContract;
|
namespace CompanyManagment.App.Contracts.InstitutionContract;
|
||||||
|
|
||||||
@@ -104,6 +107,7 @@ public class InstitutionContractListWorkshop
|
|||||||
{
|
{
|
||||||
public string WorkshopName { get; set; }
|
public string WorkshopName { get; set; }
|
||||||
public int EmployeeCount { get; set; }
|
public int EmployeeCount { get; set; }
|
||||||
|
public string Price { get; set; }
|
||||||
public WorkshopServicesViewModel WorkshopServices { get; set; }
|
public WorkshopServicesViewModel WorkshopServices { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -111,22 +115,31 @@ public class WorkshopServicesViewModel
|
|||||||
{
|
{
|
||||||
public bool Insurance { get; set; }
|
public bool Insurance { get; set; }
|
||||||
public string InsuranceLabel => "ارسال لیست بیمه";
|
public string InsuranceLabel => "ارسال لیست بیمه";
|
||||||
|
public string InsurancePrice { get; set; }
|
||||||
|
|
||||||
public bool InsuranceInPerson { get; set; }
|
public bool InsuranceInPerson { get; set; }
|
||||||
public string InsuranceInPersonLabel => "خدمات مستقیم";
|
public string InsuranceInPersonLabel => "خدمات مستقیم";
|
||||||
|
public string InsuranceInPersonPrice { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public bool Contract { get; set; }
|
public bool Contract { get; set; }
|
||||||
public string ContractLabel => "قرارداد و تصفیه حساب";
|
public string ContractLabel => "قرارداد و تصفیه حساب";
|
||||||
|
public string ContractPrice { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public bool ContractInPerson { get; set; }
|
public bool ContractInPerson { get; set; }
|
||||||
public string ContractInPersonLabel => "خدمات مستقیم";
|
public string ContractInPersonLabel => "خدمات مستقیم";
|
||||||
|
public string ContractInPersonPrice { get; set; }
|
||||||
|
|
||||||
public bool RollCall { get; set; }
|
public bool RollCall { get; set; }
|
||||||
public string RollCallLabel => "ساعت حضور و غیاب";
|
public string RollCallLabel => "ساعت حضور و غیاب";
|
||||||
|
public string RollCallPrice { get; set; }
|
||||||
|
|
||||||
public bool RollCallInPerson { get; set; }
|
public bool RollCallInPerson { get; set; }
|
||||||
public string RollCallInPersonLabel => "خدمات مستقیم";
|
public string RollCallInPersonLabel => "خدمات مستقیم";
|
||||||
|
public string RollCallInPersonPrice { get; set; }
|
||||||
|
|
||||||
public bool CustomizeCheckout { get; set; }
|
public bool CustomizeCheckout { get; set; }
|
||||||
public string CustomizeCheckoutLabel => "فیش غیر رسمی";
|
public string CustomizeCheckoutLabel => "فیش غیر رسمی";
|
||||||
|
public string CustomizeCheckoutPrice { get; set; }
|
||||||
}
|
}
|
||||||
@@ -13,6 +13,7 @@ public class GetInstitutionVerificationDetailsViewModel
|
|||||||
public string ContractStart { get; set; }
|
public string ContractStart { get; set; }
|
||||||
public string ContractEnd { get; set; }
|
public string ContractEnd { get; set; }
|
||||||
public List<GetInstitutionVerificationDetailsWorkshopsViewModel> Workshops { get; set; }
|
public List<GetInstitutionVerificationDetailsWorkshopsViewModel> Workshops { get; set; }
|
||||||
|
public string OneMonthPrice { get; set; }
|
||||||
public string TotalPrice { get; set; }
|
public string TotalPrice { get; set; }
|
||||||
public string TaxPrice { get; set; }
|
public string TaxPrice { get; set; }
|
||||||
public string PaymentPrice { get; set; }
|
public string PaymentPrice { get; set; }
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ public class GetInstitutionVerificationDetailsWorkshopsViewModel
|
|||||||
{
|
{
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
public int PersonnelCount { get; set; }
|
public int PersonnelCount { get; set; }
|
||||||
|
|
||||||
|
public WorkshopServicesViewModel OldServices { get; set; }
|
||||||
public WorkshopServicesViewModel Services { get; set; }
|
public WorkshopServicesViewModel Services { get; set; }
|
||||||
public string Price { get; set; }
|
|
||||||
}
|
}
|
||||||
@@ -283,7 +283,7 @@ public interface IInstitutionContractApplication
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
Task<OperationResult> ResendVerifyLink(long institutionContractId);
|
Task<OperationResult> ResendVerifyLink(long institutionContractId);
|
||||||
|
Task AmendmentComplete(InstitutionContractAmendmentCompleteRequest request);
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// دیتای پرینت قرارداد مالی
|
/// دیتای پرینت قرارداد مالی
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -291,14 +291,17 @@ public interface IInstitutionContractApplication
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task<InstitutionContractPrintViewModel> PrintOneAsync(long id);
|
Task<InstitutionContractPrintViewModel> PrintOneAsync(long id);
|
||||||
|
|
||||||
Task<OperationResult> SetPendingWorkflow(long entityId, InstitutionContractSigningType signingType);
|
Task<OperationResult> SetPendingWorkflow(long entityId,InstitutionContractSigningType signingType);
|
||||||
Task<long> GetIdByInstallmentId(long installmentId);
|
|
||||||
|
|
||||||
|
Task<GetInstitutionContractWorkshopsDetails> GetContractWorkshopsDetails(long id);
|
||||||
|
|
||||||
|
Task<GetInstitutionAmendmentVerificationDetailsViewModel> GetAmendmentVerificationDetails(Guid id, long amendmentId);
|
||||||
|
Task<long> GetIdByInstallmentId(long installmentId);
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// تایید قرارداد مالی به صورت دستی
|
/// تایید قرارداد مالی به صورت دستی
|
||||||
/// </summary>
|
|
||||||
/// <param name="institutionContractId"></param>
|
/// <param name="institutionContractId"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
|
/// </summary>
|
||||||
Task<OperationResult> VerifyInstitutionContractManually(long institutionContractId);
|
Task<OperationResult> VerifyInstitutionContractManually(long institutionContractId);
|
||||||
|
|
||||||
Task<InstitutionContractCreationPaymentResponse> GetCreationPaymentMethod(InstitutionContractCreationPaymentRequest request);
|
Task<InstitutionContractCreationPaymentResponse> GetCreationPaymentMethod(InstitutionContractCreationPaymentRequest request);
|
||||||
@@ -349,3 +352,34 @@ public class InstitutionContractCreationWorkshopsRequest
|
|||||||
|
|
||||||
public long RepresentativeId { 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; }
|
||||||
|
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace CompanyManagment.App.Contracts.InstitutionContract;
|
namespace CompanyManagment.App.Contracts.InstitutionContract;
|
||||||
|
|
||||||
public class InsitutionContractAmendmentPaymentResponse
|
public class InsitutionContractAmendmentPaymentResponse
|
||||||
{
|
{
|
||||||
|
public List<InsitutionContractAmendmentPaymentWorkshopResponse> workshops { get; set; }
|
||||||
public InstitutionContractPaymentOneTimeViewModel OneTime { get; set; }
|
public InstitutionContractPaymentOneTimeViewModel OneTime { get; set; }
|
||||||
public InstitutionContractPaymentMonthlyViewModel Monthly { get; set; }
|
public InstitutionContractPaymentMonthlyViewModel Monthly { get; set; }
|
||||||
public string ContractStart { get; set; }
|
public string ContractStart { get; set; }
|
||||||
@@ -9,3 +12,17 @@ public class InsitutionContractAmendmentPaymentResponse
|
|||||||
public string OneMonthAmount { get; set; }
|
public string OneMonthAmount { get; set; }
|
||||||
public string TotalAmount { 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; }
|
||||||
|
}
|
||||||
@@ -16,6 +16,8 @@ public class InstitutionContractPrintViewModel
|
|||||||
public string TaxPrice { get; set; }
|
public string TaxPrice { get; set; }
|
||||||
public string PaymentPrice { get; set; }
|
public string PaymentPrice { get; set; }
|
||||||
public string OneMonthPrice { get; set; }
|
public string OneMonthPrice { get; set; }
|
||||||
|
public string OneMonthWithoutTax { get; set; }
|
||||||
|
public string OneMonthTax { get; set; }
|
||||||
public string VerifyCode { get; set; }
|
public string VerifyCode { get; set; }
|
||||||
public string VerifyDate { get; set; }
|
public string VerifyDate { get; set; }
|
||||||
public string VerifyTime { get; set; }
|
public string VerifyTime { get; set; }
|
||||||
@@ -23,6 +25,4 @@ public class InstitutionContractPrintViewModel
|
|||||||
public string VerifierPhoneNumber { get; set; }
|
public string VerifierPhoneNumber { get; set; }
|
||||||
public LawViewModel LawViewModel { get; set; }
|
public LawViewModel LawViewModel { get; set; }
|
||||||
public string Obligation { get; set; }
|
public string Obligation { get; set; }
|
||||||
public string OneMonthWithoutTax { get; set; }
|
|
||||||
public string OneMonthTax { get; set; }
|
|
||||||
}
|
}
|
||||||
@@ -13,6 +13,13 @@ public interface IJobApplication
|
|||||||
List<JobViewModel> Search(JobSearchModel searchModel);
|
List<JobViewModel> Search(JobSearchModel searchModel);
|
||||||
List<JobViewModel> SearchJobForMain(JobSearchModel searchModel);
|
List<JobViewModel> SearchJobForMain(JobSearchModel searchModel);
|
||||||
//Task<List<JobViewModel>> GetJobListByText(string searchtText);
|
//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> GetJobListByText(string searchtText);
|
||||||
List<JobViewModel> GetJobListByWorkshopId(long workshopId);
|
List<JobViewModel> GetJobListByWorkshopId(long workshopId);
|
||||||
List<JobViewModel> GetJobListByTextAndWorkshopId(string textSearch, long workshopId);
|
List<JobViewModel> GetJobListByTextAndWorkshopId(string textSearch, long workshopId);
|
||||||
|
|||||||
@@ -8,3 +8,10 @@ public class JobViewModel
|
|||||||
public string SearchResultTitle { get; set; }
|
public string SearchResultTitle { get; set; }
|
||||||
public string SearchResultCode { get; set; }
|
public string SearchResultCode { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public class JobListDto
|
||||||
|
{
|
||||||
|
public long Id { get; set; }
|
||||||
|
public string JobName { get; set; }
|
||||||
|
}
|
||||||
@@ -1,8 +1,9 @@
|
|||||||
using System;
|
using _0_Framework.Application;
|
||||||
|
using CompanyManagment.App.Contracts.Employee.DTO;
|
||||||
|
using CompanyManagment.App.Contracts.LeftWork;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using _0_Framework.Application;
|
|
||||||
using CompanyManagment.App.Contracts.LeftWork;
|
|
||||||
|
|
||||||
namespace CompanyManagment.App.Contracts.LeftWorkTemp;
|
namespace CompanyManagment.App.Contracts.LeftWorkTemp;
|
||||||
|
|
||||||
@@ -36,6 +37,27 @@ public interface ILeftWorkTempApplication
|
|||||||
|
|
||||||
|
|
||||||
List<LeftWorkTempViewModel> GetLeftWorksByWorkshopId(long workshopId);
|
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
|
public class LeftWorkTempViewModel
|
||||||
|
|||||||
@@ -21,6 +21,6 @@ public class LoanGroupedViewModel
|
|||||||
{
|
{
|
||||||
public List<LoanGroupedByDateViewModel> GroupedByDate { get; set; }
|
public List<LoanGroupedByDateViewModel> GroupedByDate { get; set; }
|
||||||
public List<LoanGroupedByEmployeeViewModel>GroupedByEmployee { get; set; }
|
public List<LoanGroupedByEmployeeViewModel>GroupedByEmployee { get; set; }
|
||||||
public List<LoanViewModel> LoanListViewModel { get; set; }
|
public PagedResult<LoanViewModel> LoanListViewModel { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,5 +16,6 @@ public class LoanSearchViewModel
|
|||||||
public string EndDate { get; set; }
|
public string EndDate { get; set; }
|
||||||
|
|
||||||
public int PageIndex { get; set; }
|
public int PageIndex { get; set; }
|
||||||
|
public int PageSize { get; set; } = 30;
|
||||||
public bool ShowAsGrouped { get; set; }
|
public bool ShowAsGrouped { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,4 +45,42 @@ namespace CompanyManagment.App.Contracts.RollCall
|
|||||||
}
|
}
|
||||||
#endregion
|
#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; }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ using System.Linq;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using _0_Framework.Application;
|
using _0_Framework.Application;
|
||||||
|
using CompanyManagment.App.Contracts.Workshop;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
namespace CompanyManagment.App.Contracts.RollCall
|
namespace CompanyManagment.App.Contracts.RollCall
|
||||||
{
|
{
|
||||||
@@ -79,7 +81,7 @@ namespace CompanyManagment.App.Contracts.RollCall
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// گزارش آنلاین حضور غیاب
|
/// گزارش آنلاین حضور غیاب
|
||||||
/// </summary>
|
/// </summary>
|
||||||
CurrentDayRollCall GetWorkshopCurrentDayRollCalls(long workshopId);
|
CurrentDayRollCall GetWorkshopCurrentDayRollCalls(long workshopId,WorkshopCurrentDayRollCallSearchModel searchModel);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// گزارش آفلاین حضور غیاب کارگاه
|
/// گزارش آفلاین حضور غیاب کارگاه
|
||||||
@@ -125,7 +127,69 @@ namespace CompanyManagment.App.Contracts.RollCall
|
|||||||
/// <param name="command"></param>
|
/// <param name="command"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task<OperationResult> RecalculateValues(long workshopId, List<ReCalculateRollCallValues> command);
|
Task<OperationResult> RecalculateValues(long workshopId, List<ReCalculateRollCallValues> command);
|
||||||
|
|
||||||
|
Task<PagedResult<RollCallCaseHistoryTitleDto>> GetCaseHistoryTitles(long workshopId,RollCallCaseHistorySearchModel searchModel);
|
||||||
|
Task<List<RollCallCaseHistoryDetail>> GetCaseHistoryDetails(long workshopId, string titleId,
|
||||||
|
RollCallCaseHistorySearchModel searchModel);
|
||||||
|
|
||||||
|
Task<RollCallCaseHistoryExcelDto> DownloadCaseHistoryExcel(long workshopId, string titleId,
|
||||||
|
RollCallCaseHistorySearchModel searchModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class RollCallCaseHistoryExcelDto
|
||||||
|
{
|
||||||
|
public byte[] Bytes { get; set; }
|
||||||
|
public string FileName { get; set; }
|
||||||
|
public string MimeType { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class RollCallCaseHistoryDetail
|
||||||
|
{
|
||||||
|
public string EmployeeFullName { get; set; }
|
||||||
|
public string PersonnelCode { get; set; }
|
||||||
|
public TimeSpan TotalWorkingTime { get; set; }
|
||||||
|
public List<RollCallCaseHistoryDetailRecord> Records { get; set; }
|
||||||
|
public RollCallRecordStatus Status { get; set; }
|
||||||
|
public long EmployeeId { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class WorkshopCurrentDayRollCallSearchModel
|
||||||
|
{
|
||||||
|
public long EmployeeId { get; set; }
|
||||||
|
public int PersonnelCode { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public enum RollCallRecordStatus
|
||||||
|
{
|
||||||
|
Worked = 0,
|
||||||
|
Absent = 1,
|
||||||
|
Leaved = 2
|
||||||
|
}
|
||||||
|
|
||||||
|
public class RollCallCaseHistoryDetailRecord
|
||||||
|
{
|
||||||
|
public TimeSpan EntryTimeDifference { get; set; }
|
||||||
|
public string StartTime { get; set; }
|
||||||
|
public string EndTime { get; set; }
|
||||||
|
public TimeSpan ExitTimeDifference { get; set; }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public class RollCallCaseHistorySearchModel:PaginationRequest
|
||||||
|
{
|
||||||
|
public string StartDate { get; set; }
|
||||||
|
public string EndDate { get; set; }
|
||||||
|
public string OneDayDate { get; set; }
|
||||||
|
public long? EmployeeId { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class RollCallCaseHistoryTitleDto
|
||||||
|
{
|
||||||
|
public string Id { get; set; }
|
||||||
|
public string Title { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
public class ReCalculateRollCallValues
|
public class ReCalculateRollCallValues
|
||||||
{
|
{
|
||||||
public long EmployeeId { get; set; }
|
public long EmployeeId { get; set; }
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ public class CreateSalaryAidViewModel
|
|||||||
public long WorkshopId { get; set; }
|
public long WorkshopId { get; set; }
|
||||||
public string Amount { get; set; }
|
public string Amount { get; set; }
|
||||||
public string SalaryDateTime { get; set; }
|
public string SalaryDateTime { get; set; }
|
||||||
public string CalculationDateTime { get; set; }
|
|
||||||
public string NationalCode { get; set; }
|
public string NationalCode { get; set; }
|
||||||
public int CalculationMonth { get; set; }
|
public int CalculationMonth { get; set; }
|
||||||
public int CalculationYear { get; set; }
|
public int CalculationYear { get; set; }
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ public class SalaryAidGroupedByDateViewModel
|
|||||||
public string YearFa { get; set; }
|
public string YearFa { get; set; }
|
||||||
public int Month { get; set; }
|
public int Month { get; set; }
|
||||||
public int Year { get; set; }
|
public int Year { get; set; }
|
||||||
public List<SalaryAidGroupedByDateViewModelItems> SalaryAidViewModels { get; set; }
|
public List<SalaryAidGroupedByDateViewModelItems> Items { get; set; }
|
||||||
public string TotalAmount { get; set; }
|
public string TotalAmount { get; set; }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ public class SalaryAidGroupedByEmployeeViewModel
|
|||||||
{
|
{
|
||||||
public string EmployeeName { get; set; }
|
public string EmployeeName { get; set; }
|
||||||
public long EmployeeId { get; set; }
|
public long EmployeeId { get; set; }
|
||||||
public List<SalaryAidGroupedByEmployeeViewModelItems> SalaryAidViewModels { get; set; }
|
public List<SalaryAidGroupedByEmployeeViewModelItems> Items { get; set; }
|
||||||
public string TotalAmount { get; set; }
|
public string TotalAmount { get; set; }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,15 +3,15 @@ using System.Collections.Generic;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using _0_Framework.Application;
|
||||||
|
|
||||||
namespace CompanyManagment.App.Contracts.SalaryAid;
|
namespace CompanyManagment.App.Contracts.SalaryAid;
|
||||||
public class SalaryAidSearchViewModel
|
public class SalaryAidSearchViewModel:PaginationRequest
|
||||||
{
|
{
|
||||||
public string StartDate { get; set; }
|
public string StartDate { get; set; }
|
||||||
public string EndDate { get; set; }
|
public string EndDate { get; set; }
|
||||||
public long EmployeeId { get; set; }
|
public long EmployeeId { get; set; }
|
||||||
public long WorkshopId { get; set; }
|
public long WorkshopId { get; set; }
|
||||||
public int PageIndex { get; set; }
|
|
||||||
public bool ShowAsGrouped { get; set; }
|
public bool ShowAsGrouped { get; set; }
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Security.Cryptography;
|
using System.Security.Cryptography;
|
||||||
|
using _0_Framework.Application;
|
||||||
|
|
||||||
namespace CompanyManagment.App.Contracts.SalaryAid;
|
namespace CompanyManagment.App.Contracts.SalaryAid;
|
||||||
|
|
||||||
@@ -7,7 +8,7 @@ public class SalaryAidsGroupedViewModel
|
|||||||
{
|
{
|
||||||
public List<SalaryAidGroupedByEmployeeViewModel> GroupedByEmployee { get; set; }
|
public List<SalaryAidGroupedByEmployeeViewModel> GroupedByEmployee { get; set; }
|
||||||
public List<SalaryAidGroupedByDateViewModel> GroupedByDate { get; set; }
|
public List<SalaryAidGroupedByDateViewModel> GroupedByDate { get; set; }
|
||||||
public List<SalaryAidViewModel> SalaryAidListViewModels { get; set; }
|
public PagedResult<SalaryAidViewModel> List { get; set; }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
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; }
|
||||||
|
}
|
||||||
@@ -1,10 +1,12 @@
|
|||||||
using System.Collections.Generic;
|
using _0_Framework.Application;
|
||||||
using System.Runtime.InteropServices;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using _0_Framework.Application;
|
|
||||||
using AccountManagement.Application.Contracts.Account;
|
using AccountManagement.Application.Contracts.Account;
|
||||||
|
using CompanyManagment.App.Contracts.Checkout.Dto;
|
||||||
|
using CompanyManagment.App.Contracts.Employee.DTO;
|
||||||
using CompanyManagment.App.Contracts.Workshop.DTOs;
|
using CompanyManagment.App.Contracts.Workshop.DTOs;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace CompanyManagment.App.Contracts.Workshop;
|
namespace CompanyManagment.App.Contracts.Workshop;
|
||||||
|
|
||||||
@@ -92,6 +94,19 @@ public interface IWorkshopApplication
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
Task<ActionResult<OperationResult>> CreateWorkshopWorkflowRegistration(CreateWorkshopWorkflowRegistration command);
|
Task<ActionResult<OperationResult>> CreateWorkshopWorkflowRegistration(CreateWorkshopWorkflowRegistration command);
|
||||||
|
|
||||||
|
|
||||||
|
#region ForApi
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// دریافت لیست کارگاه های ادمین برای سلکت تو
|
||||||
|
/// Api
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
Task<List<AdminWorkshopSelectListDto>> GetAdminWorkshopSelectList();
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
|
|
||||||
public class CreateWorkshopWorkflowRegistration
|
public class CreateWorkshopWorkflowRegistration
|
||||||
|
|||||||
@@ -94,4 +94,9 @@ public class BaseYearDataList
|
|||||||
/// آیا تاریخ پایان کار دارد
|
/// آیا تاریخ پایان کار دارد
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool HasLeftWork { get; set; }
|
public bool HasLeftWork { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// شماره گروه
|
||||||
|
/// </summary>
|
||||||
|
public string GroupNo { get; set; }
|
||||||
}
|
}
|
||||||
@@ -104,5 +104,10 @@ namespace CompanyManagment.Application
|
|||||||
Id = x.Id
|
Id = x.Id
|
||||||
}).ToList();
|
}).ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<BankSelectList> GetBanksForSelectList()
|
||||||
|
{
|
||||||
|
return _bankRepository.GetBanksForSelectList();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,28 +1,45 @@
|
|||||||
using System;
|
using _0_Framework.Application;
|
||||||
using System.Collections.Generic;
|
using _0_Framework.Domain.CustomizeCheckoutShared.ValueObjects;
|
||||||
using System.Diagnostics.CodeAnalysis;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using _0_Framework.Application;
|
|
||||||
using Company.Domain.CheckoutAgg;
|
using Company.Domain.CheckoutAgg;
|
||||||
using Company.Domain.CheckoutAgg.ValueObjects;
|
using Company.Domain.CheckoutAgg.ValueObjects;
|
||||||
using Company.Domain.LeftWorkAgg;
|
using Company.Domain.ContractAgg;
|
||||||
using Company.Domain.YearlySalaryAgg;
|
using Company.Domain.EmployeeAgg;
|
||||||
using Company.Domain.empolyerAgg;
|
using Company.Domain.empolyerAgg;
|
||||||
|
using Company.Domain.InsuranceListAgg;
|
||||||
|
using Company.Domain.LeaveAgg;
|
||||||
|
using Company.Domain.LeftWorkAgg;
|
||||||
|
using Company.Domain.LeftWorkInsuranceAgg;
|
||||||
using Company.Domain.RollCallAgg;
|
using Company.Domain.RollCallAgg;
|
||||||
|
using Company.Domain.RollCallEmployeeAgg;
|
||||||
|
using Company.Domain.WorkingHoursTempAgg;
|
||||||
|
using Company.Domain.WorkshopAgg;
|
||||||
|
using Company.Domain.YearlySalaryAgg;
|
||||||
using CompanyManagment.App.Contracts.Checkout;
|
using CompanyManagment.App.Contracts.Checkout;
|
||||||
using CompanyManagment.App.Contracts.PersonalContractingParty;
|
using CompanyManagment.App.Contracts.Checkout.Dto;
|
||||||
|
using CompanyManagment.App.Contracts.Contract;
|
||||||
|
using CompanyManagment.App.Contracts.HolidayItem;
|
||||||
|
using CompanyManagment.App.Contracts.Hubs;
|
||||||
|
using CompanyManagment.App.Contracts.InstitutionContract;
|
||||||
|
using CompanyManagment.App.Contracts.InsuranceList;
|
||||||
using CompanyManagment.App.Contracts.Leave;
|
using CompanyManagment.App.Contracts.Leave;
|
||||||
using CompanyManagment.App.Contracts.MandantoryHours;
|
using CompanyManagment.App.Contracts.MandantoryHours;
|
||||||
using _0_Framework.Domain.CustomizeCheckoutShared.ValueObjects;
|
using CompanyManagment.App.Contracts.PersonalContractingParty;
|
||||||
using Company.Domain.EmployeeAgg;
|
|
||||||
using CompanyManagment.App.Contracts.HolidayItem;
|
|
||||||
using CompanyManagment.App.Contracts.RollCall;
|
using CompanyManagment.App.Contracts.RollCall;
|
||||||
|
using CompanyManagment.App.Contracts.WorkingHoursTemp;
|
||||||
|
using CompanyManagment.App.Contracts.Workshop;
|
||||||
|
using CompanyManagment.App.Contracts.YearlySalary;
|
||||||
using CompanyManagment.EFCore.Migrations;
|
using CompanyManagment.EFCore.Migrations;
|
||||||
using CompanyManagment.EFCore.Repository;
|
using CompanyManagment.EFCore.Repository;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Microsoft.AspNetCore.SignalR;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Diagnostics.CodeAnalysis;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using Company.Domain.LeaveAgg;
|
using System.Linq;
|
||||||
using Company.Domain.WorkshopAgg;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
|
||||||
namespace CompanyManagment.Application;
|
namespace CompanyManagment.Application;
|
||||||
|
|
||||||
@@ -38,11 +55,21 @@ public class CheckoutApplication : ICheckoutApplication
|
|||||||
private readonly IRollCallMandatoryRepository _rollCallMandatoryRepository;
|
private readonly IRollCallMandatoryRepository _rollCallMandatoryRepository;
|
||||||
private readonly IRollCallRepository _rollCallRepository;
|
private readonly IRollCallRepository _rollCallRepository;
|
||||||
private readonly IHolidayItemApplication _holidayItemApplication;
|
private readonly IHolidayItemApplication _holidayItemApplication;
|
||||||
|
private readonly IWorkingHoursTempRepository _workingHoursTempRepository;
|
||||||
|
private readonly IWorkshopRepository _workshopRepository;
|
||||||
|
private readonly IAuthHelper _authHelper;
|
||||||
|
private readonly IHubContext<CheckoutHub> _hubContext;
|
||||||
|
private readonly IRollCallEmployeeRepository _rollCallEmployeeRepository;
|
||||||
|
private readonly IContractRepository _contractRepository;
|
||||||
|
private readonly IInsuranceListRepository _insuranceListRepository;
|
||||||
|
private readonly ILeftWorkInsuranceRepository _leftWorkInsuranceRepository;
|
||||||
|
private readonly IInsuranceListApplication _insuranceListApplication;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public CheckoutApplication(ICheckoutRepository checkoutRepository, IYearlySalaryRepository yearlySalaryRepository,
|
public CheckoutApplication(ICheckoutRepository checkoutRepository, IYearlySalaryRepository yearlySalaryRepository,
|
||||||
ILeftWorkRepository leftWorkRepository,
|
ILeftWorkRepository leftWorkRepository,
|
||||||
IEmployerRepository employerRepository, IPersonalContractingPartyApp contractingPartyApp, ILeaveApplication leaveApplication, IMandatoryHoursApplication mandatoryHoursApplication, IRollCallMandatoryRepository rollCallMandatoryRepository, IRollCallRepository rollCallRepository, IHolidayItemApplication holidayItemApplication)
|
IEmployerRepository employerRepository, IPersonalContractingPartyApp contractingPartyApp, ILeaveApplication leaveApplication, IMandatoryHoursApplication mandatoryHoursApplication, IRollCallMandatoryRepository rollCallMandatoryRepository, IRollCallRepository rollCallRepository, IHolidayItemApplication holidayItemApplication, IWorkingHoursTempRepository workingHoursTempRepository, IWorkshopRepository workshopRepository, IAuthHelper authHelper, IHubContext<CheckoutHub> hubContext, IRollCallEmployeeRepository rollCallEmployeeRepository, IContractRepository contractRepository, IInsuranceListRepository insuranceListRepository, ILeftWorkInsuranceRepository leftWorkInsuranceRepository, IInsuranceListApplication insuranceListApplication)
|
||||||
{
|
{
|
||||||
_checkoutRepository = checkoutRepository;
|
_checkoutRepository = checkoutRepository;
|
||||||
_yearlySalaryRepository = yearlySalaryRepository;
|
_yearlySalaryRepository = yearlySalaryRepository;
|
||||||
@@ -54,6 +81,15 @@ public class CheckoutApplication : ICheckoutApplication
|
|||||||
_rollCallMandatoryRepository = rollCallMandatoryRepository;
|
_rollCallMandatoryRepository = rollCallMandatoryRepository;
|
||||||
_rollCallRepository = rollCallRepository;
|
_rollCallRepository = rollCallRepository;
|
||||||
_holidayItemApplication = holidayItemApplication;
|
_holidayItemApplication = holidayItemApplication;
|
||||||
|
_workingHoursTempRepository = workingHoursTempRepository;
|
||||||
|
_workshopRepository = workshopRepository;
|
||||||
|
_authHelper = authHelper;
|
||||||
|
_hubContext = hubContext;
|
||||||
|
_rollCallEmployeeRepository = rollCallEmployeeRepository;
|
||||||
|
_contractRepository = contractRepository;
|
||||||
|
_insuranceListRepository = insuranceListRepository;
|
||||||
|
_leftWorkInsuranceRepository = leftWorkInsuranceRepository;
|
||||||
|
_insuranceListApplication = insuranceListApplication;
|
||||||
}
|
}
|
||||||
|
|
||||||
[SuppressMessage("ReSharper.DPA", "DPA0007: Large number of DB records", MessageId = "count: 241")]
|
[SuppressMessage("ReSharper.DPA", "DPA0007: Large number of DB records", MessageId = "count: 241")]
|
||||||
@@ -396,9 +432,9 @@ public class CheckoutApplication : ICheckoutApplication
|
|||||||
, command.OvertimePay, command.NightworkPay, command.FridayPay, 0, command.ShiftPay, familyAllowance, bunos, years, command.LeavePay, insuranceDeduction, 0, command.InstallmentDeduction, command.SalaryAidDeduction, command.AbsenceDeduction, sumOfWorkingDays,
|
, command.OvertimePay, command.NightworkPay, command.FridayPay, 0, command.ShiftPay, familyAllowance, bunos, years, command.LeavePay, insuranceDeduction, 0, command.InstallmentDeduction, command.SalaryAidDeduction, command.AbsenceDeduction, sumOfWorkingDays,
|
||||||
command.ArchiveCode, command.PersonnelCode, totalClaims, totalDeductions, totalPayment, command.Signature, marriedAllowance, command.LeaveCheckout, command.CreditLeaves, command.AbsencePeriod, command.AverageHoursPerDay, command.HasRollCall, command.OverTimeWorkValue, command.OverNightWorkValue
|
command.ArchiveCode, command.PersonnelCode, totalClaims, totalDeductions, totalPayment, command.Signature, marriedAllowance, command.LeaveCheckout, command.CreditLeaves, command.AbsencePeriod, command.AverageHoursPerDay, command.HasRollCall, command.OverTimeWorkValue, command.OverNightWorkValue
|
||||||
, command.FridayWorkValue, command.RotatingShiftValue, command.AbsenceValue, command.TotalDayOfLeaveCompute, command.TotalDayOfYearsCompute, command.TotalDayOfBunosesCompute,
|
, command.FridayWorkValue, command.RotatingShiftValue, command.AbsenceValue, command.TotalDayOfLeaveCompute, command.TotalDayOfYearsCompute, command.TotalDayOfBunosesCompute,
|
||||||
loanInstallments, salaryAids,checkoutRollCall,command.EmployeeMandatoryHours, hasInsuranceShareTheSameAsList, rewards, rewardPay);
|
loanInstallments, salaryAids, checkoutRollCall, command.EmployeeMandatoryHours, hasInsuranceShareTheSameAsList, rewards, rewardPay);
|
||||||
|
|
||||||
_checkoutRepository.CreateCkeckout(checkout).GetAwaiter().GetResult();
|
_checkoutRepository.CreateCheckout(checkout).GetAwaiter().GetResult();
|
||||||
//_checkoutRepository.SaveChanges();
|
//_checkoutRepository.SaveChanges();
|
||||||
|
|
||||||
//var employeeFullName = new SqlParameter("@EmployeeFullName", SqlDbType.NVarChar, 50);
|
//var employeeFullName = new SqlParameter("@EmployeeFullName", SqlDbType.NVarChar, 50);
|
||||||
@@ -716,5 +752,837 @@ public class CheckoutApplication : ICheckoutApplication
|
|||||||
return _checkoutRepository.GetLastCheckoutsByWorkshopIdForWorkFlow(workshopId, start, end);
|
return _checkoutRepository.GetLastCheckoutsByWorkshopIdForWorkFlow(workshopId, start, end);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task<PagedResult<CheckoutListClientDto>> GetListForClient(long workshopId,CheckoutListClientSearchModel searchModel)
|
||||||
|
{
|
||||||
|
return await _checkoutRepository.GetListForClient(workshopId, searchModel);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#region ForApi
|
||||||
|
|
||||||
|
#region CreateWorkshop
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// دریافت سلکت لیست پرسنل کارگاه
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="id"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task<List<EmployeeSelectListDto>> GetEmployeeSelectListByWorkshopId(long id)
|
||||||
|
{
|
||||||
|
return await _checkoutRepository.GetEmployeeSelectListByWorkshopId(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// دریافت لیست قراردادها برای ایجاد فیش حقوقی
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="workshopId"></param>
|
||||||
|
/// <param name="year"></param>
|
||||||
|
/// <param name="month"></param>
|
||||||
|
/// <param name="employeeId"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task<OperationResult<List<ContractsListToCreateCheckoutDto>>> GetContractToCreateCheckout(long workshopId, string year, string month, long employeeId)
|
||||||
|
{
|
||||||
|
var op = new OperationResult<List<ContractsListToCreateCheckoutDto>>();
|
||||||
|
if (workshopId < 1)
|
||||||
|
return op.Failed("کارگاه را انتخاب کنید");
|
||||||
|
|
||||||
|
if (!string.IsNullOrWhiteSpace(year) && string.IsNullOrWhiteSpace(month))
|
||||||
|
return op.Failed("ماه را انتخاب کنید");
|
||||||
|
if (string.IsNullOrWhiteSpace(year) && !string.IsNullOrWhiteSpace(month))
|
||||||
|
return op.Failed("سال را انتخاب کنید");
|
||||||
|
|
||||||
|
if (string.IsNullOrWhiteSpace(year) && string.IsNullOrWhiteSpace(month))
|
||||||
|
{
|
||||||
|
year = "0";
|
||||||
|
month = "0";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var result = await GetContractResultToCreateCheckout(workshopId, employeeId, year, month, null,
|
||||||
|
null);
|
||||||
|
if (result.CreateCheckoutList.Count == 0)
|
||||||
|
return op.Failed("موردی یافت نشد");
|
||||||
|
var finalResult = result.CreateCheckoutList.Select(x => new ContractsListToCreateCheckoutDto
|
||||||
|
{
|
||||||
|
Id = x.Id,
|
||||||
|
ContractNo = x.ContractNo,
|
||||||
|
WorkshopName = x.WorkshopName,
|
||||||
|
EmployeeName = x.EmployeeName,
|
||||||
|
ContractStart = x.ContractStart,
|
||||||
|
ContractEnd = x.ContractEnd,
|
||||||
|
PersonnelCode = x.PersonnelCode,
|
||||||
|
Description = x.Description,
|
||||||
|
LeftWorkDate = x.LeftWorkDate,
|
||||||
|
CreateCheckoutStatus = x.HasCheckout ? CreateCheckoutStatus.HasCheckout : x.Extension == false ? CreateCheckoutStatus.NotValid : CreateCheckoutStatus.ReadyToCreate
|
||||||
|
|
||||||
|
}).ToList();
|
||||||
|
|
||||||
|
return op.Succcedded(finalResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public async Task<OperationResult> CreateCheckoutApi(List<long> ids, string year, string month, long workshopId)
|
||||||
|
{
|
||||||
|
|
||||||
|
var op = new OperationResult();
|
||||||
|
|
||||||
|
//آی دی کاربر لاگین شده برای استفاده در signalR
|
||||||
|
var currntAcc = _authHelper.CurrentAccountId();
|
||||||
|
|
||||||
|
var signalR = _hubContext.Clients.Group(CheckoutHub.GetGroupName(currntAcc));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var getContractsData = await
|
||||||
|
_checkoutRepository.GetContractsAndIncludeDataDataToCreateCheckout(ids, year, month, workshopId);
|
||||||
|
|
||||||
|
|
||||||
|
#region GetInsuranceData
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var startMonthFa = $"{year}/{month.PadLeft(2, '0')}/01";
|
||||||
|
DateTime startDateGr = startMonthFa.ToGeorgianDateTime();
|
||||||
|
DateTime endDateGr = startMonthFa.FindeEndOfMonth().ToGeorgianDateTime();
|
||||||
|
int endOfMonth = Convert.ToInt32((startMonthFa.FindeEndOfMonth()).Substring(8, 2));
|
||||||
|
|
||||||
|
|
||||||
|
var insuranceListData =
|
||||||
|
_insuranceListRepository.EmployeeInsuranceDataBy(startDateGr, getContractsData.Data.WorkshopId);
|
||||||
|
var yearlysaleries = _yearlySalaryRepository.GetInsuranceItems(startDateGr, endDateGr, year);
|
||||||
|
|
||||||
|
var insuranceEmployeeData =
|
||||||
|
_leftWorkInsuranceRepository.GetEmployeeInsuranceLeftWorksAndInformation(getContractsData.Data.WorkshopId, startDateGr,
|
||||||
|
endDateGr);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
if (!getContractsData.IsSuccedded)
|
||||||
|
{
|
||||||
|
|
||||||
|
await signalR.SendAsync("StartProcessingFailed", getContractsData.Message);
|
||||||
|
return op.Failed(getContractsData.Message);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var timer = new Stopwatch();
|
||||||
|
timer.Start();
|
||||||
|
|
||||||
|
int successProcess = 1;
|
||||||
|
int countList = getContractsData.Data.ContractIncludedData.Count;
|
||||||
|
List<string> createFailedList = [];
|
||||||
|
int createSuccessCount = 0;
|
||||||
|
int createFailedCount = 0;
|
||||||
|
foreach (var item in getContractsData.Data.ContractIncludedData)
|
||||||
|
{
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
//آیا کل مرخصی به ساعت کاراضافه شود؟
|
||||||
|
bool totalLeaveCompute = false;
|
||||||
|
//آیا غیبت محاسبه شود؟
|
||||||
|
bool abcenseDeductionCompute = false;
|
||||||
|
switch (item.ComputeOption)
|
||||||
|
{
|
||||||
|
case "OnEndOfYear":
|
||||||
|
var endOfYearCheckout = item.Separation.ContractEnd.Substring(5, 2);
|
||||||
|
|
||||||
|
totalLeaveCompute = true;
|
||||||
|
abcenseDeductionCompute = item.Separation.HasLeft || endOfYearCheckout == "12";
|
||||||
|
break;
|
||||||
|
case "OnLeftWork":
|
||||||
|
|
||||||
|
totalLeaveCompute = true;
|
||||||
|
abcenseDeductionCompute = item.Separation.HasLeft;
|
||||||
|
break;
|
||||||
|
case "OnEndOfContract":
|
||||||
|
var startMonth = item.ContractStart.Substring(5, 2);
|
||||||
|
var endMonth = item.ContractEnd.Substring(5, 2);
|
||||||
|
|
||||||
|
totalLeaveCompute = startMonth != endMonth;
|
||||||
|
abcenseDeductionCompute = (startMonth != endMonth && item.Separation.HasLeft) || (startMonth != endMonth && item.ContractEndGr == item.Separation.ContractEndGr);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//دستمزد روزانه بدون تاثیر ساعت کار
|
||||||
|
#region DailyWageCommpute
|
||||||
|
|
||||||
|
var contract = new EditContract()
|
||||||
|
{
|
||||||
|
ContractStartGr = item.ContractStartGr,
|
||||||
|
ContractEndGr = item.ContractEndGr,
|
||||||
|
DailySalaryUnAffected = item.DailySalaryUnAffected,
|
||||||
|
DailyWageType = item.DailyWageType,
|
||||||
|
ContarctStart = item.ContractStart,
|
||||||
|
ContractEnd = item.ContractEnd,
|
||||||
|
GetWorkDate = item.FirstGetWorkingDay,
|
||||||
|
GetWorkDateHide = item.FirstGetWorkingDay,
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
//دستمزد روزانه بدون تاثیر ساعت کار
|
||||||
|
var dailyWageUnAffected = await _yearlySalaryRepository.GetCheckoutDailyWage(contract,
|
||||||
|
item.Separation.ContractStartGr, item.Separation.ContractEndGr);
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var hasRollCall = await _rollCallEmployeeRepository.HasRollCallRecord(item.EmployeeId, workshopId, item.Separation.ContractStartGr, item.Separation.ContractEndGr);
|
||||||
|
if (getContractsData.Data.IsStaticCheckout)
|
||||||
|
hasRollCall = false;
|
||||||
|
|
||||||
|
var isStaticCheckout = hasRollCall == false;
|
||||||
|
//محاسبه موظفی
|
||||||
|
#region MandatoryCompute
|
||||||
|
var mandatoryCompute = new ComputingViewModel();
|
||||||
|
|
||||||
|
item.WorkingHours.ContractStartGr = item.Separation.ContractStartGr;
|
||||||
|
item.WorkingHours.ContractEndGr = item.Separation.ContractEndGr;
|
||||||
|
item.WorkingHours.ContarctStart = item.Separation.ContarctStart;
|
||||||
|
item.WorkingHours.ContractEnd = item.Separation.ContractEnd;
|
||||||
|
item.WorkingHours.GetWorkDate = contract.GetWorkDate;
|
||||||
|
item.WorkingHours.GetWorkDateHide = contract.GetWorkDate;
|
||||||
|
item.WorkingHours.WorkshopId = workshopId;
|
||||||
|
item.WorkingHours.EmployeeId = item.EmployeeId;
|
||||||
|
|
||||||
|
mandatoryCompute = await _rollCallMandatoryRepository.MandatoryCompute(item.EmployeeId, workshopId,
|
||||||
|
item.Separation.ContractStartGr, item.Separation.ContractEndGr, item.WorkingHours, getContractsData.Data.WorkshopHolidayWorking,
|
||||||
|
isStaticCheckout, getContractsData.Data.RotatingShiftCompute, dailyWageUnAffected, totalLeaveCompute);
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
if (contract.EmployeeId == 9659)
|
||||||
|
mandatoryCompute.SumTime44 = "48 - 24";
|
||||||
|
|
||||||
|
var officialHoliday = mandatoryCompute.OfficialHoliday;
|
||||||
|
var Friday = int.Parse(mandatoryCompute.NumberOfFriday);
|
||||||
|
var fridayStartToEnd = mandatoryCompute.FridayStartToEnd;
|
||||||
|
|
||||||
|
var totalHoursH = mandatoryCompute.TotalHoursesH;
|
||||||
|
var totalHoursM = mandatoryCompute.TotalHoursesM;
|
||||||
|
var dayliWage = mandatoryCompute.SalaryCompute.MoneyToDouble();
|
||||||
|
var consumableItemDouble = mandatoryCompute.ConsumableItems.MoneyToDouble();
|
||||||
|
var housingAllowanceDouble = mandatoryCompute.HousingAllowance.MoneyToDouble();
|
||||||
|
var familyAllowanceDouble = mandatoryCompute.FamilyAllowance.MoneyToDouble();
|
||||||
|
var marriedAllowanceDouble = mandatoryCompute.MarriedAllowance.MoneyToDouble();
|
||||||
|
|
||||||
|
//اضافه کاری
|
||||||
|
var overTimePay = _yearlySalaryRepository.GetOverTimeWorking(dayliWage,
|
||||||
|
mandatoryCompute.OverTimeWorkH, mandatoryCompute.OverTimeWorkM);
|
||||||
|
//شبکاری
|
||||||
|
var overNightPay = _yearlySalaryRepository.GetOverNightWorking(dayliWage,
|
||||||
|
mandatoryCompute.OverNightWorkH, mandatoryCompute.OverNightWorkM, mandatoryCompute.SumTime44,
|
||||||
|
officialHoliday, Friday, item.Separation.ContractStartGr, item.Separation.ContractEndGr, totalHoursH,
|
||||||
|
totalHoursM);
|
||||||
|
|
||||||
|
|
||||||
|
//سنوات
|
||||||
|
var yearsPay = _yearlySalaryRepository.Years(item.Separation.ContractStartGr, item.Separation.LeftWorkDate,
|
||||||
|
item.Separation.ContractEndGr,
|
||||||
|
dayliWage, item.YearsOption, item.Separation.HasLeft, item.Separation.StartWorkDate, contract.ContractStartGr,
|
||||||
|
contract.ContractEndGr, contract.WorkshopIds, contract.EmployeeId, getContractsData.Data.IsOldContract);
|
||||||
|
//عیدی
|
||||||
|
#region BonusesPay
|
||||||
|
var bunosesPay = _yearlySalaryRepository.Bunoses(item.Separation.ContarctStart, item.Separation.LeftWorkDate,
|
||||||
|
item.Separation.ContractStartGr, item.Separation.ContractEndGr,
|
||||||
|
dayliWage, item.BonusesOption, item.Separation.HasLeft, item.Separation.StartWorkDate,
|
||||||
|
contract.ContractStartGr,
|
||||||
|
contract.ContractEndGr, contract.WorkshopIds, contract.EmployeeId, getContractsData.Data.IsOldContract);
|
||||||
|
//اگر تصفیه حساب پاک شده برای عیدی یا سنوات وجود داشت
|
||||||
|
if (bunosesPay.NotCompleted || yearsPay.NotCompleted)
|
||||||
|
{
|
||||||
|
|
||||||
|
List<BunosesAndYearsPayStatus> lostCheckoutsDates = new List<BunosesAndYearsPayStatus>();
|
||||||
|
if ((bunosesPay.NotCompleted && yearsPay.NotCompleted) || (bunosesPay.NotCompleted && !yearsPay.NotCompleted))
|
||||||
|
lostCheckoutsDates = bunosesPay.BunosesStatusList;
|
||||||
|
if (!bunosesPay.NotCompleted && yearsPay.NotCompleted)
|
||||||
|
lostCheckoutsDates = yearsPay.BunosesStatusList;
|
||||||
|
|
||||||
|
foreach (var found in lostCheckoutsDates)
|
||||||
|
{
|
||||||
|
ComputingViewModel foundMandatoryCompute = new ComputingViewModel();
|
||||||
|
var foundContract = _contractRepository.GetContractByStartEnd(found.ContractStart,
|
||||||
|
found.ContractEnd, contract.WorkshopIds, contract.EmployeeId);
|
||||||
|
|
||||||
|
if (foundContract.Id > 0)
|
||||||
|
{
|
||||||
|
var foundWorkingHours = _workingHoursTempRepository.GetByContractIdConvertToShiftwork4(foundContract.Id);
|
||||||
|
foundWorkingHours.ContractStartGr = found.ContractStart;
|
||||||
|
foundWorkingHours.ContractEndGr = found.ContractEnd;
|
||||||
|
foundWorkingHours.ContarctStart = found.ContractStart.ToFarsi();
|
||||||
|
foundWorkingHours.ContractEnd = found.ContractEnd.ToFarsi();
|
||||||
|
foundWorkingHours.GetWorkDate = foundContract.GetWorkDate;
|
||||||
|
foundWorkingHours.GetWorkDateHide = foundContract.GetWorkDate;
|
||||||
|
foundWorkingHours.WorkshopId = contract.WorkshopIds;
|
||||||
|
foundWorkingHours.EmployeeId = contract.EmployeeId;
|
||||||
|
bool foundHasRollCall = await _rollCallEmployeeRepository.HasRollCallRecord(item.EmployeeId, workshopId, found.ContractStart, found.ContractEnd);
|
||||||
|
|
||||||
|
if (getContractsData.Data.IsStaticCheckout)
|
||||||
|
foundHasRollCall = false;
|
||||||
|
|
||||||
|
foundMandatoryCompute = await _rollCallMandatoryRepository.MandatoryCompute(contract.EmployeeId,
|
||||||
|
contract.WorkshopIds,
|
||||||
|
found.ContractStart, found.ContractEnd, foundWorkingHours, getContractsData.Data.WorkshopHolidayWorking, foundHasRollCall, getContractsData.Data.RotatingShiftCompute, dailyWageUnAffected, totalLeaveCompute);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var MontlyYearsBunos =
|
||||||
|
_yearlySalaryRepository.GetMontlyBunosYears(foundMandatoryCompute.weeklyTime, found.ContractStart, found.ContractEnd,
|
||||||
|
foundMandatoryCompute.SalaryCompute.MoneyToDouble(), foundMandatoryCompute.SumTime44, foundMandatoryCompute.OfficialHoliday,
|
||||||
|
int.Parse(foundMandatoryCompute.NumberOfFriday), foundMandatoryCompute.TotalHolidayAndNotH, foundMandatoryCompute.TotalHolidayAndNotM,
|
||||||
|
foundMandatoryCompute.Basic, foundMandatoryCompute.FridayStartToEnd, foundMandatoryCompute.DayliFeeComplete, hasRollCall, getContractsData.Data.WorkshopHolidayWorking, item.WorkingHours.ShiftWork);
|
||||||
|
double foundMontlySalary = MontlyYearsBunos.MontlyWage + MontlyYearsBunos.BasicYears;
|
||||||
|
int foundTotaldays = Convert.ToInt32(MontlyYearsBunos.SumOfWorkingDay);
|
||||||
|
double foundDayliWage = foundMontlySalary / foundTotaldays;
|
||||||
|
if (bunosesPay.NotCompleted)
|
||||||
|
{
|
||||||
|
double foundBonuses = ((foundDayliWage * 60) / 365) * foundTotaldays;
|
||||||
|
bunosesPay.Bunoses += foundBonuses;
|
||||||
|
bunosesPay.TotalDayCompute += foundTotaldays;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (yearsPay.NotCompleted)
|
||||||
|
{
|
||||||
|
double foundBonuses = ((foundDayliWage * 30) / 365) * foundTotaldays;
|
||||||
|
yearsPay.YearsPay += foundBonuses;
|
||||||
|
yearsPay.TotalDayCompute += foundTotaldays;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
//مزد مرخصی جدید
|
||||||
|
var leavePayNew = _yearlySalaryRepository.LeavePay(item.Separation.ContarctStart,
|
||||||
|
item.Separation.LeftWorkDate, item.Separation.ContractStartGr, item.Separation.ContractEndGr,
|
||||||
|
dayliWage, item.ComputeOption, item.Separation.HasLeft, item.Separation.StartWorkDate,
|
||||||
|
contract.ContractStartGr,
|
||||||
|
contract.ContractEndGr, contract.WorkshopIds, contract.EmployeeId, fridayStartToEnd,
|
||||||
|
officialHoliday, totalHoursH, totalHoursM, consumableItemDouble, housingAllowanceDouble,
|
||||||
|
familyAllowanceDouble, marriedAllowanceDouble, getContractsData.Data.IsOldContract);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#region Insurance
|
||||||
|
|
||||||
|
double insuranceShare = 0;
|
||||||
|
//اگر پرسنل داری شروع بکار بیمه بود
|
||||||
|
var insuranceEmployeeDataItem =
|
||||||
|
insuranceEmployeeData.FirstOrDefault(x => x.EmployeeId == contract.EmployeeId);
|
||||||
|
|
||||||
|
//اگر لیست بیمه برای پرسنل ساخته شده بود
|
||||||
|
var insuranceListDataWithDetails =
|
||||||
|
insuranceListData.FirstOrDefault(x => x.EmployeeId == contract.EmployeeId);
|
||||||
|
if (insuranceListDataWithDetails != null)
|
||||||
|
{
|
||||||
|
insuranceShare = insuranceListDataWithDetails.InsuranceShare;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (insuranceEmployeeDataItem != null && insuranceEmployeeDataItem.StartWorkDateGr <= item.Separation.ContractEndGr)
|
||||||
|
{
|
||||||
|
var workingDays = Tools.GetEmployeeInsuranceWorkingDays(insuranceEmployeeDataItem.StartWorkDateGr, item.Separation.LeftWorkDate, startDateGr, endDateGr, insuranceEmployeeDataItem.EmployeeId);
|
||||||
|
var leftWorkFa = workingDays.hasLeftWorkInMonth ? item.Separation.LeftWorkDate.ToFarsi() : "";
|
||||||
|
|
||||||
|
//به دست آوردن دستمزد روزانه با توجه به اینکه کارگاه مشاغل مقطوع است یا خیر
|
||||||
|
|
||||||
|
double dailyWage = 0;
|
||||||
|
if (getContractsData.Data.FixedSalary)
|
||||||
|
{
|
||||||
|
var res = _insuranceListApplication.GetDailyWageFixedSalary(year, getContractsData.Data.WorkshopId, insuranceEmployeeDataItem.EmployeeId, startDateGr,
|
||||||
|
endDateGr, insuranceEmployeeDataItem.JobId, getContractsData.Data.Population, getContractsData.Data.InsuranceJobId);
|
||||||
|
dailyWage = res ?? 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var res = _insuranceListApplication.ComputeDailyWage(yearlysaleries.DayliWage, insuranceEmployeeDataItem.EmployeeId, getContractsData.Data.WorkshopId, year);
|
||||||
|
dailyWage = res;
|
||||||
|
}
|
||||||
|
|
||||||
|
//بدست آوردن پایه سنوات
|
||||||
|
var baseYears = _insuranceListRepository.GetEmployeeInsuranceBaseYear(insuranceEmployeeDataItem.EmployeeId, getContractsData.Data.WorkshopId,
|
||||||
|
workingDays.countWorkingDays, startDateGr, endDateGr, workingDays.startWork, workingDays.endWork, workingDays.hasLeftWorkInMonth);
|
||||||
|
|
||||||
|
//جمع مزد روزانه و پایه سنوات
|
||||||
|
var dailyWagePlusBaseYears = dailyWage + baseYears.baseYear;
|
||||||
|
|
||||||
|
|
||||||
|
//دستمزد ماهانه با محاسبه پایه سنوات
|
||||||
|
var monthlySalary = Tools.GetRoundDoubleValue(dailyWagePlusBaseYears * workingDays.countWorkingDays);
|
||||||
|
|
||||||
|
//حق تاهل
|
||||||
|
var marriedAllowanceForInsurance = item.MaritalStatus == "متاهل" ? yearlysaleries.MarriedAllowance : 0;
|
||||||
|
|
||||||
|
//محاسبه مزایای ماهانه
|
||||||
|
var monthlyBenefits = _insuranceListApplication.GetMonthlyBenefits(endOfMonth, yearlysaleries.ConsumableItems, yearlysaleries.HousingAllowance, marriedAllowanceForInsurance, workingDays.countWorkingDays, getContractsData.Data.TypeOfInsuranceSend, insuranceEmployeeDataItem.JobId, insuranceEmployeeDataItem.EmployeeId, insuranceEmployeeDataItem.IncludeStatus);
|
||||||
|
if (getContractsData.Data.HasInsuranceCheckoutOverTime)
|
||||||
|
{
|
||||||
|
|
||||||
|
monthlyBenefits = Tools.GetRoundDoubleValue(monthlyBenefits += overTimePay);
|
||||||
|
}
|
||||||
|
|
||||||
|
//محاسبه جمع مزایای مشمول و دستمزد ماهانه
|
||||||
|
var benefitsIncludedContinuous = monthlyBenefits + monthlySalary;
|
||||||
|
|
||||||
|
//محاسبه حق بیمه سهم بیمه شده
|
||||||
|
insuranceShare = (benefitsIncludedContinuous * 7) / 100;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region ResultToSave
|
||||||
|
|
||||||
|
var syear = Convert.ToInt32(item.ContractStart.Substring(0, 4));
|
||||||
|
var smonth = Convert.ToInt32(item.ContractStart.Substring(5, 2));
|
||||||
|
|
||||||
|
string monthfarsiName = (item.ContractStart.Substring(5, 2)).ToFarsiMonthByNumber();
|
||||||
|
|
||||||
|
var yearShamsi = item.ContractStart.Substring(0, 4);
|
||||||
|
|
||||||
|
|
||||||
|
var dayliWageDouble = mandatoryCompute.SalaryCompute.MoneyToDouble();
|
||||||
|
// کمک هزینه اقلام
|
||||||
|
var consumableItem = mandatoryCompute.ConsumableItems.MoneyToDouble();
|
||||||
|
//حق اولاد
|
||||||
|
var familyAllowance = mandatoryCompute.FamilyAllowance.MoneyToDouble();
|
||||||
|
//کمک هزینه مسکن
|
||||||
|
var housingAllowance = mandatoryCompute.HousingAllowance.MoneyToDouble();
|
||||||
|
//حق تاهل
|
||||||
|
var marriedAllowance = mandatoryCompute.MarriedAllowance.MoneyToDouble();
|
||||||
|
|
||||||
|
#region Salary
|
||||||
|
|
||||||
|
var totalDays = (item.Separation.ContractEndGr - item.Separation.ContractStartGr).TotalDays + 1;
|
||||||
|
|
||||||
|
//حقوق ماهانه
|
||||||
|
var monthlyWage = mandatoryCompute.DailySalaryAffected * totalDays;
|
||||||
|
//پایه سنوات
|
||||||
|
var bacicYears = mandatoryCompute.BaseYearAffected * totalDays;
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
//سنوات
|
||||||
|
var years = yearsPay.YearsPay;
|
||||||
|
//عیدی و پاداش
|
||||||
|
var bunos = bunosesPay.Bunoses;
|
||||||
|
|
||||||
|
//فاطمه احمدژاد === موقت عیدی و پاداش و سنوات حساب نشه
|
||||||
|
if (item.EmployeeId == 45104 && getContractsData.Data.WorkshopId == 315)
|
||||||
|
{
|
||||||
|
years = 0;
|
||||||
|
|
||||||
|
bunos = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
//تعداد زروز های فیش
|
||||||
|
var sumOfWorkingDays = $"{totalDays}";
|
||||||
|
|
||||||
|
//مبلغ جمعه کاری
|
||||||
|
double fridayPay = 0;
|
||||||
|
if (Friday > 0)
|
||||||
|
{
|
||||||
|
var fridayPercent = dayliWageDouble * 40 / 100;
|
||||||
|
//فوق العاده جمعه کاری
|
||||||
|
fridayPay = fridayPercent * Friday;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//حق بیمه سهم کارگر
|
||||||
|
#region InsuranceDeduction
|
||||||
|
|
||||||
|
double insuranceDeduction = 0;
|
||||||
|
bool hasInsuranceShareTheSameAsList = false;
|
||||||
|
var inshuranceShareRound = Tools.GetRoundDoubleValue(insuranceShare);
|
||||||
|
if (inshuranceShareRound == 0)
|
||||||
|
{
|
||||||
|
var insuranceOverTime = getContractsData.Data.HasInsuranceCheckoutOverTime ? overTimePay : 0;
|
||||||
|
insuranceDeduction = (monthlyWage + bacicYears + consumableItem + housingAllowance + marriedAllowance + insuranceOverTime) * 7 / 100;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
insuranceDeduction = inshuranceShareRound;
|
||||||
|
hasInsuranceShareTheSameAsList = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
//مقادیر - روز - تعداد - ساعت
|
||||||
|
#region Values
|
||||||
|
|
||||||
|
//مدت شب کاری
|
||||||
|
var overNightWorkValue =
|
||||||
|
$"{Convert.ToInt32(mandatoryCompute.OverNightWorkH):00}:{Convert.ToInt32(mandatoryCompute.OverNightWorkM):00}";
|
||||||
|
//تعداد جمعه کاری
|
||||||
|
var fridayWorkValue = $"{Friday}";
|
||||||
|
//نوع نوبت کاری
|
||||||
|
var rotatingShiftValue = mandatoryCompute.RotatingShiftValue;
|
||||||
|
// تعداد سال های سنوات
|
||||||
|
var totalDayOfYearsCompute = yearsPay.YearsPay > 0 ? $"{yearsPay.TotalDayCompute}" : "0";
|
||||||
|
//تعداد روز های عیدی و پاداش
|
||||||
|
var totalDayOfBunosesCompute = bunosesPay.Bunoses > 0 ? $"{bunosesPay.TotalDayCompute}" : "0";
|
||||||
|
//مدت اضافه کارس
|
||||||
|
var overTimeWorkValue =
|
||||||
|
$"{Convert.ToInt32(mandatoryCompute.OverTimeWorkH):00}:{Convert.ToInt32(mandatoryCompute.OverTimeWorkM):00}";
|
||||||
|
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
//کسر اضافه کار از غیبت یا بلعکس
|
||||||
|
#region OverTimeAndAbsencSubtraction
|
||||||
|
var absenceDeduction = abcenseDeductionCompute ? leavePayNew.AbsenceDeduction : 0;
|
||||||
|
|
||||||
|
if (overTimePay > 0 && absenceDeduction > 0)
|
||||||
|
{
|
||||||
|
if (absenceDeduction >= overTimePay)
|
||||||
|
{
|
||||||
|
absenceDeduction -= overTimePay;
|
||||||
|
overTimePay = 0;
|
||||||
|
overTimeWorkValue = "00:00";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
overTimePay -= absenceDeduction;
|
||||||
|
absenceDeduction = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
//مساعده
|
||||||
|
#region SalaryAid
|
||||||
|
|
||||||
|
var salaryAids =
|
||||||
|
_rollCallMandatoryRepository.SalaryAidsForCheckout(contract.EmployeeId, contract.WorkshopIds, startDateGr, endDateGr)
|
||||||
|
.Select(x => new CheckoutSalaryAid(x.Amount, x.SalaryAidDateTimeGe, x.SalaryAidDateTimeFa, x.CalculationDateTimeGe, x.CalculationDateTimeFa, x.Id)).ToList();
|
||||||
|
|
||||||
|
var salaryAidDeduction = salaryAids.Sum(x => x.Amount.MoneyToDouble());
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
//اقساط وام
|
||||||
|
#region LoanInstallment
|
||||||
|
|
||||||
|
var loanInstallments = _rollCallMandatoryRepository.LoanInstallmentForCheckout(contract.EmployeeId, contract.WorkshopIds,
|
||||||
|
item.Separation.ContractStartGr, item.Separation.HasLeft ? DateTime.MaxValue : item.Separation.ContractEndGr)
|
||||||
|
.Select(x =>
|
||||||
|
new CheckoutLoanInstallment(x.Amount, x.Month, x.Year, x.IsActive, x.RemainingAmount, x.LoanAmount, x.Id)).ToList();
|
||||||
|
|
||||||
|
var installmentDeduction = loanInstallments.Sum(x => x.AmountForMonth.MoneyToDouble());
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
//پاداش
|
||||||
|
#region Reward
|
||||||
|
|
||||||
|
|
||||||
|
var rewards = new List<CheckoutReward>();
|
||||||
|
double rewardPay = 0;
|
||||||
|
if (getContractsData.Data.RewardComputeOnCheckout)
|
||||||
|
{
|
||||||
|
rewards = _rollCallMandatoryRepository.RewardForCheckout(contract.EmployeeId, contract.WorkshopIds, startDateGr, endDateGr)
|
||||||
|
.Select(x => new CheckoutReward(x.Amount, x.AmountDouble, x.GrantDateFa, x.GrantDateGr, x.Description, x.Title, x.Id)).ToList();
|
||||||
|
|
||||||
|
rewardPay = rewards.Sum(x => x.AmountDouble);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
//جدول حضورغیاب پرسنل
|
||||||
|
#region CheckoutRollCall
|
||||||
|
|
||||||
|
//کارکرد واقعی - محاسبات شامل مرخصی افزوده شده
|
||||||
|
var totalWorkingTimeSpan = mandatoryCompute.TotalWorkingTimeSpan;
|
||||||
|
//ساعت استراحت
|
||||||
|
var totalBreakTimeSpan = mandatoryCompute.TotalBreakTimeSpan;
|
||||||
|
// ساعت حضور - بدون مرخصی افزده شده
|
||||||
|
var totalPresentTimeSpan = mandatoryCompute.TotalPresentTimeSpan;
|
||||||
|
//مدت مرخصی استحقاقی
|
||||||
|
var totalPaidLeave = mandatoryCompute.TotalPaidLeave;
|
||||||
|
//مدت مرخصی استعلاجی
|
||||||
|
var totalSickLeave = mandatoryCompute.TotalSickLeave;
|
||||||
|
|
||||||
|
|
||||||
|
var firstDayOfMonth = startDateGr;
|
||||||
|
var firstDayOfCurrentMonth = new DateTime(syear, smonth, 1, new PersianCalendar());
|
||||||
|
|
||||||
|
LeaveSearchModel sickLeaveSearch = new LeaveSearchModel()
|
||||||
|
{
|
||||||
|
EmployeeId = contract.EmployeeId,
|
||||||
|
WorkshopId = contract.WorkshopIds,
|
||||||
|
StartLeaveGr = item.Separation.ContractStartGr,
|
||||||
|
EndLeaveGr = item.Separation.ContractEndGr,
|
||||||
|
IsAccepted = true,
|
||||||
|
};
|
||||||
|
var leaves = _leaveApplication.search(sickLeaveSearch);
|
||||||
|
|
||||||
|
firstDayOfMonth.AddMonthsFa(1, out var lastDayOfCurrentMonth);
|
||||||
|
|
||||||
|
lastDayOfCurrentMonth = lastDayOfCurrentMonth.AddDays(-1);
|
||||||
|
|
||||||
|
int dateRange = (int)(lastDayOfCurrentMonth - firstDayOfCurrentMonth).TotalDays + 1;
|
||||||
|
|
||||||
|
var holidays = _holidayItemApplication.Search(new HolidayItemSearchModel()
|
||||||
|
{
|
||||||
|
HolidayYear = item.Separation.ContractStartGr.ToFarsiYear()
|
||||||
|
});
|
||||||
|
//all the dates from start to end, to be compared with present days to get absent dates
|
||||||
|
var completeDaysList = Enumerable.Range(0, dateRange).Select(offset => firstDayOfCurrentMonth.AddDays(offset).Date).ToList();
|
||||||
|
|
||||||
|
var absentRecords = completeDaysList
|
||||||
|
.ExceptBy(mandatoryCompute.GroupedRollCalls.Select(x => x.CreationDate.Date), y => y.Date)
|
||||||
|
.Select(x =>
|
||||||
|
{
|
||||||
|
var leave = leaves.FirstOrDefault(y =>
|
||||||
|
y.EmployeeId == contract.EmployeeId && y.EndLeaveGr.Date >= x.Date && y.StartLeaveGr.Date <= x.Date);
|
||||||
|
var isHoliday = holidays.Any(y => y.HolidaydateGr == x.Date);
|
||||||
|
var isFriday = x.Date.DayOfWeek == DayOfWeek.Friday;
|
||||||
|
var isNormalWorkingDay = isHoliday == false && isFriday == false;
|
||||||
|
return new CheckoutDailyRollCallViewModel()
|
||||||
|
{
|
||||||
|
StartDate1 = null,
|
||||||
|
EndDate1 = null,
|
||||||
|
DateTimeGr = x.Date,
|
||||||
|
DayOfWeek = x.Date.DayOfWeek.ToString(),
|
||||||
|
RollCallDateFa = x.Date.ToFarsi(),
|
||||||
|
LeaveType = leave != null ? leave.LeaveType : "",
|
||||||
|
IsAbsent = leave == null && isNormalWorkingDay
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
var presentDays = mandatoryCompute.GroupedRollCalls.Select(x =>
|
||||||
|
{
|
||||||
|
|
||||||
|
var orderedRollcalls = x.ShiftList.OrderBy(y => y.Start);
|
||||||
|
|
||||||
|
var rollCallTimeSpanPerDay = x.SumOneDaySpan;
|
||||||
|
TimeSpan breakTimePerDay = x.BreakTime;
|
||||||
|
|
||||||
|
return new CheckoutDailyRollCallViewModel()
|
||||||
|
{
|
||||||
|
StartDate1 = orderedRollcalls.FirstOrDefault().Start.ToString("HH:mm"),
|
||||||
|
EndDate1 = orderedRollcalls.FirstOrDefault().EndWithOutResTime.ToString("HH:mm"),
|
||||||
|
|
||||||
|
StartDate2 = orderedRollcalls.Skip(1).FirstOrDefault()?.Start.ToString("HH:mm") ?? "",
|
||||||
|
EndDate2 = orderedRollcalls.Skip(1).FirstOrDefault()?.EndWithOutResTime.ToString("HH:mm") ?? "",
|
||||||
|
|
||||||
|
TotalhourseSpan = rollCallTimeSpanPerDay,
|
||||||
|
|
||||||
|
BreakTimeTimeSpan = breakTimePerDay,
|
||||||
|
|
||||||
|
DayOfWeek = x.CreationDate.DayOfWeek.DayOfWeeKToPersian(),
|
||||||
|
RollCallDateFa = x.CreationDate.Date.ToFarsi(),
|
||||||
|
DateTimeGr = x.CreationDate.Date,
|
||||||
|
IsSliced = x.ShiftList.Count() > 2,
|
||||||
|
IsAbsent = false
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
presentDays = presentDays.Select(x => new CheckoutDailyRollCallViewModel
|
||||||
|
{
|
||||||
|
StartDate1 = x.StartDate1,
|
||||||
|
EndDate1 = x.EndDate1,
|
||||||
|
EndDate2 = x.EndDate2,
|
||||||
|
StartDate2 = x.StartDate2,
|
||||||
|
TotalWorkingHours = $"{(int)(x.TotalhourseSpan.TotalHours)}:{x.TotalhourseSpan.Minutes:00}",
|
||||||
|
BreakTimeString = $"{(int)(x.BreakTimeTimeSpan.TotalHours)}:{x.BreakTimeTimeSpan.Minutes:00}",
|
||||||
|
TotalhourseSpan = x.TotalhourseSpan,
|
||||||
|
BreakTimeTimeSpan = x.BreakTimeTimeSpan,
|
||||||
|
DayOfWeek = x.DayOfWeek,
|
||||||
|
RollCallDateFa = x.RollCallDateFa,
|
||||||
|
DateTimeGr = x.DateTimeGr,
|
||||||
|
IsSliced = x.IsSliced,
|
||||||
|
IsAbsent = false
|
||||||
|
});
|
||||||
|
|
||||||
|
var result = presentDays.Concat(absentRecords).OrderBy(x => x.DateTimeGr).ToList();
|
||||||
|
result.ForEach(x =>
|
||||||
|
{
|
||||||
|
x.IsHoliday = holidays.Any(y => x.DateTimeGr.Date == y.HolidaydateGr.Date);
|
||||||
|
x.IsFriday = x.DateTimeGr.DayOfWeek == DayOfWeek.Friday;
|
||||||
|
});
|
||||||
|
|
||||||
|
var checkoutRollCallDays = result.Select(x => new CheckoutRollCallDay(x.DateTimeGr,
|
||||||
|
x.StartDate1, x.EndDate1, x.StartDate2, x.EndDate2,
|
||||||
|
x.BreakTimeTimeSpan, x.IsSliced, x.TotalhourseSpan, x.IsAbsent, x.IsFriday, x.IsHoliday, x.LeaveType))
|
||||||
|
.ToList();
|
||||||
|
|
||||||
|
|
||||||
|
double mandatoryHours = _mandatoryHoursApplication.GetMandatoryHoursByYearAndMonth(syear, smonth);
|
||||||
|
int mandatoryWholeHours = (int)mandatoryHours;
|
||||||
|
int mandatoryMinutes = (int)((mandatoryHours - mandatoryWholeHours) * 60);
|
||||||
|
|
||||||
|
var totalMandatoryHours = TimeSpan.FromHours(mandatoryWholeHours).Add(TimeSpan.FromMinutes(mandatoryMinutes));
|
||||||
|
var checkoutRollCall = new CheckoutRollCall(totalMandatoryHours, totalPresentTimeSpan, totalBreakTimeSpan,
|
||||||
|
totalWorkingTimeSpan, totalPaidLeave, totalSickLeave, checkoutRollCallDays);
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
//مقادیر پرداخت نهایی - مطالبات - کسورات
|
||||||
|
#region TotalPayment
|
||||||
|
|
||||||
|
var shiftPay = contract.WorkshopIds == 552 && hasRollCall ? 0 : mandatoryCompute.ShiftPay;
|
||||||
|
|
||||||
|
|
||||||
|
var totalClaimsDouble = monthlyWage + bacicYears + consumableItem + housingAllowance + marriedAllowance + overTimePay +
|
||||||
|
overNightPay + familyAllowance + bunos + years + leavePayNew.LeavPay + fridayPay + shiftPay + rewardPay;
|
||||||
|
var totalDeductionDouble = insuranceDeduction + absenceDeduction + installmentDeduction + salaryAidDeduction;
|
||||||
|
|
||||||
|
//مطالبات
|
||||||
|
var totalClaims = totalClaimsDouble.ToMoney();
|
||||||
|
//کسورات
|
||||||
|
var totalDeductions = totalDeductionDouble.ToMoney();
|
||||||
|
|
||||||
|
//مبلغ قابل پرداخت
|
||||||
|
var totalPayment = totalClaimsDouble - totalDeductionDouble;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
#region CreateCheckoutModel
|
||||||
|
|
||||||
|
var checkout = new Checkout(item.EmployeeFullName, item.FathersName, item.NationalCode
|
||||||
|
, item.DateOfBirth, item.EmployeeId, getContractsData.Data.WorkshopName, getContractsData.Data.WorkshopId, item.ContractNo, item.Separation.ContractStartGr, item.Separation.ContractEndGr, monthfarsiName, yearShamsi,
|
||||||
|
item.ContractId, item.WorkingHours.WorknigHoursId, monthlyWage, bacicYears, consumableItem, housingAllowance
|
||||||
|
, overTimePay, overNightPay, fridayPay, 0, shiftPay, familyAllowance, bunos, years, leavePayNew.LeavPay, insuranceDeduction, 0, installmentDeduction, salaryAidDeduction, absenceDeduction, sumOfWorkingDays,
|
||||||
|
getContractsData.Data.ArchiveCode, item.PersonnelCode, totalClaims, totalDeductions, totalPayment, "0", marriedAllowance, leavePayNew.LeaveCheckout, leavePayNew.CreditLeaves, leavePayNew.AbsencePeriod, leavePayNew.AverageHoursPerDay, hasRollCall, overTimeWorkValue, overNightWorkValue
|
||||||
|
, fridayWorkValue, rotatingShiftValue, "0", leavePayNew.TotalDayOfLeaveCompute, totalDayOfYearsCompute, totalDayOfBunosesCompute,
|
||||||
|
loanInstallments, salaryAids, checkoutRollCall, mandatoryCompute.EmployeeMandatoryHours, hasInsuranceShareTheSameAsList, rewards, rewardPay);
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#region SaveToDb
|
||||||
|
|
||||||
|
|
||||||
|
var saveToDb = await _checkoutRepository.CreateCheckout(checkout);
|
||||||
|
if (!saveToDb)
|
||||||
|
{
|
||||||
|
createFailedCount += 1;
|
||||||
|
createFailedList.Add(item.EmployeeFullName);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
createSuccessCount += 1;
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
createFailedCount += 1;
|
||||||
|
createFailedList.Add(item.EmployeeFullName);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var percent = (successProcess / (double)countList) * 100;
|
||||||
|
// await signalR.SendAsync("showStatus", countList, createFailedCount, createSuccessCount, (int)percent, createFailedList);
|
||||||
|
await signalR.SendAsync("all", countList);
|
||||||
|
await signalR.SendAsync("failed", createFailedCount);
|
||||||
|
await signalR.SendAsync("Success", createSuccessCount);
|
||||||
|
await signalR.SendAsync("percent", (int)percent);
|
||||||
|
await signalR.SendAsync("failedList", createFailedList);
|
||||||
|
|
||||||
|
successProcess += 1;
|
||||||
|
|
||||||
|
Console.ForegroundColor = ConsoleColor.Cyan;
|
||||||
|
Console.WriteLine("================================================================== ");
|
||||||
|
Console.WriteLine("======================================== Counter " + successProcess + " ================== ");
|
||||||
|
Console.WriteLine("================================================================== ");
|
||||||
|
Console.ResetColor();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Console.ForegroundColor = ConsoleColor.Yellow;
|
||||||
|
Console.WriteLine("after GetData To mandatoryCompute" + timer.Elapsed);
|
||||||
|
Console.ResetColor();
|
||||||
|
return op.Succcedded();
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
public async Task<PagedResult<CheckoutDto>> GetList(CheckoutSearchModelDto searchModel)
|
||||||
|
{
|
||||||
|
return await _checkoutRepository.GetList(searchModel);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public async Task<RotatingShiftOfCheckoutDto> GetRotatingShiftApi(long id)
|
||||||
|
{
|
||||||
|
var result = new ComputingViewModel();
|
||||||
|
var checkout = GetDetails(id);
|
||||||
|
var workingHours = _workingHoursTempRepository.GetByContractIdConvertToShiftwork4(checkout.ContractId);
|
||||||
|
var typeOfWorkingHours = "";
|
||||||
|
if (checkout.HasRollCall)
|
||||||
|
{
|
||||||
|
result = await _rollCallMandatoryRepository.RotatingShiftReport(checkout.WorkshopId, checkout.EmployeeId, checkout.ContractStartGr, checkout.ContractEndGr, workingHours.ShiftWork, true, workingHours, false);
|
||||||
|
typeOfWorkingHours = "دارای حضورغیاب";
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var workshop = _workshopRepository.GetDetails(checkout.WorkshopId);
|
||||||
|
result = await _rollCallMandatoryRepository.RotatingShiftReport(checkout.WorkshopId, checkout.EmployeeId, checkout.ContractStartGr, checkout.ContractEndGr, workingHours.ShiftWork, false, workingHours, workshop.WorkshopHolidayWorking);
|
||||||
|
typeOfWorkingHours = "بدون حضورغیاب";
|
||||||
|
}
|
||||||
|
|
||||||
|
var items = result.RotatingResultList.Select(x => new RotatingShiftListDto()
|
||||||
|
{
|
||||||
|
MorningShiftSpan = x.MorningString,
|
||||||
|
EveningShiftSpan = x.EveningString,
|
||||||
|
NightShiftSpan = x.NightString,
|
||||||
|
|
||||||
|
IsMorningShift = x.IsMorningShift,
|
||||||
|
IsEveningShift = x.IsEveningShift,
|
||||||
|
IsNightShift = x.IsNightShift,
|
||||||
|
|
||||||
|
ShiftDate = x.RotatingDate
|
||||||
|
}).ToList();
|
||||||
|
return new RotatingShiftOfCheckoutDto()
|
||||||
|
{
|
||||||
|
FullName = checkout.EmployeeFullName,
|
||||||
|
YearAndMonth = $"{checkout.Month} {checkout.Year}",
|
||||||
|
HasRotatingShift = result.RotatingStatus != "نوبت کاری ندارد",
|
||||||
|
RotatingShiftStatus = result.RotatingStatus,
|
||||||
|
TypeOfWorkingHours = typeOfWorkingHours,
|
||||||
|
RotatingShiftList = items
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public Task<List<CheckoutPrintDto>> CheckoutPrint(List<long> ids)
|
||||||
|
{
|
||||||
|
return _checkoutRepository.CheckoutPrint(ids);
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user