Compare commits

...

500 Commits
master ... Main

Author SHA1 Message Date
dd89e5a04d Merge branch 'Feature/salary-aid/client-api' into Main
Some checks failed
Deploy Development ASP.NET Core App to IIS / build-and-deploy (push) Has been cancelled
2026-02-05 15:01:28 +03:30
gozareshgir
59d73d5ca8 Merge branch 'Main' of https://pm.gozareshgir.ir/gozareshgir/OriginalGozareshgir into Main 2026-02-05 14:25:05 +03:30
gozareshgir
ce146d9733 merge from AdminCheckoutapi 2026-02-05 14:25:00 +03:30
cb3d4b711a Merge branch 'Feature/salary-aid/client-api' into Main 2026-02-05 14:19:16 +03:30
gozareshgir
ec8dfe4799 change create checkout api 2026-02-05 14:18:11 +03:30
b69d450a3a Merge branch 'Feature/salary-aid/client-api' into Main 2026-02-05 13:56:23 +03:30
c980c627ba Merge branch 'Feature/salary-aid/client-api' into Main 2026-02-05 12:53:44 +03:30
8cf960ebd7 Merge branch 'Feature/salary-aid/client-api' into Main 2026-02-05 12:01:35 +03:30
ad167ea1f4 Merge branch 'Feature/roll-call/client-api' into Main 2026-02-05 12:01:31 +03:30
9475c786d3 add endpoint to remove employee roll calls by date 2026-02-05 11:58:52 +03:30
b30a8b0e4d Merge branch 'Feature/roll-call/client-api' into Main 2026-02-05 11:32:47 +03:30
0ba0043751 Merge branch 'Feature/salary-aid/client-api' into Main 2026-02-05 11:32:44 +03:30
dddc4b143a add edit functionality for employee roll call details 2026-02-05 11:29:41 +03:30
127d9f7a46 Merge branch 'Feature/salary-aid/client-api' into Main 2026-02-05 11:06:24 +03:30
793b10c6cc Merge branch 'Feature/salary-aid/client-api' into Main 2026-02-05 10:33:39 +03:30
gozareshgir
8ff6d8ecc0 Merge branch 'Main' of https://pm.gozareshgir.ir/gozareshgir/OriginalGozareshgir into Main 2026-02-03 19:24:56 +03:30
gozareshgir
c466b68c9a sms report chage 2026-02-03 19:24:44 +03:30
332f58de9b Merge branch 'master' into Main 2026-02-03 17:56:21 +03:30
db0047d3d3 set time get details 2026-02-03 17:54:32 +03:30
gozareshgir
2c305e1d7a change 2026-02-03 17:47:08 +03:30
gozareshgir
da966e49c3 add create signalR 2026-02-03 17:16:25 +03:30
gozareshgir
7d35a65f35 save to db Checkout new Method 2026-02-03 17:00:36 +03:30
ddeb6a7182 Merge branch 'Feature/program-manager/request-additional-time' into Main 2026-02-03 15:53:35 +03:30
77b5c8168e add project details to CreateTimeRequestDetailsResponse and handle section validation 2026-02-03 15:49:47 +03:30
gozareshgir
1343d9a2a7 Merge branch 'master' into AdminCheckoutApi 2026-02-03 15:27:00 +03:30
d7731cd7ad Merge branch 'Feature/program-manager/request-additional-time' into Main 2026-02-03 15:25:02 +03:30
cd2c770a9f add parameter in get 2026-02-03 15:17:39 +03:30
gozareshgir
734d0ca692 Merge branch 'Main' of https://pm.gozareshgir.ir/gozareshgir/OriginalGozareshgir into Main 2026-02-03 15:16:55 +03:30
gozareshgir
d07a78a637 Merge branch 'Feature/SmsRepoetApi' into Main 2026-02-03 15:16:48 +03:30
gozareshgir
1ac73f9689 change showStatus signalR 2026-02-03 15:09:50 +03:30
c28bb46aaf Merge remote-tracking branch 'origin/Main' into Main 2026-02-03 14:24:58 +03:30
gozareshgir
d2d95b4fbe fix conflict 2026-02-03 14:21:48 +03:30
gozareshgir
f067d5a7b4 merge from smsReport 2026-02-03 14:21:34 +03:30
gozareshgir
fe8e94f121 merge from master 2026-02-03 14:10:48 +03:30
gozareshgir
c493718452 InstantSms change signalR 2026-02-03 14:08:16 +03:30
dc56df5e0f Merge remote-tracking branch 'origin/Main' into Main 2026-02-03 14:03:05 +03:30
d6e60e2cab Merge branch 'Feature/loan/client-api' into Main 2026-02-03 13:46:00 +03:30
fa4c39904a chnage loan list to new type 2026-02-03 13:44:47 +03:30
gozareshgir
a14a78309e Merge branch 'Feature/SmsRepoetApi' 2026-02-02 19:46:54 +03:30
gozareshgir
4ccade4c7a change sms url 2026-02-02 19:45:51 +03:30
085d138bc5 Merge branch 'Feature/SmsRepoetApi' 2026-02-02 19:19:32 +03:30
gozareshgir
6e74447ccb Merge branch 'Main' of https://pm.gozareshgir.ir/gozareshgir/OriginalGozareshgir into Main 2026-02-02 19:16:55 +03:30
gozareshgir
b65c33c43a test change 2026-02-02 19:16:47 +03:30
0b1cc34008 Merge branch 'Feature/roll-call/client-api' into Main 2026-02-02 19:09:48 +03:30
3dace574ff refactor date parsing method in RollCallCaseHistoryController 2026-02-02 19:08:25 +03:30
bf2a102a55 add Excel export functionality for roll call case history 2026-02-02 19:07:11 +03:30
88744bd4cf add endpoint to download case history as Excel file 2026-02-02 17:54:33 +03:30
0705823157 Merge branch 'Feature/roll-call/client-api' into Main 2026-02-02 17:32:41 +03:30
5942075dd6 refactor roll call case history controller and add total working hours endpoint 2026-02-02 17:31:37 +03:30
61015ae5c1 Merge remote-tracking branch 'origin/master' 2026-02-02 16:54:32 +03:30
57a5000124 refactor GetProjectsListQueryHandler to improve task and phase status aggregation logic 2026-02-02 16:52:53 +03:30
gozareshgir
734fd9ebca change 2026-02-02 16:37:23 +03:30
7cbb9eef69 add validation and management for additional time entries in SetTimeProjectCommand 2026-02-02 16:07:43 +03:30
gozareshgir
add04f854e merge from master 2026-02-02 15:37:16 +03:30
gozareshgir
debb54bafc test For Instant Sms 2026-02-02 14:28:07 +03:30
gozareshgir
7a065e9d16 Checkout Except EmployeeId = 7175 2026-02-02 13:57:15 +03:30
3bd20d528f Merge branch 'Feature/EmployeesBankInfo/client-api' into Main 2026-02-02 10:51:37 +03:30
b850ab1206 refactor EmployeeBankInfoController to enhance delete functionality and add set default bank API 2026-02-02 10:47:58 +03:30
33a2c0be95 Merge branch 'Feature/EmployeesBankInfo/client-api' into Main 2026-02-02 10:23:17 +03:30
fedfc372d0 add BankController and methods for retrieving bank list; update EmployeeBankInfoController with Excel download functionality 2026-02-02 10:22:34 +03:30
gozareshgir
a2c1fd30bf Mandatory Compute Added to CreateCheckoutApi 2026-02-01 19:36:09 +03:30
170f30f162 Merge branch 'Feature/loan/client-api' into Main 2026-02-01 18:16:44 +03:30
db26c29057 Merge branch 'Feature/EmployeesBankInfo/client-api' into Main 2026-02-01 18:16:33 +03:30
0e7787dd56 add page size for search model 2026-02-01 18:14:28 +03:30
gozareshgir
1e9f864c1e Merge branch 'master' into AdminCheckoutApi 2026-02-01 13:23:27 +03:30
gozareshgir
e2bab8c1ce HasRollCall Method Changeed 2026-02-01 13:20:22 +03:30
gozareshgir
3f23d1dac0 saparation creatcheckout on api mehod changes 2026-01-31 17:08:24 +03:30
gozareshgir
6f0a579c33 chage 2026-01-31 15:38:47 +03:30
gozareshgir
b088d3089d merge from smsReportApi 2026-01-29 15:29:19 +03:30
gozareshgir
45b4690066 Test singnalR instandSms 2026-01-29 15:26:04 +03:30
gozareshgir
26517c20d8 some change 2026-01-29 13:35:22 +03:30
gozareshgir
7ce3224d69 Merge branch 'Feature/program-manager/BugSection' into Main 2026-01-29 11:54:28 +03:30
gozareshgir
5a9bfde922 Merge branch 'Feature/SalaryPaymentSetting' into Main 2026-01-29 11:53:38 +03:30
gozareshgir
64746fa3c3 Change MontlySalaryName to SalaryPerMinute 2026-01-29 11:52:27 +03:30
gozareshgir
bc3bc17a61 BugSetTimeSlice 2026-01-29 11:33:41 +03:30
gozareshgir
a678b92c39 merge from BugSection 2026-01-28 16:57:55 +03:30
gozareshgir
4c513191b6 BugSectionAdditionalTime get and post 2026-01-28 16:56:52 +03:30
gozareshgir
33ae28f0e5 merge From BugSection 2026-01-28 12:45:48 +03:30
gozareshgir
2f45d519b9 SnapShot Fixed - bugSectionWorkflow Completed 2026-01-28 12:34:23 +03:30
179de86840 update SMS report links in menu to use absolute URLs 2026-01-27 21:10:18 +03:30
3840d89433 Merge branch 'Feature/SmsRepoetApi' into Main 2026-01-27 20:21:18 +03:30
e0d10510e0 update RemoveSmsSetting method to return OperationResult 2026-01-27 20:20:54 +03:30
23d42bd8f5 add initial migration for BugSection and BugDocuments tables 2026-01-27 18:53:21 +03:30
25aa76b16c Merge remote-tracking branch 'origin/Feature/program-manager/BugSection' into Feature/program-manager/BugSection
# Conflicts:
#	ProgramManager/src/Infrastructure/GozareshgirProgramManager.Infrastructure/Migrations/AppDbContextModelSnapshot.cs
2026-01-27 18:50:48 +03:30
d6a9c5e87d remove mig 2026-01-27 18:48:00 +03:30
gozareshgir
34d336f43e add bugsection Workflow 2026-01-27 18:39:59 +03:30
gozareshgir
6b81f383f6 change after merge 2026-01-27 17:49:29 +03:30
gozareshgir
54ff59de48 merge from additional-times 2026-01-27 17:49:06 +03:30
411363555f Merge branch 'master' into Main
# Conflicts:
#	ProgramManager/src/Infrastructure/GozareshgirProgramManager.Infrastructure/Services/FileManagement/FileUploadService.cs
2026-01-27 17:44:02 +03:30
a55492b16a add CancelSendVerificationSms flag to InstitutionContractExtensionCompleteRequest and update SMS sending logic 2026-01-27 17:43:05 +03:30
gozareshgir
faeb5e11a5 fix after conflict 2026-01-27 16:47:48 +03:30
gozareshgir
50b56d928d merg from BugSection 2026-01-27 16:47:33 +03:30
gozareshgir
9f09b6af97 change 2026-01-27 16:34:13 +03:30
gozareshgir
63e169b82d bug section completed 2026-01-27 16:32:55 +03:30
9596c8f8b6 refactor FileUploadService to simplify category folder naming 2026-01-27 16:24:34 +03:30
gozareshgir
7339eaaadf Merge branch 'master' of https://pm.gozareshgir.ir/gozareshgir/OriginalGozareshgir into Feature/program-manager/BugSection 2026-01-27 16:12:00 +03:30
gozareshgir
e5c96c8bcb comand and query for bug section 2026-01-27 16:11:31 +03:30
8622f12f12 add file upload service and integrate with message sending 2026-01-27 15:54:38 +03:30
a20a847065 add mahan user for static accounts 2026-01-27 15:37:02 +03:30
258a809451 add .env files to .gitignore 2026-01-27 15:10:18 +03:30
gozareshgir
187b7406d2 fix conflict 2026-01-27 14:14:51 +03:30
gozareshgir
c51bb90a2b merge from master 2026-01-27 14:14:40 +03:30
gozareshgir
6285c7320e New PermissionCode to ProgramManager 2026-01-27 14:05:20 +03:30
gozareshgir
17f117726e bugSection and BugDocument mapping and migration 2026-01-27 13:40:05 +03:30
gozareshgir
13fb6fec5d init 2026-01-26 18:35:22 +03:30
5bead0cc86 Merge branch 'Feature/program-manager/request-additional-time' into Main 2026-01-26 18:32:16 +03:30
9bca1b81d6 Merge remote-tracking branch 'origin/master' 2026-01-26 18:08:51 +03:30
9ff6b5cf56 fix rollcall mannaul edit bug 2026-01-26 18:08:33 +03:30
gozareshgir
bef21edf22 chnage GetContractAndIncluded 2026-01-26 14:44:30 +03:30
gozareshgir
04642b7257 Merge branch 'master' into Fix/program-manager/fix-some-bugs 2026-01-25 20:05:30 +03:30
gozareshgir
c151e2d3f7 some changes 2026-01-25 19:40:28 +03:30
gozareshgir
1e36966767 merge from master 2026-01-25 19:39:51 +03:30
c1c9fe51cb fix creation for institutioncontract on Not Authorized contracting party 2026-01-25 19:08:13 +03:30
gozareshgir
0d2ac58bbb change 2026-01-25 12:52:25 +03:30
64693b2ca3 add workflow result 2026-01-25 12:34:27 +03:30
43ccb3a1dd Merge remote-tracking branch 'origin/master' 2026-01-24 19:10:59 +03:30
0134111aba fix bug for extensions 2026-01-24 19:10:24 +03:30
gozareshgir
3cc7adae35 Merge branch 'Feature/CheckoutReward' 2026-01-24 18:58:24 +03:30
gozareshgir
c97ea5356f Add Reward To checkout Completed 2026-01-24 18:57:53 +03:30
64cb4baba9 Merge branch 'Feature/program-manager/request-additional-time' into Main 2026-01-24 17:31:35 +03:30
03657b6848 add missing data for task revisions 2026-01-24 17:29:08 +03:30
69f4819bf6 Add Migration For Reward checkout 2026-01-24 16:58:45 +03:30
gozareshgir
1257e15b62 changeMapping 2026-01-24 16:45:10 +03:30
gozareshgir
331fb24a99 CheckoutReward 2026-01-24 16:29:01 +03:30
3be1547137 fix mannually verify error 2026-01-24 16:25:22 +03:30
gozareshgir
1324baa9c7 GetContractsAndIncludeDataDataToCreateCheckout changes 2026-01-24 14:48:35 +03:30
ce836476a1 Merge branch 'Feature/program-manager/request-additional-time' into Main
# Conflicts:
#	ProgramManager/src/Domain/GozareshgirProgramManager.Domain/ProjectAgg/Entities/Task/ProjectTask.cs
2026-01-24 14:04:29 +03:30
15f1c938f7 add workflow controller 2026-01-24 14:02:18 +03:30
7e563a0f01 add Task Revision query and revision and request mapping 2026-01-24 11:12:25 +03:30
gozareshgir
48cc07bf2a GetContractsAndIncludeDataDataToCreateCheckout 2026-01-22 16:09:27 +03:30
900b4b3f4d add convention for print InstitutionContract for pending data 2026-01-22 12:58:43 +03:30
gozareshgir
be319f6286 fixed 2026-01-22 12:39:26 +03:30
gozareshgir
d3dacceab1 GetContractToCreateCheckout change 2026-01-22 12:37:28 +03:30
bdc6f95af8 fix activate all after create new 2026-01-22 12:26:13 +03:30
7a73e69afa Merge branch 'master' into Fix/program-manager/fix-some-bugs 2026-01-22 11:06:58 +03:30
a3fd3e6920 add mapping 2026-01-22 10:17:04 +03:30
gozareshgir
8db161f960 fix 2026-01-21 20:00:19 +03:30
gozareshgir
3bb16c02b4 merge from AdminCheckoutApi 2026-01-21 19:57:48 +03:30
025c59e695 Complete TaskSectionRevisionMapping.cs 2026-01-21 19:21:26 +03:30
gozareshgir
7a79343b2f GetContractsToCreateCheckout Completed 2026-01-21 19:20:15 +03:30
36ccd96352 add time section time request mapping 2026-01-21 19:17:52 +03:30
a7c97b22b4 add DependencyInjection for task section revision and tasksection time request 2026-01-21 18:22:27 +03:30
4c143d6bbc add task section revision command 2026-01-21 18:05:14 +03:30
0e5a0a16ac add task section revision and folderize the project domain 2026-01-21 14:12:06 +03:30
gozareshgir
dfc392f07a Merge branch 'AdminCheckoutApi' of https://pm.gozareshgir.ir/gozareshgir/OriginalGozareshgir into AdminCheckoutApi 2026-01-21 12:57:41 +03:30
88f54b6310 add acceptTimeRequestCommandHandler- NotFinished 2026-01-21 10:28:38 +03:30
a68b879e95 comment the unfinished rollcall 2026-01-20 19:58:49 +03:30
161f3a92a7 Merge remote-tracking branch 'origin/AdminCheckoutApi' into AdminCheckoutApi
# Conflicts:
#	CompanyManagment.EFCore/Repository/CheckoutRepository.cs
2026-01-20 19:46:23 +03:30
5a1ec104a1 add salary aid and loan for checkout print 2026-01-20 19:44:40 +03:30
gozareshgir
7fc5ac7ccd change 2026-01-20 18:48:00 +03:30
gozareshgir
5b6f967fca workshopSelectList api and employeeSelectlist 2026-01-20 18:17:32 +03:30
d4694e7e1c add Accept time request command 2026-01-20 14:22:09 +03:30
gozareshgir
3317bde6d6 checkout group and one print 2026-01-20 14:16:00 +03:30
4bde4ade2d add time request status 2026-01-20 11:01:58 +03:30
gozareshgir
5cd30e5910 Checkout Print Api init 2026-01-19 19:12:48 +03:30
5c3c9739d1 fix regex and validation for rollcall history case details 2026-01-19 15:30:28 +03:30
bd12ff0506 add TaskSectionTimeRequest to programmanager 2026-01-19 15:19:58 +03:30
gozareshgir
d51e4c462a changes 2026-01-19 13:42:37 +03:30
gozareshgir
4463fdc177 Rotating Shift api completed 2026-01-19 13:41:36 +03:30
gozareshgir
2ce63d1e0f Merge branch 'master' into AdminCheckoutApi 2026-01-19 12:57:57 +03:30
gozareshgir
21302803b6 insurance WorkingDays bug Fixed 2026-01-19 12:32:51 +03:30
gozareshgir
38603b2249 rotatingshift init 2026-01-18 18:54:33 +03:30
gozareshgir
037723ef70 chenage 2026-01-18 18:08:23 +03:30
gozareshgir
7bb507c841 merge from adminCheckoutApi 2026-01-18 18:07:10 +03:30
gozareshgir
bf03247f81 checkout list completed 2026-01-18 15:59:17 +03:30
cb2c6b9ad1 Merge branch 'Feature/roll-call/client-api' into Main 2026-01-18 14:25:01 +03:30
355ec72140 comment excel data 2026-01-18 14:17:23 +03:30
21b3467517 Merge branch 'Fix/program-manager/fix-some-bugs' into Main 2026-01-18 13:20:30 +03:30
e9d0efc52f Merge branch 'Feature/roll-call/client-api' into Main
# Conflicts:
#	CompanyManagment.App.Contracts/RollCall/IRollCallApplication.cs
#	CompanyManagment.EFCore/Repository/RollCallRepository.cs
2026-01-18 13:18:27 +03:30
301a8f06f4 Merge branch 'Feature/Checkout/client-api' into Main 2026-01-18 13:15:37 +03:30
63a3027a17 add client checkout list controller 2026-01-18 12:51:58 +03:30
8faddedd46 add create and edit controller api 2026-01-14 17:45:03 +03:30
gozareshgir
12af5dcb56 get checkout list init 2026-01-14 16:39:05 +03:30
1382305433 add EmployeeBankInfoController.cs and set api for get list and get details 2026-01-14 16:32:46 +03:30
90fa0ac8f8 change excel download api controller 2026-01-14 10:20:58 +03:30
eb8352e8fc add rollcall download excel controller. 2026-01-14 09:37:55 +03:30
4c7599b568 add print to rollcall case history 2026-01-13 18:50:18 +03:30
d179c90c48 change paginated to list 2026-01-13 18:31:10 +03:30
gozareshgir
ae2427473b Merge branch 'Feature/SmsRepoetApi' into Main 2026-01-13 17:54:43 +03:30
gozareshgir
2fc124bf6d Get Sms Details 2026-01-13 17:35:29 +03:30
gozareshgir
068d34b4b4 Merge branch 'Feature/SmsRepoetApi' into Main 2026-01-13 17:08:58 +03:30
gozareshgir
1d88ca0fbb changes 2026-01-13 17:05:07 +03:30
gozareshgir
e2911dfc2a addnew dto 2026-01-13 17:00:59 +03:30
gozareshgir
377f95561c Merge branch 'Feature/SmsRepoetApi' into Main 2026-01-13 16:43:29 +03:30
gozareshgir
cfb96d1277 Chenge Post Methods to fromBody 2026-01-13 16:42:50 +03:30
gozareshgir
b5c5be2cb6 change smsResult grouping 2026-01-13 16:26:04 +03:30
8850328fd4 add GetEditDetails controller method 2026-01-13 16:08:13 +03:30
b7172630e2 set orders for projects 2026-01-13 15:49:51 +03:30
gozareshgir
b66dc81688 Merge branch 'Feature/SmsRepoetApi' into Main 2026-01-13 15:35:29 +03:30
gozareshgir
f5c8888137 IsDev mode chak for instant sms 2026-01-13 15:33:08 +03:30
gozareshgir
20ff66da2f Merge branch 'Feature/SmsRepoetApi' into Main 2026-01-13 15:18:05 +03:30
gozareshgir
4d7923936e InstantSms Send Completed 2026-01-13 15:16:33 +03:30
0604514190 Merge branch 'refs/heads/master' into Fix/program-manager/fix-some-bugs 2026-01-13 14:51:25 +03:30
915f16c7c0 add rollcall case history upsert 2026-01-13 14:03:10 +03:30
gozareshgir
2e95846336 Merge branch 'Feature/SmsRepoetApi' into Main 2026-01-13 11:40:46 +03:30
ad91383e86 Merge branch 'Fix/program-manager/fix-some-bugs' into Main 2026-01-13 11:31:53 +03:30
6281a024ca Merge branch 'Feature/loan/client-api' into Main 2026-01-13 11:30:58 +03:30
0ef4ead292 Merge branch 'Feature/reward/client-api' into Main 2026-01-13 11:30:51 +03:30
b286923dfe Merge branch 'Feature/fine/client-api' into Main
# Conflicts:
#	.gitignore
#	ServiceHost/Program.cs
2026-01-13 11:30:45 +03:30
gozareshgir
532065e3a8 Merge branch 'master' into Feature/SmsRepoetApi 2026-01-13 11:20:57 +03:30
gozareshgir
f7bfa37a77 SmsSettings List , create, edit, delete 2026-01-13 11:17:25 +03:30
18867b4929 set workshopId for FineController.cs 2026-01-13 11:10:48 +03:30
a9df0669c6 add client api FineController.cs 2026-01-13 11:08:03 +03:30
5c75316f40 add fine api client controller 2026-01-13 10:50:53 +03:30
8839b54dd3 add client api RewardController.cs 2026-01-13 10:31:41 +03:30
87c3cebb60 set workshopId to readonly 2026-01-13 09:38:44 +03:30
ff5180eb75 remove add task to phase 2026-01-12 17:39:54 +03:30
a1c9335487 add remaining time and spent time to get project list 2026-01-12 16:48:54 +03:30
20ece4886c add task priority to CreateProjectCommand 2026-01-12 12:20:08 +03:30
0d72392701 complete rollcall history details 2026-01-12 10:48:19 +03:30
8f6007835c complete rollcallCase history details by employee 2026-01-11 17:25:56 +03:30
05d860795e add rollcall title case history query 2026-01-11 15:12:08 +03:30
607c0780b6 Merge branch 'master' into Feature/loan/client-api 2026-01-10 11:50:52 +03:30
791c8f91b7 Merge branch 'Feature/program-manager/chat' into Main
# Conflicts:
#	ProgramManager/src/Application/GozareshgirProgramManager.Application/Modules/Projects/Queries/ProjectBoardList/ProjectBoardListResponse.cs
2026-01-08 12:15:01 +03:30
c980354c6b Merge branch 'Feature/program-manager/priority' into Main 2026-01-08 12:09:37 +03:30
22a5564ba0 Merge branch 'Feature/loan/client-api' into Main 2026-01-08 12:04:28 +03:30
ef49302f8a feat: add workshop ID handling in LoanController for loan search filtering 2026-01-08 12:03:54 +03:30
d8d2c34de7 refactor: simplify Serilog configuration in Program.cs 2026-01-08 11:54:13 +03:30
SamSys
3a343a19e1 Merge branch 'Main' of https://github.com/samsyntax24/OriginalGozareshgir into Main 2026-01-08 11:23:19 +03:30
SamSys
e65852c829 change logger 2026-01-08 11:23:12 +03:30
7f1939390c Merge branch 'Feature/program-manager/chat' into Main 2026-01-08 11:07:27 +03:30
SamSys
07a4ce1f64 merge from SmsReportApi 2026-01-07 18:40:15 +03:30
SamSys
7207172ce0 Merge branch 'Main' of https://github.com/samsyntax24/OriginalGozareshgir into Main 2026-01-07 16:29:51 +03:30
048da40f3c Merge branch 'Feature/institution-contract/sent-to-customer-flag' into Main 2026-01-07 16:23:28 +03:30
7ba85fe1aa Merge branch 'Feature/institution-contract/sent-to-customer-flag' into Main 2026-01-07 15:03:51 +03:30
SamSys
3280202644 Merge branch 'Main' of https://github.com/samsyntax24/OriginalGozareshgir into Main 2026-01-07 13:03:42 +03:30
1a334c22b8 feat: enable change priority endpoint in ProjectController 2026-01-07 13:02:52 +03:30
SamSys
a1bda5bc54 Merge branch 'Main' of https://github.com/samsyntax24/OriginalGozareshgir into Main 2026-01-07 12:18:45 +03:30
c80be16807 Merge branch 'Feature/program-manager/priority' into Main 2026-01-07 12:11:52 +03:30
SamSys
f6a285b6ea Merge branch 'Main' of https://github.com/samsyntax24/OriginalGozareshgir into Main 2026-01-07 11:37:10 +03:30
68b1f89ef0 chore: comment out ChangePriority endpoint in ProjectController 2026-01-07 11:34:06 +03:30
18fe6a5c6a Merge branch 'master' into Main 2026-01-07 11:31:23 +03:30
SamSys
56fc69f99f Merge branch 'Main' of https://github.com/samsyntax24/OriginalGozareshgir into Main 2026-01-07 11:29:33 +03:30
d6096b232d Merge branch 'Feature/program-manager/chat' into Main
# Conflicts:
#	.gitignore
2026-01-07 11:18:03 +03:30
6d5c032802 Merge branch 'Feature/program-manager/priority' into Main 2026-01-07 10:26:11 +03:30
71c0cff03a Merge branch 'master' into Main 2026-01-07 10:25:52 +03:30
SamSys
ebcb7530e0 Merge branch 'WorskhopClassifiedPlan' into Main 2026-01-06 17:36:05 +03:30
SamSys
9ff9b0be18 add salary list 2026-01-06 17:33:40 +03:30
SamSys
ceb328cfa7 Save AddOrEdit Jobs to group 2026-01-06 15:28:12 +03:30
5a7d65427d Merge remote-tracking branch 'origin/Main' into Main 2026-01-06 12:26:00 +03:30
8adb0f567c Merge branch 'Feature/program-manager/chat' into Main 2026-01-06 12:21:29 +03:30
SamSys
7aaf161718 change luch setting 2026-01-06 12:04:24 +03:30
SamSys
2f408a6cc1 ignore webconfig 2026-01-06 12:04:09 +03:30
SamSys
3ef717583f merge from master 2026-01-05 20:33:10 +03:30
SamSys
551f5a754c change appsetting to dad-mehr 2026-01-05 17:51:12 +03:30
SamSys
ba88a012ff Merge branch 'WorskhopClassifiedPlan' into Main 2026-01-05 16:48:11 +03:30
SamSys
e4c41bb704 JobSelectList api 2026-01-05 16:41:58 +03:30
SamSys
dee55f8854 merge 2026-01-05 16:19:57 +03:30
SamSys
802c79812b change 2026-01-05 16:19:15 +03:30
e2e7aa1989 Merge branch 'Feature/program-manager/chat' into Main 2026-01-05 16:07:07 +03:30
b82e831991 Merge remote-tracking branch 'origin/Main' into Main 2026-01-05 15:44:04 +03:30
SamSys
44cbdbaa1c Merge branch 'Main' of https://github.com/samsyntax24/OriginalGozareshgir into Main 2026-01-05 15:41:28 +03:30
SamSys
94466bbb27 merge from ClassificationScheme 2026-01-05 15:41:22 +03:30
931d41c446 Merge branch 'Feature/program-manager/chat' into Main 2026-01-05 15:40:40 +03:30
SamSys
9614e44003 change delete scheme method 2026-01-05 15:40:28 +03:30
SamSys
f097be54aa merge from master 2026-01-05 15:39:42 +03:30
5ba72e2281 Merge branch 'master' into Main 2026-01-05 09:50:31 +03:30
SamSys
be4bc2c900 GroupAndJobList 2026-01-04 19:13:46 +03:30
0b42546666 Merge remote-tracking branch 'origin/Main' into Main 2026-01-04 18:19:34 +03:30
a35a51370a Merge branch 'Feature/program-manager/set-user-time' into Main 2026-01-04 17:55:38 +03:30
SamSys
ef86c6d07d Merge from ClassificationScheme 2026-01-04 16:06:15 +03:30
SamSys
1b284b51b9 Merge branch 'master' into WorskhopClassifiedPlan 2026-01-04 15:47:38 +03:30
SamSys
5b15596696 SchemeList, Edit, Create, delete 2026-01-04 15:35:06 +03:30
f290a71dd3 Merge branch 'Feature/program-manager/set-user-time' into Main 2026-01-04 13:51:55 +03:30
0d0f643058 Merge branch 'Feature/program-manager/set-user-time' into Main 2026-01-04 13:03:40 +03:30
SamSys
5ad5fdcca0 classificationScheme Controller init 2026-01-04 12:00:34 +03:30
SamSys
fb1601db77 merge from master 2026-01-04 11:42:47 +03:30
SamSys
b39b58b21e fix migrations 2026-01-01 15:59:50 +03:30
SamSys
2a3e733eb6 remove classifiction migrations 2026-01-01 14:46:43 +03:30
5d2a917168 Merge branch 'Feature/loan/client-api' into Main 2026-01-01 14:41:39 +03:30
4ab9f60932 feat: add methods for creating, calculating installments, and removing loans in LoanController 2026-01-01 14:41:13 +03:30
cbcd42db85 Merge branch 'Feature/program-manager/set-user-time' into Main 2026-01-01 14:13:50 +03:30
SamSys
76aabc3a45 change snapshot 2026-01-01 14:04:45 +03:30
a22dbd8811 Merge branch 'Feature/program-manager/set-user-time' into Main 2026-01-01 13:17:24 +03:30
9cfae54db3 feat: add LoanController for managing loan applications and details 2026-01-01 13:13:04 +03:30
SamSys
3cdd5e7ac7 appsettings change 2026-01-01 12:47:48 +03:30
de4e2de2e7 Merge branch 'Feature/program-manager/set-user-time' into Main 2026-01-01 12:30:47 +03:30
d7dd91eaba Merge branch 'master' of https://github.com/syntax24/OriginalGozareshgir into Main
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2026-01-01 12:30:38 +03:30
SamSys
d6e3c48770 remove old files 2026-01-01 12:30:15 +03:30
SamSys
946024d81e Merg from Master 2026-01-01 12:29:39 +03:30
e7ce947342 Merge branch 'Feature/institution-contract/refactor-creation' into Main 2025-12-30 19:52:19 +03:30
796a13cdcc Merge branch 'Feature/program-manager/test-upload' into Main 2025-12-30 17:32:17 +03:30
2b7871c582 Merge branch 'Feature/institution-contract/refactor-creation' into Main 2025-12-30 16:44:40 +03:30
8f0c707647 add: refactor institutionContractController and related files for improved readability and maintainability 2025-12-30 14:31:24 +03:30
a835663e5c Merge branch 'Feature/program-manager/test-upload' into Main 2025-12-30 12:55:29 +03:30
0bceed55d1 Merge branch 'Feature/program-manager/test-upload' into Main 2025-12-30 12:31:16 +03:30
946e980324 Merge branch 'Feature/program-manager/test-upload' into Main 2025-12-30 12:20:41 +03:30
93847e6aa8 Merge remote-tracking branch 'origin/Main' into Main 2025-12-30 11:38:27 +03:30
b329e40930 Merge branch 'Feature/institution-contract/refactor-creation' into Main 2025-12-30 11:37:56 +03:30
Mahan Chamani
6e34ba79e0 Update deployment rules in dotnet workflow 2025-12-30 11:27:11 +03:30
5f21b59cb3 Merge branch 'Feature/institution-contract/refactor-creation' into Main
# Conflicts:
#	CompanyManagment.App.Contracts/InstitutionContract/IInstitutionContractApplication.cs
2025-12-30 10:42:48 +03:30
e0ea5aec53 Merge remote-tracking branch 'origin/Main' into Main 2025-12-29 19:31:40 +03:30
SamSys
43000bde7e Merge From ClientEmployeeApi 2025-12-29 19:26:36 +03:30
SamSys
0a7d80c2fe CreateEmployeeTemp for client completed 2025-12-29 19:24:53 +03:30
2984d2a3cf Merge branch 'Main' of https://github.com/syntax24/OriginalGozareshgir into Main 2025-12-29 19:16:07 +03:30
bc6854f8a7 Merge branch 'Feature/institution-contract/verification-modifies' into Main 2025-12-29 19:15:37 +03:30
4f66270cb0 feat: add OneMonthPrice to institution verification details and update contract pricing logic 2025-12-29 19:14:35 +03:30
SamSys
6b6ec79faa add PrintAllDetailsPersonnelInfoClient metoth controler 2025-12-29 17:57:24 +03:30
SamSys
1304a3e8ef Merge branch 'master' into Feature/ClientEmployeePageApi 2025-12-29 17:03:07 +03:30
SamSys
57881af130 Merge branch 'Main' of https://github.com/samsyntax24/OriginalGozareshgir into Main 2025-12-29 17:01:12 +03:30
SamSys
6154c2c7f5 selectlist employee refactor 2025-12-29 17:01:06 +03:30
SamSys
647909319f refactor selectList 2025-12-29 17:00:42 +03:30
SamSys
d5b70d1545 refactor selectList and PrintAllEmployee Client 2025-12-29 16:52:54 +03:30
4ed1907075 feat: add GetWorkingEmployeesSelectList method and update controller to use it 2025-12-29 16:42:44 +03:30
efcf40eea8 feat: add method to retrieve working employees select list by workshop ID 2025-12-29 16:24:36 +03:30
SamSys
d2acf59eba PrintAllEmployeesInfoClient api 2025-12-29 16:14:25 +03:30
SamSys
3139552217 Change Method name 2025-12-29 13:41:23 +03:30
sadegh Farokhi
8e6defb29e Update dotnet-developPublish.yml 2025-12-29 13:00:43 +03:30
sadegh Farokhi
fe4e81a60c Update dotnet-developPublish.yml 2025-12-29 12:56:16 +03:30
Mahan Chamani
098233fd1b Refactor deployment script to use environment variables 2025-12-29 12:42:26 +03:30
61062dba7b Merge branch 'master' into Main
# Conflicts:
#	.github/workflows/dotnet-developPublish.yml
2025-12-29 12:23:29 +03:30
5581e7e013 Merge branch 'Feature/program-manager/test-upload' into Main 2025-12-29 12:18:31 +03:30
SamSys
47d8f7156c marge 2025-12-29 12:04:09 +03:30
0b704da21f Merge branch 'Feature/ClientEmployeePageApi' into Main
# Conflicts:
#	CompanyManagment.EFCore/Repository/EmployeeRepository .cs
2025-12-29 11:26:40 +03:30
e8059f98d5 Merge branch 'Feature/program-manager/test-upload' into Main 2025-12-29 10:27:50 +03:30
SamSys
df5b820782 change 2025-12-29 09:57:43 +03:30
SamSys
ed8f9558d6 change 2025-12-29 09:57:34 +03:30
60a1d1cd8e Merge branch 'master' into Main 2025-12-28 19:31:51 +03:30
SamSys
dc4c8e9a26 get employee List for api completed 2025-12-28 18:45:32 +03:30
0721467abf Merge branch 'Feature/program-manager/test-upload' into Main 2025-12-28 18:33:15 +03:30
SamSys
0e7cb00a9f Merge branch 'Feature/ClientLeavePageApi' into Main 2025-12-27 17:00:07 +03:30
SamSys
ba4c00c012 change 2025-12-27 14:59:16 +03:30
SamSys
b3b3b14ebf Merge branch 'Main' of https://github.com/samsyntax24/OriginalGozareshgir into Main 2025-12-27 14:11:24 +03:30
SamSys
ee486eb706 mearge from clientleavePageApi 2025-12-27 14:11:16 +03:30
c60af8d248 Merge branch 'master' into Main
# Conflicts:
#	ServiceHost/Areas/AdminNew/Pages/Company/AndroidApk/Index.cshtml.cs
2025-12-24 16:33:36 +03:30
SamSys
57d13b9bed Merge branch 'Feature/ClientLeavePageApi' into Main 2025-12-24 12:54:18 +03:30
SamSys
6d0a6085a5 Merge branch 'Main' of https://github.com/samsyntax24/OriginalGozareshgir into Main 2025-12-24 12:53:53 +03:30
2e274dd280 Merge branch 'Feature/ClientLeavePageApi' into Main 2025-12-24 11:18:25 +03:30
be7fad2cf5 Merge remote-tracking branch 'origin/Feature/ClientLeavePageApi' into Main 2025-12-24 10:19:31 +03:30
a79f9a28fb Merge branch 'master' into Main 2025-12-23 20:40:56 +03:30
0d4b5774b6 Merge remote-tracking branch 'origin/Main' into Main
# Conflicts:
#	CompanyManagment.Application/InstitutionContractApplication.cs
#	CompanyManagment.EFCore/Repository/PlanPercentageRepository.cs
2025-12-23 20:18:37 +03:30
SamSys
a623044b93 Merge branch 'Feature/ClientLeavePageApi' into Main 2025-12-23 17:05:10 +03:30
SamSys
76408c48cf IsAmendment SetPendingWorkflow ... 2025-12-23 15:31:12 +03:30
SamSys
4ac51f24b5 marge from master 2025-12-23 15:14:15 +03:30
ed121e9ade fix: correct typo in CountPerson property reference in PlanPercentageRepository 2025-12-23 11:34:15 +03:30
548aefb8e1 Merge branch 'ServiceAmountManagmentApi' into Main
# Conflicts:
#	CompanyManagment.EFCore/Repository/PlanPercentageRepository.cs
2025-12-23 11:33:32 +03:30
223c2bde21 refactor: clean up whitespace and improve query filtering in PlanPercentageRepository 2025-12-23 11:32:46 +03:30
a1736fa3cc refactor: clean up InstitutionContractApplication and remove unused properties from InstitutionContractPrintViewModel 2025-12-23 11:20:10 +03:30
62f6817640 Merge remote-tracking branch 'origin/Main' into Main
# Conflicts:
#	Company.Domain/InstitutionContractAgg/InstitutionContract.cs
#	Company.Domain/InstitutionContractAgg/InstitutionContractWorkshopCurrent.cs
#	Company.Domain/InstitutionContractAgg/InstitutionContractWorkshopInitial.cs
#	CompanyManagment.App.Contracts/InstitutionContract/IInstitutionContractApplication.cs
#	CompanyManagment.Application/InstitutionContractApplication.cs
#	ServiceHost/Areas/AdminNew/Pages/Company/AndroidApk/Index.cshtml.cs
2025-12-23 11:13:46 +03:30
f17b566957 fix: update TotalCount calculation in PagedResult to use correct count from plans 2025-12-23 10:59:00 +03:30
SamSys
27edcc5f7b changed 2025-12-22 17:48:04 +03:30
SamSys
21b69edf93 merg from ServiceAmountsmanagment 2025-12-22 14:22:38 +03:30
SamSys
68b42c98d6 changes 2025-12-22 13:24:53 +03:30
SamSys
f13688ccb2 changes 2025-12-22 13:24:44 +03:30
SamSys
bb9074df34 merge from ServiceAmountsManagment 2025-12-22 13:24:03 +03:30
1a6248f15d Merge branch 'Feature/Insurance/client-api' into Main 2025-12-21 11:03:49 +03:30
a9511ffa82 Merge branch 'Feature/institution-contract/print' into Main 2025-12-20 19:38:55 +03:30
6f3d6e986c fix conflict bug 2025-12-20 19:29:38 +03:30
18da3221d7 Merge branch 'Feature/institution-contract/print' into Main
# Conflicts:
#	CompanyManagment.App.Contracts/InstitutionContract/IInstitutionContractApplication.cs
2025-12-20 19:21:16 +03:30
186cb95c70 refactor: remove unused discount-related classes and update workshop ID handling 2025-12-20 18:37:44 +03:30
b1f9bc98ba Merge branch 'Feature/institution-contract/verify-mannually' into Main
# Conflicts:
#	Company.Domain/InstitutionContractAgg/InstitutionContract.cs
#	Company.Domain/InstitutionContractAgg/InstitutionContractWorkshopCurrent.cs
#	Company.Domain/InstitutionContractAgg/InstitutionContractWorkshopInitial.cs
#	CompanyManagment.App.Contracts/InstitutionContract/IInstitutionContractApplication.cs
#	ServiceHost/Areas/AdminNew/Pages/Company/AndroidApk/Index.cshtml.cs
2025-12-20 18:33:39 +03:30
93ee88ba46 Merge branch 'Feature/contracts/api' into Main 2025-12-20 15:52:32 +03:30
5c6af6184c Merge branch 'Feature/contracts/api' into Main 2025-12-20 15:22:07 +03:30
e81a3ea7aa Merge branch 'Feature/contracts/api' into Main 2025-12-20 14:23:47 +03:30
7d92ae6658 Merge branch 'Feature/contracts/api' into Main 2025-12-20 12:11:02 +03:30
5de90be51e Merge branch 'Feature/Insurance/client-api' into Main 2025-12-20 11:25:20 +03:30
a1ead80a42 Merge branch 'master' into Main 2025-12-20 11:25:15 +03:30
a121e62102 Merge branch 'master' into Main
# Conflicts:
#	0_Framework/Application/Sms/ISmsService.cs
#	ServiceHost/Program.cs
#	ServiceHost/Properties/launchSettings.json
2025-12-18 11:01:54 +03:30
5d20238904 Merge branch 'Feature/program-manager/signalR-notification' into Main 2025-12-15 10:15:01 +03:30
4b35c3e443 Merge branch 'master' into Main
# Conflicts:
#	ServiceHost/Program.cs
#	ServiceHost/Properties/launchSettings.json
2025-12-15 09:48:06 +03:30
SamSys
c8d6644116 change projectController add FromBody 2025-12-14 18:20:42 +03:30
SamSys
fff5bb3706 from body added 2025-12-14 18:08:43 +03:30
SamSys
74597c0ad5 changes 2025-12-14 17:11:08 +03:30
SamSys
cccccf084e get AverageWeeklyDuration query handler 2025-12-14 16:38:25 +03:30
54b3745276 Merge branch 'Feature/program-manager/signalR-notification' into Main 2025-12-14 14:22:57 +03:30
b50ad83144 Merge branch 'Feature/program-manager/signalR-notification' into Main 2025-12-14 13:51:54 +03:30
d2e832d52e Merge branch 'Feature/program-manager/signalR-notification' into Main
# Conflicts:
#	ServiceHost/appsettings.Development.json
#	ServiceHost/appsettings.json
2025-12-14 12:15:14 +03:30
cdeba2009f Merge branch 'Feature/notification/create-api' into Main 2025-12-11 14:51:15 +03:30
65adbda73f Merge remote-tracking branch 'origin/Main' into Main 2025-12-11 14:51:05 +03:30
SamSys
c137c9e78e add programmanager connectionString on appsettings 2025-12-07 16:39:39 +03:30
SamSys
4801d593b7 add connectionString 2025-12-07 16:15:21 +03:30
SamSys
582e140726 Merge from programMangeruserAccount 2025-12-07 15:36:10 +03:30
ff04dff0ca Merge remote-tracking branch 'origin/Main' into Main 2025-12-01 12:27:02 +03:30
SamSys
c04089b68a Merge branch 'Main' of https://github.com/samsyntax24/OriginalGozareshgir into Main 2025-12-01 11:49:15 +03:30
SamSys
d9ee96c057 change edit role 2025-12-01 11:49:05 +03:30
fc45e46502 Merge branch 'Feature/InstitutionContract/set-discount' into Main 2025-11-29 14:57:25 +03:30
8015e583bf Merge branch 'Feature/InstitutionContract/set-discount' into Main 2025-11-29 11:31:10 +03:30
524660d7b4 Merge branch 'Feature/InstitutionContract/set-discount' into Main 2025-11-29 11:12:03 +03:30
c2d9d809f1 Fix misplaced CreateLegalContractingPartyEntity method and correct method ordering 2025-11-29 09:48:07 +03:30
b5d52feee4 Merge branch 'Feature/InstitutionContract/set-discount' into Main
# Conflicts:
#	CompanyManagment.App.Contracts/InstitutionContract/IInstitutionContractApplication.cs
2025-11-29 09:45:43 +03:30
4c58942e15 delete end region 2025-11-27 20:58:01 +03:30
edf8c8c92d add missing #endregion in Program.cs for code region clarity 2025-11-27 15:04:30 +03:30
SamSys
8eaeefecc8 change 2025-11-27 13:41:32 +03:30
SamSys
911c29ea6b fix httpContext to get url on program.cs 2025-11-27 13:21:48 +03:30
8fc798746f Refactor error handling and IHttpContextAccessor usage
Simplified error message construction in RoleApplication.cs by
removing redundant properties. Refactored IHttpContextAccessor
registration in Program.cs to use the service provider after
app initialization. Removed redundant no-op code in
NullFaceEmbeddingNotificationService.cs.
2025-11-27 12:45:18 +03:30
3526fdbf2f update domain checks for InternalApi baseUrl and improve error details in RoleApplication 2025-11-27 12:16:55 +03:30
SamSys
9d0bb7df0e InternalApi appsetiings change 2025-11-27 11:25:46 +03:30
SamSys
a1d0c3ba5b Merge from ProgramManagerUserAccount 2025-11-27 10:49:43 +03:30
409fc0df96 Merge remote-tracking branch 'origin/Main' into Main 2025-11-25 16:46:38 +03:30
7533bc821a Merge branch 'Feature/client/dashboard' into Main 2025-11-25 16:46:20 +03:30
Mahan Chamani
ca520c7291 Update dotnet-developPublish.yml 2025-11-25 15:41:25 +03:30
0a3bdb2720 Merge branch 'master' into Main 2025-11-25 13:06:36 +03:30
1eb3b7d066 Merge branch 'Feature/InstitutionContract/edit-phone' into Main 2025-11-25 12:11:22 +03:30
bc3cb5b115 Merge branch 'master' into Main 2025-11-22 15:43:35 +03:30
c9f519d7ec Merge remote-tracking branch 'origin/Main' into Main 2025-11-22 15:29:41 +03:30
aabb53c6d2 Merge branch 'master' into Main 2025-11-22 15:29:30 +03:30
Mahan Chamani
0fe0c05e5c Fix destination path in deployment script 2025-11-22 14:44:20 +03:30
Mahan Chamani
62349c0a54 Refactor Web Deploy command for better readability 2025-11-22 14:01:16 +03:30
Mahan Chamani
cb08e11593 Refactor IIS deployment step in workflow 2025-11-22 13:42:25 +03:30
Mahan Chamani
7eba632f1c Refactor .NET workflow to use project-specific commands
Updated the .NET GitHub Actions workflow to specify project files for restore, build, and publish steps. Replaced hardcoded credentials with GitHub secrets for deployment.
2025-11-22 13:31:47 +03:30
de37555db9 enable real-time status updates via SignalR in contract processing methods 2025-11-22 12:45:01 +03:30
6102ec3be8 Merge branch 'master' into Main 2025-11-22 12:07:14 +03:30
aaea658e58 refactor: remove unused SignalR hub context and related code from InstitutionContractRepository 2025-11-22 10:23:09 +03:30
SamSys
e704258c23 merg from master 2025-11-20 16:02:29 +03:30
ea153d17b7 Merge branch 'master' into Main
# Conflicts:
#	Company.Domain/InstitutionContractAgg/IInstitutionContractRepository.cs
#	CompanyManagment.App.Contracts/InstitutionContract/IInstitutionContractApplication.cs
#	CompanyManagment.Application/InstitutionContractApplication.cs
#	CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs
2025-11-20 11:11:06 +03:30
dce24e3849 Merge branch 'Feature/InstitutionContract/add-workshop-totalAmount-to-list' into Main 2025-11-18 15:08:52 +03:30
f112bab021 Add endpoint for workshop details: implement GetWorkshopsDetails method in institutionContractController 2025-11-18 15:07:38 +03:30
00ffb08e2e Merge branch 'Feature/InstitutionContract/add-workshop-totalAmount-to-list' into Main
# Conflicts:
#	Company.Domain/InstitutionContractAgg/IInstitutionContractRepository.cs
#	CompanyManagment.App.Contracts/InstitutionContract/IInstitutionContractApplication.cs
#	CompanyManagment.Application/InstitutionContractApplication.cs
#	CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs
2025-11-18 14:55:54 +03:30
8b39eed7bb Add workshop total amount details: include price properties in InstitutionContract and implement GetContractWorkshopsDetails method 2025-11-18 14:53:08 +03:30
58e30eb297 Merge branch 'Feature/InstitutionContract/add-workshop-totalAmount-to-list' into Main 2025-11-17 17:12:21 +03:30
07851ff7c8 Add total amount to workshop list: include Price property in InstitutionContractListWorkshop 2025-11-17 17:11:49 +03:30
SamSys
17eb5832fe change TestScheme 2025-11-10 14:14:20 +03:30
SamSys
8b8b5c3e76 edit and transfer employee to group chnage valistion and set remove icon 2025-11-09 15:30:01 +03:30
SamSys
db761ceba8 transfer employee to group frontEnd completed 2025-11-08 19:21:17 +03:30
58499d6837 Merge branch 'Feature/roll-call/camera-api' into Main 2025-11-08 15:30:13 +03:30
d2df27320f Merge branch 'Feature/roll-call/camera-api' into Main 2025-11-08 15:05:11 +03:30
f4c73a418b Merge branch 'Feature/roll-call/camera-api' into Main 2025-11-08 12:37:45 +03:30
SamSys
daf0a366ef Edit multiple Employee group added 2025-11-06 15:33:31 +03:30
b36919e0b6 Merge branch 'Feature/InstitutionContract/upgrade' into Main 2025-11-06 13:00:03 +03:30
87d47fa0d9 feat: remove temporary institution amendment record after saving changes 2025-11-06 12:53:00 +03:30
c7d4481a6d Merge branch 'master' into Feature/InstitutionContract/upgrade
# Conflicts:
#	0_Framework/Application/Sms/ISmsService.cs
#	CompanyManagment.EFCore/Services/SmsService.cs
2025-11-06 12:38:57 +03:30
4b52d144e0 feat: add LawId column to InstitutionContractAmendments migration 2025-11-06 11:57:17 +03:30
SamSys
91b72fdf8f get salary tab chnage 2025-11-06 10:22:29 +03:30
38184b8d1b Merge branch 'Feature/InstitutionContract/upgrade' into Main 2025-11-05 19:02:32 +03:30
90a1683047 feat: add WorkshopName property to institution contract amendment payment workshop response 2025-11-05 18:55:00 +03:30
SamSys
f93991db96 change 2025-11-05 13:37:14 +03:30
sadegh Farokhi
bca3e1dd42 Delete .github/workflows/dad-mehrPublish.yaml 2025-11-05 13:36:44 +03:30
syntax24
c7e22e4ca6 testtest 2025-11-05 13:27:46 +03:30
syntax24
7386bd5750 test 2025-11-05 13:25:35 +03:30
sadegh Farokhi
5c8a521f8e Update dad-mehrPublish.yaml 2025-11-05 13:20:28 +03:30
syntax24
22973fe47b test 2025-11-05 13:17:59 +03:30
syntax24
48c83e648d update yaml 2025-11-05 11:51:39 +03:30
36b60555f3 Merge branch 'Feature/contracts/api' into Main 2025-11-05 11:45:18 +03:30
sadegh Farokhi
494b80c461 Update dad-mehrPublish.yaml 2025-11-05 11:35:52 +03:30
sadegh Farokhi
7cdb431d98 Update dad-mehrPublish.yaml 2025-11-04 19:13:50 +03:30
SamSys
f7ae463544 Merge branch 'WorskhopClassifiedPlan' of https://github.com/samsyntax24/OriginalGozareshgir into WorskhopClassifiedPlan 2025-11-04 19:09:22 +03:30
sadegh Farokhi
1913147f89 Rename dad-mehrPublish to dad-mehrPublish.yaml 2025-11-04 18:54:43 +03:30
sadegh Farokhi
77798eaccb Update dad-mehrPublish 2025-11-04 18:50:22 +03:30
SamSys
f17c1f0d8e test 2025-11-04 18:43:47 +03:30
sadegh Farokhi
bd4f2d18f5 Update dad-mehrPublish 2025-11-04 18:41:51 +03:30
SamSys
0bbed013d2 Merge branch 'WorskhopClassifiedPlan' of https://github.com/samsyntax24/OriginalGozareshgir into WorskhopClassifiedPlan 2025-11-04 18:41:05 +03:30
SamSys
3455c8a786 change appsetting 2025-11-04 18:40:45 +03:30
sadegh Farokhi
9981116caa Create dad-mehrPublish 2025-11-04 18:33:18 +03:30
SamSys
10e7400611 test moda completed 2025-11-02 19:11:04 +03:30
379126c513 Merge branch 'Feature/InstitutionContract/upgrade' into Main 2025-11-02 11:29:55 +03:30
d078feccf9 feat: sort institution contract responses by price in descending order 2025-11-02 11:28:29 +03:30
fb2d67c069 Merge branch 'Feature/roll-call/current-day-api' into Main 2025-11-01 12:15:52 +03:30
d1ac8e49ba feat: add API endpoint to retrieve working employees select list for current workshop 2025-11-01 12:15:35 +03:30
c596bf78f4 Merge branch 'Feature/InstitutionContract/upgrade' into Main 2025-10-29 15:11:15 +03:30
c6a7e0a0bd feat: add workshop response handling to institution contract amendment payment response 2025-10-29 15:08:14 +03:30
d0fa1b2f58 Merge branch 'Feature/roll-call/current-day-api' into Main 2025-10-29 11:09:53 +03:30
c10ae17f8c feat: update current day roll call search model to use EmployeeId instead of WorkshopId 2025-10-29 11:09:30 +03:30
e612150f1d Merge remote-tracking branch 'origin/Main' into Main 2025-10-29 10:47:16 +03:30
f3c391582c Merge branch 'Feature/roll-call/current-day-api' into Main 2025-10-29 10:46:41 +03:30
c13ad3a8a7 feat: update current day roll call API to accept search model for filtering 2025-10-29 10:46:21 +03:30
SamSys
2803c34591 Merge from InsuranceEmployeeShare 2025-10-28 19:11:55 +03:30
f76a12d45c Merge branch 'Feature/InstitutionContract/upgrade' into Main
# Conflicts:
#	ServiceHost/Areas/Admin/Controllers/institutionContractController.cs
2025-10-28 13:18:41 +03:30
2d5efb62be Merge remote-tracking branch 'origin/Main' into Main 2025-10-28 13:17:55 +03:30
ef3338c648 Merge branch 'Feature/InstitutionContract/print-api' into Main 2025-10-28 13:16:04 +03:30
fcf2b38457 feat: add previous ID handling and price difference validation to institution contract amendment workshops 2025-10-28 13:13:55 +03:30
SamSys
82bb932cfc useWebSockets added 2025-10-28 13:05:20 +03:30
SamSys
82c2b641fe maarge from InsuranceEmployeeSharecheckout 2025-10-27 17:20:38 +03:30
7b71bd36b1 feat: add verification status and amendment tracking to institution contract models 2025-10-27 15:22:45 +03:30
bdc142d577 Merge branch 'Feature/roll-call/admin-report-api' into Main 2025-10-27 13:26:57 +03:30
62900a22a1 feat: add amendment verification details retrieval methods and update related classes 2025-10-27 11:30:56 +03:30
SamSys
23c99e60d5 ClassificationEmployee add to group or edit membrize completed 2025-10-26 19:10:20 +03:30
f7b9389f55 refactor: comment out unused amendment verification methods in institutionContractController 2025-10-26 18:09:00 +03:30
1c2ff03c90 Merge branch 'Feature/InstitutionContract/upgrade' into Main 2025-10-26 18:03:46 +03:30
e6977b29fc feat: add methods for creating institution contract amendment changes and enhance personnel count handling 2025-10-26 14:00:03 +03:30
6e902011ca feat: enhance institution contract verification process and update SMS service methods 2025-10-26 12:21:14 +03:30
7cce903f6e Merge branch 'Feature/InstitutionContract/print-api' into Feature/InstitutionContract/upgrade
# Conflicts:
#	Company.Domain/InstitutionContractAgg/IInstitutionContractRepository.cs
#	CompanyManagment.App.Contracts/InstitutionContract/IInstitutionContractApplication.cs
#	CompanyManagment.Application/InstitutionContractApplication.cs
#	CompanyManagment.EFCore/Repository/InstitutionContractRepository.cs
2025-10-26 12:03:39 +03:30
4d6077c93d Merge branch 'refs/heads/master' into Feature/InstitutionContract/upgrade 2025-10-26 11:50:48 +03:30
83c1985ad9 Merge branch 'Feature/roll-call/admin-report-api' into Main 2025-10-26 11:24:07 +03:30
e0c247d07b feat: add RollCallController with current day roll call API endpoint 2025-10-25 16:18:22 +03:30
1a3558df52 Merge branch 'refs/heads/Main' into Feature/roll-call/current-day-api 2025-10-25 16:18:02 +03:30
c36e81e263 feat: update InstitutionContractRepository to enhance workshop change tracking and improve data handling 2025-10-25 15:23:48 +03:30
SamSys
490393acbc ClassficationScheme > EditSalariesAndCoefficient front completed 2025-10-25 01:32:09 +03:30
d3cd7e5b3c Merge branch 'master' into Main 2025-10-23 16:50:03 +03:30
818d88d859 feat: update InstitutionContractAmendmentChange to include roll call options and current workshop ID 2025-10-23 16:32:45 +03:30
1a70569a36 feat: implement amendment completion functionality with payment details 2025-10-23 11:44:12 +03:30
8d24339f04 Merge branch 'master' into Feature/InstitutionContract/upgrade
# Conflicts:
#	ServiceHost/Areas/Admin/Controllers/institutionContractController.cs
2025-10-23 09:29:05 +03:30
bea858d4e7 feat: add AmendmentComplete method and request class to InstitutionContractApplication 2025-10-22 13:33:30 +03:30
SamSys
c6874b33cf ClassificationSalariestab and create front completed 2025-10-19 23:11:39 +03:30
SamSys
596e21b712 craetejobs modal front 2025-10-14 04:21:50 +03:30
SamSys
e9c3176dfc change createjobe modal 2025-10-12 00:04:33 +03:30
SamSys
4a956a1397 createJobs load modal 2025-10-11 16:04:46 +03:30
SamSys
fc3053dd17 Merge branch 'master' into WorskhopClassifiedPlan 2025-10-11 15:10:12 +03:30
SamSys
bb79380ce5 add Classification Tab group list frontEnd 2025-10-11 15:05:01 +03:30
SamSys
849369fea3 GroupAndJobs tab Query 2025-10-08 17:41:23 +03:30
SamSys
283f66ab32 Merge branch 'master' into WorskhopClassifiedPlan 2025-10-07 17:36:14 +03:30
SamSys
abf00884a4 Create ClassificationGroup With CreateScheme - EditScheme 2025-10-07 01:38:01 +03:30
SamSys
50718eda93 Merge branch 'master' into WorskhopClassifiedPlan 2025-10-06 23:54:50 +03:30
SamSys
a3dc27f08e SchemeTab, create scheme , scheme list 2025-10-06 13:26:36 +03:30
SamSys
055ce2b2a7 merge from master 2025-10-04 16:35:11 +03:30
SamSys
8171e06965 Create razorPage for classificationScheme , add isClassificationCompleted bool to workshop Table 2025-09-30 21:20:05 +03:30
SamSys
bfa8688c38 Merge branch 'master' into WorskhopClassifiedPlan 2025-09-30 00:15:53 +03:30
SamSys
66c903045f ClassiicationChemeApplication 2025-09-23 18:49:56 +03:30
SamSys
b245023dd2 Static file for GroupRate 2025-09-22 02:06:39 +03:30
SamSys
8044d64d5e Classification tables Mapping 2025-09-18 05:16:00 +03:30
SamSys
1ef86d5e9c Classification Tables Designed 2025-09-16 05:26:20 +03:30
392 changed files with 101054 additions and 5568 deletions

