Completed DailYWage and BaseYear report For Contract
This commit is contained in:
@@ -17,7 +17,7 @@ public class Contract : EntityBase
|
||||
public Contract(long personnelCode, long employeeId, long employerId,
|
||||
long workshopIds, long yearlySalaryId, DateTime contarctStart, DateTime contractEnd, string dayliWage,
|
||||
string archiveCode, DateTime getWorkDate, DateTime setContractDate, string jobType,
|
||||
string contractType, string workshopAddress1, string workshopAddress2, string consumableItems, long jobTypeId, string housingAllowance, string agreementSalary, string workingHoursWeekly, string familyAllowance, string contractPeriod, double dailySalaryAffected, double baseYearAffected, double dailySalaryUnAffected, double baseYearUnAffected, bool hasManualDailyWage)
|
||||
string contractType, string workshopAddress1, string workshopAddress2, string consumableItems, long jobTypeId, string housingAllowance, string agreementSalary, string workingHoursWeekly, string familyAllowance, string contractPeriod, double dailySalaryAffected, double baseYearAffected, double dailySalaryUnAffected, double baseYearUnAffected, bool hasManualDailyWage, string dailyWageType)
|
||||
{
|
||||
PersonnelCode = personnelCode;
|
||||
EmployeeId = employeeId;
|
||||
@@ -53,6 +53,8 @@ public class Contract : EntityBase
|
||||
DailySalaryUnAffected = dailySalaryUnAffected;
|
||||
BaseYearUnAffected = baseYearUnAffected;
|
||||
HasManualDailyWage = hasManualDailyWage;
|
||||
DailyWageType = dailyWageType;
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
@@ -107,6 +109,10 @@ public class Contract : EntityBase
|
||||
/// </summary>
|
||||
public bool HasManualDailyWage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// نوع دستمزد انتخاب شده
|
||||
/// </summary>
|
||||
public string DailyWageType { get; set; }
|
||||
|
||||
public string IsActiveString { get; private set; }
|
||||
public string ArchiveCode { get; private set; }
|
||||
@@ -131,6 +137,7 @@ public class Contract : EntityBase
|
||||
|
||||
public Contract()
|
||||
{
|
||||
|
||||
WorkingHoursList = new List<WorkingHours>();
|
||||
}
|
||||
public void Edit(long pesrsonnelCode, long employeeId, long employerId, long workshopId, long yearlySalaryId,
|
||||
|
||||
@@ -18,6 +18,16 @@ public interface IContractRepository : IRepository<long, Contract>
|
||||
/// <param name="yearlySalaryId"></param>
|
||||
/// <returns></returns>
|
||||
Task<double> GetManualDailWage(long workshopId, long employeeId, long yearlySalaryId, DateTime contractStart);
|
||||
|
||||
/// <summary>
|
||||
/// دریافت لیست مزد ارتقاء یافته
|
||||
/// </summary>
|
||||
/// <param name="workshopId"></param>
|
||||
/// <param name="employeeId"></param>
|
||||
/// <param name="contractStart"></param>
|
||||
/// <returns></returns>
|
||||
Task<UpgradeManualDailyWageModel> GetManualDailWageList(long workshopId, long employeeId,
|
||||
DateTime contractStart);
|
||||
EditContract GetDetails(long id);
|
||||
EditContract GetContractByStartEnd(DateTime start, DateTime end, long workshopId, long employeeId);
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ using CompanyManagment.App.Contracts.YearlySalary;
|
||||
using System.Threading.Tasks;
|
||||
using CompanyManagment.App.Contracts.Checkout;
|
||||
using CompanyManagment.App.Contracts.Holiday;
|
||||
using CompanyManagment.App.Contracts.Contract;
|
||||
|
||||
namespace Company.Domain.YearlySalaryAgg;
|
||||
|
||||
@@ -38,7 +39,7 @@ public interface IYearlySalaryRepository : IRepository<long, YearlySalary>
|
||||
/// <param name="lastContractStart"></param>
|
||||
/// <param name="lastContractManualDailyWage"></param>
|
||||
/// <returns></returns>
|
||||
Task<double> UpgradeManualDailyWage(DateTime newContractStart, DateTime lastContractStart,
|
||||
Task<UpgradeManualDailyWageModel> UpgradeManualDailyWage(DateTime newContractStart, DateTime lastContractStart,
|
||||
double lastContractManualDailyWage);
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
using CompanyManagment.App.Contracts.YearlySalary;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace CompanyManagment.App.Contracts.Contract;
|
||||
/// <summary>
|
||||
/// نمایش نحوه محاسبه پایه سنوات و دستمزد روزانه
|
||||
/// </summary>
|
||||
public class ContractDailyWageAndBaseYearReport
|
||||
{
|
||||
/// <summary>
|
||||
/// لیست داده های محاسبه پایه سنوات
|
||||
/// </summary>
|
||||
public BaseYearDataViewModel BaseYearDataViewModel { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// پایه سنوات متاثر از ساعت کار
|
||||
/// </summary>
|
||||
public string BaseYearAffected { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// دستمزد روزانه متاثر از ساعت کار
|
||||
/// </summary>
|
||||
public string DailySalaryAffected { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// دستمزد روزانه بدون تاثیر ساعت کار
|
||||
/// </summary>
|
||||
public string DailySalaryUnAffected { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// دستمزد روزانه تجمیعی
|
||||
/// </summary>
|
||||
public string DailyWage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// تاریخ قراداد
|
||||
/// </summary>
|
||||
public string ContractDate { get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// نوع دستمزد انتخاب شده
|
||||
/// </summary>
|
||||
public string DailyWageType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// لیست ارتقاء
|
||||
/// </summary>
|
||||
public List<UpgradeManualDailyWageList> UpgradeManualDailyWageLists { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// نام پرسنل
|
||||
/// </summary>
|
||||
public string EmployeeName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// نام کارگاه
|
||||
/// </summary>
|
||||
public string WorkshopName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// آیا با متد جدید محاسبه شده
|
||||
/// </summary>
|
||||
public bool OldComputeMethod { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// آیا محاسبات با مقادیر ذخیره شده مغایرت دارد
|
||||
/// </summary>
|
||||
public bool Contradiction { get; set; }
|
||||
}
|
||||
@@ -165,6 +165,11 @@ public class CreateContract
|
||||
/// آیا دستمزد روزانه دستی وارد شده است؟
|
||||
/// </summary>
|
||||
public bool HasManualDailyWage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// نوع دستمزد انتخاب شده
|
||||
/// </summary>
|
||||
public string DailyWageType { get; set; }
|
||||
public List<ContractViweModel> Contracts { get; set; }
|
||||
public List<WorkshopViewModel> Workshops { get; set; }
|
||||
public List<EmployerViewModel> Employers { get; set; }
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace CompanyManagment.App.Contracts.Contract;
|
||||
|
||||
/// <summary>
|
||||
/// ویو مدل رتقاء دستمزد روزانه و لیست ارتقاء
|
||||
/// </summary>
|
||||
public class UpgradeManualDailyWageModel
|
||||
{
|
||||
/// <summary>
|
||||
/// دستمزد روزانه
|
||||
/// </summary>
|
||||
public double DailyWage{ get; set; }
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// لیست ارتقاء
|
||||
/// </summary>
|
||||
public List<UpgradeManualDailyWageList> UpgradeManualDailyWageLists { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// لیست ارتقاء
|
||||
/// </summary>
|
||||
public class UpgradeManualDailyWageList
|
||||
{
|
||||
/// <summary>
|
||||
/// تاریخ شروع و پایان بازه ارتقاء
|
||||
/// </summary>
|
||||
public string StartEndDate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// دستمزد روزانه
|
||||
/// </summary>
|
||||
public string DailyWage { get; set; }
|
||||
}
|
||||
@@ -75,4 +75,9 @@ public class createContractModel
|
||||
/// </summary>
|
||||
public bool HasManualDailyWage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// نوع دستمزد انتخاب شده
|
||||
/// </summary>
|
||||
public string DailyWageType { get; set; }
|
||||
|
||||
}
|
||||
@@ -24,6 +24,11 @@ public class BaseYearDataViewModel
|
||||
/// </summary>
|
||||
public double BaseYearResult { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// اولین روز شروع بکار
|
||||
/// </summary>
|
||||
public string FirstWorkDayInLeftWork { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// لیست تمام پایه سنوات های محاسبه شده
|
||||
/// </summary>
|
||||
@@ -64,4 +69,29 @@ public class BaseYearDataList
|
||||
/// سالی که در آن پایه سنوات تعلق گرفته
|
||||
/// </summary>
|
||||
public string Year { get; set; }
|
||||
|
||||
/// <summary>
|
||||
///روزی که پایه سنوات تعلق گرفته
|
||||
///یا شروع بکار. ترک کار
|
||||
/// شمسی
|
||||
/// </summary>
|
||||
public string BaseYearPayDay { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// روزی که پایه سنوات تعلق گرفته
|
||||
///یا شروع بکار. ترک کار
|
||||
/// میلادی
|
||||
/// </summary>
|
||||
public DateTime BaseYearPayDayGr { get; set; }
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// آیا تاریخ شروع بکار دارد
|
||||
/// </summary>
|
||||
public bool HasStartWork { get; set; }
|
||||
/// <summary>
|
||||
/// آیا تاریخ پایان کار دارد
|
||||
/// </summary>
|
||||
public bool HasLeftWork { get; set; }
|
||||
}
|
||||
@@ -2,7 +2,9 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using _0_Framework.Application;
|
||||
using CompanyManagment.App.Contracts.Contract;
|
||||
using CompanyManagment.App.Contracts.Holiday;
|
||||
using CompanyManagment.App.Contracts.LeftWork;
|
||||
|
||||
namespace CompanyManagment.App.Contracts.YearlySalary;
|
||||
|
||||
@@ -15,6 +17,26 @@ public interface IYearlySalaryApplication
|
||||
EditYearlySalary GetDetails(long id);
|
||||
List<YearlySalaryViewModel> GetYearlySalary();
|
||||
|
||||
/// <summary>
|
||||
/// متد ارتقاء مزد دلخواه
|
||||
/// </summary>
|
||||
/// <param name="newContractStart"></param>
|
||||
/// <param name="lastContractStart"></param>
|
||||
/// <param name="lastContractManualDailyWage"></param>
|
||||
/// <returns></returns>
|
||||
Task<UpgradeManualDailyWageModel> UpgradeManualDailyWage(DateTime newContractStart, DateTime lastContractStart,
|
||||
double lastContractManualDailyWage);
|
||||
|
||||
/// <summary>
|
||||
/// متد محاسبه پایه سنوات و لیست پایه سنوات های پرسنل
|
||||
/// </summary>
|
||||
/// <param name="contractStart"></param>
|
||||
/// <param name="contractEnd"></param>
|
||||
/// <param name="employeeId"></param>
|
||||
/// <param name="workshopId"></param>
|
||||
/// <param name="leftWorkList"></param>
|
||||
/// <returns></returns>
|
||||
Task<BaseYearDataViewModel> BaseYearComputeByContractId(long contractId);
|
||||
/// <summary>
|
||||
/// دریافت مزد روزانه بر اساس تاریخ شروع و پایان
|
||||
/// </summary>
|
||||
|
||||
@@ -149,7 +149,7 @@ public class ContractApplication : IContractApplication
|
||||
command.JobType, command.ContractType, command.WorkshopAddress1, command.WorkshopAddress2,
|
||||
command.ConsumableItems, command.JobTypeId, command.HousingAllowance, command.AgreementSalary,
|
||||
command.WorkingHoursWeekly, command.FamilyAllowance, command.ContractPeriod,command.DailySalaryAffected,
|
||||
command.BaseYearAffected, command.DailySalaryUnAffected,command.BaseYearUnAffected, command.HasManualDailyWage);
|
||||
command.BaseYearAffected, command.DailySalaryUnAffected,command.BaseYearUnAffected, command.HasManualDailyWage, command.DailyWageType);
|
||||
|
||||
_contractRepository.Create(makeContract);
|
||||
_contractRepository.SaveChanges();
|
||||
@@ -365,7 +365,7 @@ public class ContractApplication : IContractApplication
|
||||
command.JobName, command.ContractType, command.WorkshopAddress1, command.WorkshopAddress2,
|
||||
command.ConsumableItems, command.JobId, command.HousingAllowance, "0", command.WorkingHoursWeekly, command.FamilyAllowance, command.ContractPeriod,
|
||||
command.DailySalaryAffected,
|
||||
command.BaseYearAffected, command.DailySalaryUnAffected, command.BaseYearUnAffected, command.HasManualDailyWage);
|
||||
command.BaseYearAffected, command.DailySalaryUnAffected, command.BaseYearUnAffected, command.HasManualDailyWage, command.DailyWageType);
|
||||
_contractRepository.Create(makeContract);
|
||||
_contractRepository.SaveChanges();
|
||||
|
||||
|
||||
@@ -1,12 +1,17 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using _0_Framework.Application;
|
||||
using Company.Domain.YearlySalaryAgg;
|
||||
using CompanyManagment.App.Contracts.Contract;
|
||||
using CompanyManagment.App.Contracts.Holiday;
|
||||
using CompanyManagment.App.Contracts.LeftWork;
|
||||
using CompanyManagment.App.Contracts.YearlySalary;
|
||||
using CompanyManagment.EFCore;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using static Microsoft.EntityFrameworkCore.DbLoggerCategory.Database;
|
||||
|
||||
namespace CompanyManagment.Application;
|
||||
|
||||
@@ -128,6 +133,36 @@ public class YearlySalaryApplication : IYearlySalaryApplication
|
||||
return _yearlySalaryRepository.GetYearlySalary();
|
||||
}
|
||||
|
||||
public Task<UpgradeManualDailyWageModel> UpgradeManualDailyWage(DateTime newContractStart, DateTime lastContractStart, double lastContractManualDailyWage)
|
||||
{
|
||||
return _yearlySalaryRepository.UpgradeManualDailyWage(newContractStart, lastContractStart,
|
||||
lastContractManualDailyWage);
|
||||
}
|
||||
|
||||
public async Task<BaseYearDataViewModel> BaseYearComputeByContractId(long contractId)
|
||||
{
|
||||
var contract = await _context.Contracts.FirstOrDefaultAsync(x => x.id == contractId);
|
||||
|
||||
var leftWorkList = await _context.LeftWorkList.Where(x=>x.EmployeeId ==contract.EmployeeId && x.WorkshopId == contract.WorkshopIds).Select(x => new LeftWorkViewModel()
|
||||
{
|
||||
Id = x.id,
|
||||
LeftWorkDate = x.LeftWorkDate.ToFarsi(),
|
||||
StartWorkDate = x.StartWorkDate.ToFarsi(),
|
||||
LeftWorkDateGr = x.LeftWorkDate,
|
||||
StartWorkDateGr = x.StartWorkDate,
|
||||
WorkshopId = x.WorkshopId,
|
||||
EmployeeId = x.EmployeeId,
|
||||
HasLeft = x.HasLeft,
|
||||
}).ToListAsync();
|
||||
|
||||
var baseYearResult = await _yearlySalaryRepository.BaseYearCompute(contract.ContarctStart, contract.ContractEnd,
|
||||
contract.EmployeeId, contract.WorkshopIds, leftWorkList);
|
||||
|
||||
return baseYearResult;
|
||||
|
||||
}
|
||||
|
||||
|
||||
public async Task<(double dailyWage, long yearlySalaryId)> GetDailyWageByStartEnd(DateTime start, DateTime end)
|
||||
{
|
||||
return await _yearlySalaryRepository.GetDailyWageByStartEnd(start, end);
|
||||
|
||||
@@ -26,6 +26,7 @@ public class ContractMapping : IEntityTypeConfiguration<Contract>
|
||||
builder.Property(x => x.ContractPeriod).HasMaxLength(2).IsRequired(false);
|
||||
builder.Property(x => x.AgreementSalary).HasMaxLength(50).IsRequired(false);
|
||||
builder.Property(x => x.Signature).HasMaxLength(1).IsRequired(false);
|
||||
builder.Property(x=>x.DailyWageType).HasMaxLength(30).IsRequired(false);
|
||||
|
||||
|
||||
|
||||
|
||||
10231
CompanyManagment.EFCore/Migrations/20250827230053_DailyWageTypeoContract.Designer.cs
generated
Normal file
10231
CompanyManagment.EFCore/Migrations/20250827230053_DailyWageTypeoContract.Designer.cs
generated
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,29 @@
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace CompanyManagment.EFCore.Migrations
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public partial class DailyWageTypeoContract : Migration
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.AddColumn<string>(
|
||||
name: "DailyWageType",
|
||||
table: "Contracts",
|
||||
type: "nvarchar(30)",
|
||||
maxLength: 30,
|
||||
nullable: true);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropColumn(
|
||||
name: "DailyWageType",
|
||||
table: "Contracts");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -788,6 +788,10 @@ namespace CompanyManagment.EFCore.Migrations
|
||||
b.Property<double>("DailySalaryUnAffected")
|
||||
.HasColumnType("float");
|
||||
|
||||
b.Property<string>("DailyWageType")
|
||||
.HasMaxLength(30)
|
||||
.HasColumnType("nvarchar(30)");
|
||||
|
||||
b.Property<string>("DayliWage")
|
||||
.IsRequired()
|
||||
.HasMaxLength(50)
|
||||
|
||||
@@ -66,17 +66,33 @@ public class ContractRepository : RepositoryBase<long, Contract>, IContractRepos
|
||||
return lastContract.DailySalaryUnAffected;
|
||||
|
||||
|
||||
double dailyWage = _yearlySalaryRepository.UpgradeManualDailyWage(contractStart,
|
||||
var dailyWageResult = _yearlySalaryRepository.UpgradeManualDailyWage(contractStart,
|
||||
lastContractYearlySalary.StartDate, lastContract.DailySalaryUnAffected).GetAwaiter().GetResult();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
return dailyWage;
|
||||
return dailyWageResult.DailyWage;
|
||||
}
|
||||
|
||||
public async Task<UpgradeManualDailyWageModel> GetManualDailWageList(long workshopId, long employeeId,
|
||||
DateTime contractStart)
|
||||
{
|
||||
var oldContracts = await _context.Contracts
|
||||
.Where(x => x.WorkshopIds == workshopId && x.EmployeeId == employeeId && x.IsActiveString == "true" && x.DailyWageType == "ManualDailyWage" && x.ContarctStart < contractStart)
|
||||
.OrderByDescending(x => x.ContarctStart)
|
||||
.FirstOrDefaultAsync();
|
||||
if (oldContracts == null)
|
||||
return new UpgradeManualDailyWageModel();
|
||||
|
||||
//var endOfMonthFromStart = ($"{contractStart.ToFarsi().FindeEndOfMonth()}").ToGeorgianDateTime();
|
||||
|
||||
|
||||
var result =await _yearlySalaryRepository.UpgradeManualDailyWage(contractStart, oldContracts.ContarctStart,
|
||||
oldContracts.DailySalaryUnAffected);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public EditContract GetDetails(long id)
|
||||
{
|
||||
return _context.Contracts.Select(x => new EditContract
|
||||
@@ -107,8 +123,12 @@ public class ContractRepository : RepositoryBase<long, Contract>, IContractRepos
|
||||
ContractPeriod = x.ContractPeriod,
|
||||
AgreementSalary = x.AgreementSalary,
|
||||
ArchiveCode = x.ArchiveCode,
|
||||
|
||||
|
||||
BaseYearAffected = x.BaseYearAffected,
|
||||
BaseYearUnAffected = x.BaseYearUnAffected,
|
||||
DailySalaryAffected = x.DailySalaryAffected,
|
||||
DailySalaryUnAffected = x.DailySalaryUnAffected,
|
||||
HasManualDailyWage = x.HasManualDailyWage,
|
||||
DailyWageType = x.DailyWageType,
|
||||
|
||||
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,375 @@
|
||||
@using _0_Framework.Application
|
||||
@model CompanyManagment.App.Contracts.Contract.ContractDailyWageAndBaseYearReport
|
||||
|
||||
@{
|
||||
<style>
|
||||
.modal .modal-dialog .modal-content {
|
||||
width: 110% !important;
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
.trTable {
|
||||
background-color: cadetblue;
|
||||
color: aliceblue;
|
||||
border-radius: 5px;
|
||||
padding: 3px;
|
||||
margin: 3px;
|
||||
}
|
||||
|
||||
|
||||
.st {
|
||||
background: #cecece;
|
||||
border-radius: 8px;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
box-sizing: border-box;
|
||||
direction: rtl;
|
||||
font-family: "IranSans", sans-serif;
|
||||
margin: 5px 0px;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
|
||||
.st .header {
|
||||
background: #0d4c4c;
|
||||
color: #fff;
|
||||
padding: 10px 14px;
|
||||
text-align: center;
|
||||
font-weight: 700;
|
||||
border-radius: 8px 8px 0 0;
|
||||
}
|
||||
|
||||
|
||||
.st .trTable {
|
||||
padding: 4px 9px;
|
||||
margin: 0;
|
||||
display: block;
|
||||
margin: 3px 3px;
|
||||
}
|
||||
|
||||
|
||||
.st .trTable .content {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
|
||||
.st .trTable.green {
|
||||
background: forestgreen;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.st .trTable.red {
|
||||
background: #d9534f;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.st .trTable.teal {
|
||||
background: #5fb0b0;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.st .trTable.orange {
|
||||
background: orangered;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.date {
|
||||
font-family: 'IranText' !important;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
</style>
|
||||
}
|
||||
|
||||
<div class="container" style="margin: 10px 0px">
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-xs-12 col-sm-6 col-md-6">
|
||||
<div class="st">
|
||||
<div class="trTable" style="background-color: #727272">
|
||||
<div class="content" style="background-color: #727272">
|
||||
<div>نام پرسنل</div>
|
||||
<div>@Model.EmployeeName</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="col-xs-12 col-sm-6 col-md-6">
|
||||
<div class="st">
|
||||
<div class="trTable" style="background-color: #727272">
|
||||
<div class="content" style="background-color: #727272">
|
||||
<div>نام کارگاه</div>
|
||||
<div>@Model.WorkshopName</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@if (Model.OldComputeMethod)
|
||||
{
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-sm-12 col-md-12">
|
||||
|
||||
<div class="st">
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="trTable" style="background-color: #fbddda">
|
||||
<div class="content" style="background-color: #fbddda">
|
||||
<div style="color:red">این قراداد با روش قدیم محاسبه مزد ایجاد شده است</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="col-xs-12">
|
||||
<button type="button" class="btn btn-warning btn-rounded waves-effect waves-light m-b-10" data-dismiss="modal">بستن فرم</button>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
@if (Model.Contradiction)
|
||||
{
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-sm-12 col-md-12">
|
||||
|
||||
<div class="st">
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="trTable" style="background-color: #fbddda">
|
||||
<div class="content" style="background-color: #fbddda">
|
||||
<div style="color:red">
|
||||
|
||||
<p>مقادیر محاسبه شده در این گزارش با مقادیر ذخیره شده در قراداد مغایرت دارد</p>
|
||||
<p>احتمالا مواردی مانند شروع بکار/ترک کار پرسنل تغییر کرده است</p>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-sm-6 col-md-6">
|
||||
|
||||
<div class="st">
|
||||
|
||||
<!-- هدر -->
|
||||
<div class="header">محاسبه پایه سنوات</div>
|
||||
|
||||
@if (Model.BaseYearDataViewModel.BaseYearResult > 0)
|
||||
{
|
||||
@foreach (var item in Model.BaseYearDataViewModel.BaseYearDataList)
|
||||
{
|
||||
if (item.HasStartWork)
|
||||
{
|
||||
<div class="trTable green">
|
||||
<div class="content">
|
||||
<div class="date">@item.BaseYearPayDay</div>
|
||||
<div>شروع بکار</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
else if (item.HasLeftWork)
|
||||
{
|
||||
<div class="trTable red">
|
||||
<div class="content">
|
||||
<div class="date">@item.BaseYearPayDay</div>
|
||||
<div>ترک کار</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
if (item.BaseYearPayDay == "-")
|
||||
{
|
||||
<div class="trTable orange">
|
||||
<div class="content">
|
||||
<div>
|
||||
|
||||
<span class="date"> @item.BaseYearPayDayGr.ToFarsi()</span>
|
||||
<span>فقط ارتقاء</span>
|
||||
</div>
|
||||
<div class="date">@item.BaseYear.ToMoney()</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="trTable teal">
|
||||
<div class="content">
|
||||
<div class="date">@item.BaseYearPayDay</div>
|
||||
<div class="date">@item.BaseYear.ToMoney()</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="trTable">
|
||||
<div class="trTable teal">
|
||||
<div class="content">
|
||||
<div>پایه سنوات ندارد</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-6 col-md-6">
|
||||
|
||||
<div class="st">
|
||||
|
||||
<!-- هدر -->
|
||||
<div class="header"> محاسبه مزد روزانه </div>
|
||||
|
||||
|
||||
@{
|
||||
if (@Model.DailyWageType == "UpgradedDailyWage")
|
||||
{
|
||||
<div class="trTable">
|
||||
<div class="content">
|
||||
<div>بازه ارتقاء</div>
|
||||
<div> ارتقاء مزد</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@foreach (var dailyWage in @Model.UpgradeManualDailyWageLists)
|
||||
{
|
||||
<div class="trTable">
|
||||
<div class="content date">
|
||||
<div>@dailyWage.StartEndDate</div>
|
||||
<div>@dailyWage.DailyWage</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
}
|
||||
else if (@Model.DailyWageType == "ManualDailyWage")
|
||||
{
|
||||
|
||||
<div class="trTable">
|
||||
<div class="content date">
|
||||
<div>مزد دلخواه</div>
|
||||
<div>@Model.DailySalaryUnAffected</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="trTable">
|
||||
<div class="content date">
|
||||
<div>مزد سالانه</div>
|
||||
<div>@Model.DailySalaryUnAffected</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-sm-6 col-md-6">
|
||||
|
||||
<div class="st">
|
||||
|
||||
<!-- هدر -->
|
||||
<div class="header" style="background-color: #ff6100"> نتایج محاسبه پایه سنوات </div>
|
||||
<div class="trTable date" style="background-color: #727272">
|
||||
<div class="content" style="background-color: #727272">
|
||||
<div> بدون تاثیر ساعت کار</div>
|
||||
<div> @Model.BaseYearDataViewModel.BaseYearResult.ToMoney() </div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="trTable date" style="background-color: #727272">
|
||||
<div class="content" style="background-color: #727272">
|
||||
<div>متاثر از ساعت کار</div>
|
||||
<div> @Model.BaseYearAffected </div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-6 col-md-6">
|
||||
|
||||
<div class="st">
|
||||
|
||||
<!-- هدر -->
|
||||
<div class="header" style="background-color: #ff6100"> نتایج محاسبه مزد روزانه </div>
|
||||
|
||||
<div class="trTable" style="background-color: #727272">
|
||||
<div class="content" style="background-color: #727272">
|
||||
<div>بدون تاثیر ساعت کار</div>
|
||||
<div>@Model.DailySalaryUnAffected</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="trTable" style="background-color: #727272">
|
||||
<div class="content" style="background-color: #727272">
|
||||
<div>متاثر از ساعت کار</div>
|
||||
<div class="date"> @Model.DailySalaryAffected </div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-sm-12 col-md-12">
|
||||
|
||||
<div class="st">
|
||||
|
||||
<!-- هدر -->
|
||||
<div class="header" style="background-color: #596059; padding: 3px"> دستمزد روزانه تجمیعی</div>
|
||||
|
||||
|
||||
<div class="trTable" style="background-color: #3d7373">
|
||||
<div class="content" style="background-color: #3d7373">
|
||||
<div>@Model.ContractDate</div>
|
||||
<div>@Model.DailyWage</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-xs-12">
|
||||
<button type="button" class="btn btn-warning btn-rounded waves-effect waves-light m-b-10" data-dismiss="modal">بستن فرم</button>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
</div>
|
||||
@@ -47,6 +47,13 @@
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.dailyWageReportIcon {
|
||||
font-size: 20px !important;
|
||||
top: 2px !important;
|
||||
position: relative;
|
||||
padding :6px !important;
|
||||
}
|
||||
|
||||
.ionRad {
|
||||
border-radius: 8px !important;
|
||||
padding: 0px 7px 0px 7px !important;
|
||||
@@ -801,6 +808,10 @@
|
||||
href="#showmodal=@Url.Page("./Index", "CreatePaidLeave", new {employeeId = item.EmployeeId, workshopId = item.WorkshopIds})">
|
||||
<i class="ion-briefcase ionSize"></i>
|
||||
</a>
|
||||
<a permission="20121" class="btn btn-success pull-left m-rl-5 ionRad2 @(item.IsBlockCantracingParty=="true" ? "disabled":"")"
|
||||
style="background-color: #c630fa !important; border-color: #c630fa !important;" href="#showmodal=@Url.Page("./Index", "DailyWageAndBaseYearReport", new {contractId = item.Id})">
|
||||
<i class="ion-alert dailyWageReportIcon"></i>
|
||||
</a>
|
||||
</div>
|
||||
<div class="flexible-div op-td mobile-view" style="justify-content: flex-end;">
|
||||
<div class="more-buttons flexible-div">
|
||||
|
||||
@@ -135,6 +135,69 @@ public class IndexModel : PageModel
|
||||
employeeFullName = searchModel.EmployeeName;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// نحوه محاسبه پایه سنوات و ارتقاء مزد رو نمایش میده
|
||||
/// </summary>
|
||||
/// <param name="contractId"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<IActionResult> OnGetDailyWageAndBaseYearReport(long contractId)
|
||||
{
|
||||
var res = new ContractDailyWageAndBaseYearReport();
|
||||
var contract = _contractApplication.GetDetails(contractId);
|
||||
var employeeName = _employeeApplication.GetDetails(contract.EmployeeId).EmployeeFullName;
|
||||
var workshopName = _workshopApplication.GetWorkshopInfo(contract.WorkshopIds).WorkshopFullName;
|
||||
var baseYearResult =await _yearlySalaryApplication.BaseYearComputeByContractId(contractId);
|
||||
|
||||
if (contract.DailySalaryUnAffected == 0 || string.IsNullOrWhiteSpace(contract.DailyWageType))
|
||||
{
|
||||
res = new ContractDailyWageAndBaseYearReport()
|
||||
{
|
||||
|
||||
EmployeeName = employeeName,
|
||||
WorkshopName = workshopName,
|
||||
Contradiction = false,
|
||||
OldComputeMethod = true,
|
||||
|
||||
|
||||
};
|
||||
|
||||
return Partial("DailyWageAndBaseYearReport", res);
|
||||
}
|
||||
|
||||
var dailyWageListResult = new List<UpgradeManualDailyWageList>();
|
||||
bool contradiction = false;
|
||||
if (contract.DailyWageType == "UpgradedDailyWage")
|
||||
{
|
||||
var upgradeDailyWageResult = _contractRepository.GetManualDailWageList(contract.WorkshopIds,
|
||||
contract.EmployeeId, contract.ContractStartGr).GetAwaiter().GetResult();
|
||||
dailyWageListResult = upgradeDailyWageResult.UpgradeManualDailyWageLists;
|
||||
|
||||
//اگر مغایرت داشت
|
||||
if (contract.DailySalaryUnAffected.ToMoney().MoneyToDouble() != upgradeDailyWageResult.DailyWage.ToMoney().MoneyToDouble()
|
||||
|| baseYearResult.BaseYearResult.ToMoney().MoneyToDouble() != contract.BaseYearUnAffected.ToMoney().MoneyToDouble())
|
||||
contradiction = true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
res = new ContractDailyWageAndBaseYearReport()
|
||||
{
|
||||
BaseYearDataViewModel = baseYearResult,
|
||||
BaseYearAffected = contract.BaseYearAffected > 0 ? contract.BaseYearAffected.ToMoney() : "0",
|
||||
DailySalaryAffected = contract.DailySalaryAffected > 0 ? contract.DailySalaryAffected.ToMoney() : "0",
|
||||
DailySalaryUnAffected = contract.DailySalaryUnAffected > 0 ? contract.DailySalaryUnAffected.ToMoney() : "0",
|
||||
DailyWage = contract.DayliWage,
|
||||
ContractDate = $"تا تاریخ {contract.ContarctStart.FindeEndOfMonth()}",
|
||||
DailyWageType = contract.DailyWageType,
|
||||
UpgradeManualDailyWageLists = dailyWageListResult,
|
||||
EmployeeName = employeeName,
|
||||
WorkshopName = workshopName,
|
||||
Contradiction = contradiction,
|
||||
|
||||
};
|
||||
return Partial("DailyWageAndBaseYearReport", res);
|
||||
}
|
||||
|
||||
public async Task<IActionResult> OnGetPersonelMainList(string searchEmployee)
|
||||
{
|
||||
|
||||
@@ -730,6 +730,19 @@ public class AutoExtensionModel : PageModel
|
||||
|
||||
item.HasManualDailyWage = dailySalaryUnAffected > normaldailyWage;
|
||||
item.DailySalaryUnAffected = dailySalaryUnAffected;
|
||||
|
||||
switch (item.DailyWageType)
|
||||
{
|
||||
case "1": item.DailyWageType = "NormalDailyWage";
|
||||
break;
|
||||
case "2":
|
||||
item.DailyWageType = item.HasManualDailyWage == true ? "UpgradedDailyWage" : "NormalDailyWage";
|
||||
break;
|
||||
case "3":
|
||||
item.DailyWageType = "ManualDailyWage";
|
||||
break;
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
||||
var result =
|
||||
|
||||
@@ -573,6 +573,7 @@ $('#startProcess').on('click',
|
||||
|
||||
createContractModel.NormalDailyWage = $(this).find("input[name=normalDailyWage]").val();
|
||||
createContractModel.DailySalaryUnAffectedStr = $(this).find("input[name=dailySalaryUnAffectedStr]").val();
|
||||
createContractModel.DailyWageType = $(this).find("select[name=dailyWageType]").val();
|
||||
if (createContractModel.DailySalaryUnAffectedStr == "0") {
|
||||
$(this).find("input[name=dailySalaryUnAffectedStr]").addClass("erroreManual");
|
||||
startCreate = false;
|
||||
|
||||
Reference in New Issue
Block a user