View File

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

4
.gitignore vendored
View File

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

View File

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

View File

@@ -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; }
}

View File

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

View File

@@ -45,6 +45,11 @@ public enum TypeOfSmsSetting
/// </summary>
SendInstitutionContractConfirmationCode,
/// <summary>
/// لینک تاییدیه ایجاد قرارداد مالی
/// </summary>
SendInstitutionContractConfirmationLink,
/// <summary>
/// یادآور وظایف
/// </summary>

View File

@@ -7,7 +7,7 @@ namespace _0_Framework.Application;
public class PagedResult<T> where T : class
{
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
{

View File

@@ -30,5 +30,22 @@ public class ApiReportDto
public string DeliveryState { get; set; }
public string DeliveryUnixTime { get; set; }
public string DeliveryColor { get; set; }
public string FullName { get; set; }
}
public class SmsDetailsDto
{
public string MessageText { get; set; }
public long Mobile { get; set; }
public string SendUnixTime { get; set; }
public string DeliveryState { get; set; }
public string DeliveryUnixTime { get; set; }
public string DeliveryColor { get; set; }
public string FullName { get; set; }
}

View File

@@ -16,15 +16,21 @@ public interface ISmsService
/// <param name="code"></param>
/// <returns></returns>
Task<SentSmsViewModel> SendVerifyCodeToClient(string number, string code);
bool SendAccountsInfo(string number,string fullName, string userName);
bool SendAccountsInfo(string number, string fullName, string userName);
Task<ApiResultViewModel> GetByMessageId(int messId);
Task<List<ApiResultViewModel>> GetApiResult(string startDate, string endDate);
#region ForApi
Task<List<ApiReportDto>> GetApiReport(string startDate, string endDate);
#endregion
/// <summary>
/// دریافت جزئیات پیامک
/// </summary>
/// <param name="messId"></param>
/// <param name="fullName"></param>
/// <returns></returns>
Task<SmsDetailsDto> GetSmsDetailsByMessageId(int messId, string fullName);
#endregion
string DeliveryStatus(byte? dv);
string DeliveryColorStatus(byte? dv);

View File

@@ -31,8 +31,9 @@ public static class StaticWorkshopAccounts
/// 381 - مهدی قربانی
/// 392 - عمار حسن دوست
/// 20 - سمیرا الهی نیا
/// 322 - ماهان چمنی
/// </summary>
public static List<long> StaticAccountIds = [2, 3, 380, 381, 392, 20, 476];
public static List<long> StaticAccountIds = [2, 3, 380, 381, 392, 20, 476,322];
/// <summary>
/// این تاریخ در جدول اکانت لفت ورک به این معنیست

View File

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

View File

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

View File

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

View File

@@ -2,6 +2,7 @@
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<NuGetAudit>false</NuGetAudit>
</PropertyGroup>
<ItemGroup>

View File

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

View File

@@ -31,7 +31,7 @@ public class Checkout : EntityBase
string overNightWorkValue, string fridayWorkValue, string rotatingShifValue, string absenceValue,
string totalDayOfLeaveCompute, string totalDayOfYearsCompute, string totalDayOfBunosesCompute,
ICollection<CheckoutLoanInstallment> loanInstallments,
ICollection<CheckoutSalaryAid> salaryAids, CheckoutRollCall checkoutRollCall, TimeSpan employeeMandatoryHours, bool hasInsuranceShareTheSameAsList)
ICollection<CheckoutSalaryAid> salaryAids, CheckoutRollCall checkoutRollCall, TimeSpan employeeMandatoryHours, bool hasInsuranceShareTheSameAsList, ICollection<CheckoutReward> rewards,double rewardPay)
{
EmployeeFullName = employeeFullName;
FathersName = fathersName;
@@ -71,7 +71,7 @@ public class Checkout : EntityBase
TotalClaims = totalClaims;
TotalDeductions = totalDeductions;
TotalPayment = totalPayment;
RewardPay = 0;
RewardPay = rewardPay;
IsActiveString = "true";
Signature = signature;
MarriedAllowance = marriedAllowance;
@@ -93,6 +93,7 @@ public class Checkout : EntityBase
CheckoutRollCall = checkoutRollCall;
EmployeeMandatoryHours = employeeMandatoryHours;
HasInsuranceShareTheSameAsList = hasInsuranceShareTheSameAsList;
Rewards = rewards;
}
@@ -130,7 +131,7 @@ public class Checkout : EntityBase
public double BonusesPay { get; private set; }
public double YearsPay { get; private set; }
public double LeavePay { get; private set; }
public double? RewardPay { get; private set; }
public double RewardPay { get; private set; }
public double InsuranceDeduction { get; private set; }
public double TaxDeducation { get; private set; }
public double InstallmentDeduction { get; private set; }
@@ -223,6 +224,8 @@ public class Checkout : EntityBase
public ICollection<CheckoutLoanInstallment> LoanInstallments { get; set; } = [];
public ICollection<CheckoutSalaryAid> SalaryAids { get; set; } = [];
public ICollection<CheckoutReward> Rewards { get; set; } = [];
public CheckoutRollCall CheckoutRollCall { get; private set; }
#endregion
@@ -239,7 +242,7 @@ public class Checkout : EntityBase
double insuranceDeduction, double taxDeducation, double installmentDeduction,
double salaryAidDeduction, double absenceDeduction, string sumOfWorkingDays
, string archiveCode, string personnelCode,
string totalClaims, string totalDeductions, double totalPayment, double? rewardPay)
string totalClaims, string totalDeductions, double totalPayment, double rewardPay)
{
EmployeeFullName = employeeFullName;
FathersName = fathersName;
@@ -337,6 +340,11 @@ public class Checkout : EntityBase
InstallmentDeduction = installmentsAmount;
}
public void SetReward(ICollection<CheckoutReward> rewards, double rewardAmount)
{
RewardPay = rewardAmount;
Rewards = rewards;
}
public void SetCheckoutRollCall(CheckoutRollCall checkoutRollCall)
{
CheckoutRollCall = checkoutRollCall;

View File

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

View File

@@ -0,0 +1,57 @@
using System;
namespace Company.Domain.CheckoutAgg.ValueObjects;
public class CheckoutReward
{
public CheckoutReward(string amount, double amountDouble, string grantDateFa, DateTime grantDateGr, string description, string title, long entityId)
{
Amount = amount;
AmountDouble = amountDouble;
GrantDateFa = grantDateFa;
GrantDateGr = grantDateGr;
Description = description;
Title = title;
EntityId = entityId;
}
/// <summary>
/// مبلغ پاداش
/// string
/// </summary>
public string Amount { get; set; }
/// <summary>
/// مبلغ پاداش
/// double
/// </summary>
public double AmountDouble { get; set; }
/// <summary>
/// تاریخ اعطاء
/// شمسی
/// </summary>
public string GrantDateFa { get; set; }
/// <summary>
/// تاریخ اعطاء
/// میلادی
/// </summary>
public DateTime GrantDateGr { get; set; }
/// <summary>
/// توضیحات
/// </summary>
public string Description { get; set; }
/// <summary>
/// عنوان
/// </summary>
public string Title { get; set; }
/// <summary>
/// آی دی پاداش
/// </summary>
public long EntityId { get; set; }
}

View File

@@ -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;
}
}

View File

@@ -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; }
}

View File

@@ -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; }
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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
}

View File

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

View File

@@ -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);
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,21 +1,22 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using _0_Framework.Domain;
using _0_Framework.Domain;
using Company.Domain.CustomizeWorkshopEmployeeSettingsAgg.Entities;
using CompanyManagment.App.Contracts.Contract;
using CompanyManagment.App.Contracts.CustomizeCheckout;
using CompanyManagment.App.Contracts.Leave;
using CompanyManagment.App.Contracts.Loan;
using CompanyManagment.App.Contracts.Reward;
using CompanyManagment.App.Contracts.RollCall;
using CompanyManagment.App.Contracts.SalaryAid;
using CompanyManagment.App.Contracts.WorkingHoursTemp;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Company.Domain.RollCallAgg;
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>
/// محاسبه ساعات کارکرد پرسنل در صورت داشتن حضور غیاب
@@ -53,6 +54,9 @@ public interface IRollCallMandatoryRepository : IRepository<long, RollCall>
List<SalaryAidViewModel> SalaryAidsForCheckout(long employeeId, long workshopId, DateTime checkoutStart,
DateTime checkoutEnd);
List<RewardViewModel> RewardForCheckout(long employeeId, long workshopId, DateTime checkoutEnd,
DateTime checkoutStart);
Task<ComputingViewModel> RotatingShiftReport(long workshopId, long employeeId, DateTime contractStart,
DateTime contractEnd, string shiftwork, bool hasRollCall, CreateWorkingHoursTemp command,bool holidayWorking);
}

View File

@@ -4,6 +4,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using _0_Framework.Application;
using _0_Framework.Domain;
using CompanyManagment.App.Contracts.RollCall;
using CompanyManagment.App.Contracts.WorkingHoursTemp;
@@ -25,7 +26,7 @@ namespace Company.Domain.RollCallAgg
DateTime endSearch);
void RemoveEmployeeRollCallsInDate(long workshopId, long employeeId, DateTime date);
RollCallsByDateViewModel GetWorkshopRollCallHistory(RollCallSearchModel searchModel);
CurrentDayRollCall GetWorkshopCurrentDayRollCalls(long workshopId);
CurrentDayRollCall GetWorkshopCurrentDayRollCalls(long workshopId,WorkshopCurrentDayRollCallSearchModel searchModel);
List<PersonnelCheckoutDailyRollCallViewModel> GetEmployeeRollCallsForMonth(IEnumerable<long> employeeIds,
long workshopId, DateTime start, DateTime end);
@@ -91,5 +92,9 @@ namespace Company.Domain.RollCallAgg
Task<List<RollCall>> GetRollCallsUntilNowWithWorkshopIdEmployeeIds(long workshopId, List<long> employeeIds,
DateTime fromDate);
#endregion
Task<PagedResult<RollCallCaseHistoryTitleDto>> GetCaseHistoryTitles(long workshopId,RollCallCaseHistorySearchModel searchModel);
Task<List<RollCallCaseHistoryDetail>> GetCaseHistoryDetails(long workshopId,
string titleId, RollCallCaseHistorySearchModel searchModel);
}
}

View File

@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using _0_Framework.Domain;
using CompanyManagment.App.Contracts.RollCallEmployee;
@@ -7,7 +8,7 @@ namespace Company.Domain.RollCallEmployeeAgg;
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);
EditRollCallEmployee GetDetails(long id);
RollCallEmployeeViewModel GetByEmployeeIdAndWorkshopId(long employeeId, long workshopId);

View File

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

View File

@@ -1,4 +1,5 @@
using _0_Framework.Domain;
using _0_Framework.Application.Enums;
using _0_Framework.Domain;
using CompanyManagment.App.Contracts.SmsResult;
using CompanyManagment.App.Contracts.SmsResult.Dto;
using System.Collections.Generic;
@@ -22,8 +23,9 @@ public interface ISmsResultRepository : IRepository<long, SmsResult>
/// </summary>
/// <param name="searchModel"></param>
/// <param name="date"></param>
/// <param name="typeOfSmsSetting"></param>
/// <returns></returns>
Task<List<SmsReportListDto>> GetSmsReportExpandList(SmsReportSearchModel searchModel, string date);
Task<List<SmsReportListDto>> GetSmsReportExpandList(SmsReportSearchModel searchModel, string date, string typeOfSmsSetting);
#endregion
List<SmsResultViewModel> Search(SmsResultSearchModel searchModel);

View File

@@ -1,6 +1,7 @@
using _0_Framework.Application.Enums;
using _0_Framework.Domain;
using CompanyManagment.App.Contracts.SmsResult;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Company.Domain.SmsResultAgg;
@@ -27,4 +28,25 @@ public interface ISmsSettingsRepository : IRepository<long, SmsSetting>
/// <param name="id"></param>
/// <returns></returns>
Task RemoveItem(long id);
#region ForApi
/// <summary>
/// دریافت لیست پیامک های خودکار بر اساس نوع آن
/// Api
/// </summary>
/// <param name="typeOfSmsSetting"></param>
/// <returns></returns>
Task<List<SmsSettingDto>> GetSmsSettingList(TypeOfSmsSetting typeOfSmsSetting);
/// <summary>
/// دریافت اطلاعات تنظیمات پیامک جهت ویرایش
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
Task<SmsSettingDto> GetSmsSettingDataToEdit(long id);
#endregion
}

View File

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

View File

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

View File

@@ -1,6 +1,12 @@
using _0_Framework.Excel;
using _0_Framework.Application;
using CompanyManagment.App.Contracts.RollCall;
using OfficeOpenXml;
using OfficeOpenXml.Drawing;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
namespace CompanyManagement.Infrastructure.Excel.RollCall;
@@ -308,6 +314,111 @@ public class RollCallExcelGenerator : ExcelGenerator
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)
{
if (early == TimeSpan.Zero && late == TimeSpan.Zero)

View File

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

View File

@@ -193,4 +193,9 @@ public class CreateCheckout
/// پایه سنوات قبل از تاثیر ساعت کار
/// </summary>
public double BaseYearUnAffected { get; set; }
/// <summary>
/// آیا برای محاسبه پاداش مجاز است
/// </summary>
public bool RewardPayCompute { get; set; }
}

View 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; }
}

View 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; }
}

View File

@@ -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; }
}

View File

@@ -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; }
}

View File

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

View File

@@ -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; }
}

View File

@@ -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; }
}

View File

@@ -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; }
}

View File

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

View File

@@ -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; }
}

View File

@@ -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; }
}

View File

@@ -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,
}

View File

@@ -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; }
}

View File

@@ -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; }
}

View File

@@ -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; }
}

View File

@@ -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; }
}

View File

@@ -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; }
}

View File

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

View File

@@ -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; }
}

View File

@@ -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; }
}

View File

@@ -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; }
}

View File

@@ -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; }
}

View File

@@ -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
}

View File

@@ -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; }
}

View File

@@ -4,6 +4,7 @@
<TargetFramework>net10.0</TargetFramework>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<NoWarn>$(NoWarn);1591</NoWarn>
<NuGetAudit>false</NuGetAudit>
</PropertyGroup>
<ItemGroup>

View File

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

View File

@@ -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; }
}

View File

@@ -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; }
}

View File

@@ -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; }
}

View File

@@ -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,
}

View File

@@ -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; }
}

View File

@@ -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; }
}

View File

@@ -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; }
}

View File

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

View File

@@ -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; }
}

View File

@@ -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; }
}

View File

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

View File

@@ -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}";
}
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -7,6 +7,7 @@ public class InstitutionContractExtensionCompleteRequest
public Guid TemporaryId { get; set; }
public bool IsInstallment { get; set; }
public long LawId { get; set; }
public bool CancelSendVerificationSms { get; set; }
}
public class InstitutionContractCreationCompleteRequest

View File

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

View File

@@ -1,4 +1,6 @@
namespace CompanyManagment.App.Contracts.InstitutionContract;
using System.Collections.Generic;
namespace CompanyManagment.App.Contracts.InstitutionContract;
/// <summary>
/// لیست پیامکهای بدهکاران قرارداد ملی
@@ -113,10 +115,30 @@ public class BlockSmsListData
/// <summary>
/// لیست قراداد های آبی
/// جهت ارسال هشدار یا اقدام قضائی
///پیامک آنی یادآور
/// </summary>
public class BlueWarningSmsData
public class InstantReminderSendSms
{
/// <summary>
/// نام طرف حساب
/// </summary>
public string FullName { get; set; }
/// <summary>
/// مبلغ بدهی
/// </summary>
public string Amount { get; set; }
public List<InstantReminderSmsList> InstantReminderSmsList { get; set; }
}
public class InstantReminderSmsList
{
/// <summary>
/// شماره تماس طرف حساب
/// </summary>
public string PhoneNumber { get; set; }
}

View File

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

View File

@@ -8,3 +8,10 @@ public class JobViewModel
public string SearchResultTitle { get; set; }
public string SearchResultCode { get; set; }
}
public class JobListDto
{
public long Id { get; set; }
public string JobName { get; set; }
}

View File

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

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