add-customizeChekoutService and some client upgrade
This commit is contained in:
@@ -16,4 +16,5 @@ public class EditTicket:CreateTicket
|
||||
public string TicketNumber { get; set; }
|
||||
public string CreationDateStr { get; set; }
|
||||
public string Status { get; set; }
|
||||
public bool HasTask { get; set; }
|
||||
}
|
||||
@@ -267,8 +267,9 @@ public class TicketRepository : RepositoryBase<long, Ticket>, ITicketRepository
|
||||
|
||||
WorkshopId = entity.WorkshopId,
|
||||
TicketNumber = $"TKC_{entity.TicketNumber}",
|
||||
Status = entity.Status
|
||||
};
|
||||
Status = entity.Status,
|
||||
HasTask = _accountContext.Tasks.Any(x => x.TicketId == entity.id)
|
||||
};
|
||||
|
||||
editTicketViewModel.ResponseViewModels = MergeResponses(editTicketViewModel.ClientResponseViewModels, editTicketViewModel.AdminResponseViewModels);
|
||||
|
||||
|
||||
@@ -26,8 +26,9 @@ namespace Company.Domain.RollCallAgg
|
||||
RollCallsByDateViewModel GetWorkshopRollCallHistory(RollCallSearchModel searchModel);
|
||||
CurrentDayRollCall GetWorkshopCurrentDayRollCalls(long workshopId);
|
||||
List<CheckoutDailyRollCallViewModel> GetEmployeeRollCallsForMonth(long employeeId, long workshopId, DateTime startDate, DateTime endDate);
|
||||
List<RollCallViewModel> GetEmployeeRollCallsHistoryAll(long workshopId, long employeeId, DateTime start, DateTime end);
|
||||
|
||||
EmployeeRollCallsByMonthViewModel GetEmployeeRollCallsHistory(long employeeId, long workshopId,
|
||||
EmployeeRollCallsByMonthViewModel GetEmployeeRollCallsHistory(long employeeId, long workshopId,
|
||||
DateTime? startDateTime, DateTime? endDateTime, DateTime? exactDateTime, DateTime? monthIndex);
|
||||
|
||||
void AddRange(List<RollCall> rollCalls);
|
||||
|
||||
@@ -22,6 +22,7 @@ public class RollCallService : EntityBase
|
||||
Amount = amount;
|
||||
Duration = duration;
|
||||
IsActiveString = "true";
|
||||
HasCustomizeCheckoutService = "false";
|
||||
}
|
||||
|
||||
public string ServiceType { get; private set; }
|
||||
@@ -30,11 +31,28 @@ public class RollCallService : EntityBase
|
||||
public long WorkshopId { get; private set; }
|
||||
public long AccountId { get; private set; }
|
||||
public string IsActiveString { get; private set; }
|
||||
|
||||
public int MaxPersonValid { get; private set; }
|
||||
public double Amount { get; private set; }
|
||||
public string Duration { get; private set; }
|
||||
|
||||
public Workshop Workshop { get; set; }
|
||||
#region CustomizeCheckoutService
|
||||
|
||||
public string HasCustomizeCheckoutService { get; private set; }
|
||||
public DateTime? CustomizeCheckoutServiceStart { get; private set; }
|
||||
public DateTime? CustomizeCheckoutServiceEnd{ get; private set; }
|
||||
public double CustomizeCheckoutAmount { get; private set; }
|
||||
#endregion
|
||||
|
||||
public Workshop Workshop { get; set; }
|
||||
|
||||
public void AddOrRemoveCoustomizeCheckoutServiceVip(string hasCustomizeCheckoutServise,DateTime endService, DateTime startService)
|
||||
{
|
||||
HasCustomizeCheckoutService = hasCustomizeCheckoutServise;
|
||||
CustomizeCheckoutServiceStart = hasCustomizeCheckoutServise == "true" ? DateTime.Now : startService;
|
||||
CustomizeCheckoutServiceEnd = hasCustomizeCheckoutServise == "true" ? endService : DateTime.Now;
|
||||
CustomizeCheckoutAmount = 0;
|
||||
}
|
||||
|
||||
public void UpgradeService(string serviceType, DateTime startService, DateTime endService, int maxPersonValid,
|
||||
double amount, string duration)
|
||||
@@ -47,11 +65,17 @@ public class RollCallService : EntityBase
|
||||
Duration = duration;
|
||||
}
|
||||
|
||||
public void StopVipService()
|
||||
public void StopVipService(bool hasCustomizeCheckoutBefor)
|
||||
{
|
||||
IsActiveString = "false";
|
||||
EndService = DateTime.Now;
|
||||
}
|
||||
if (hasCustomizeCheckoutBefor)
|
||||
{
|
||||
CustomizeCheckoutServiceEnd = DateTime.Now;
|
||||
HasCustomizeCheckoutService = "false";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void DeActive()
|
||||
{
|
||||
|
||||
@@ -22,4 +22,5 @@ public class CreateRollCallService
|
||||
public string Duration { get; set; }
|
||||
public string FullName { get; set; }
|
||||
public int AddPersonValid { get; set; }
|
||||
public string HasCustomizeCheckoutService { get; set; }
|
||||
}
|
||||
@@ -12,9 +12,11 @@ public interface IRollCallServiceApplication
|
||||
OperationResult Create(CreateRollCallService command);
|
||||
OperationResult Upgrade(EditRollCallService command);
|
||||
OperationResult StopVipService(long serviceId);
|
||||
EditRollCallService GetDetails(long id);
|
||||
OperationResult AddCustomizeCheckoutServiceVip(long serviceId);
|
||||
EditRollCallService GetDetails(long id);
|
||||
RollCallServiceViewModel GetActiveServiceByWorkshopId(long workshopId);
|
||||
List<RollCallServiceViewModel> GetAllServiceByWorkshopId(long workshopId);
|
||||
List<RollCallServiceViewModel> GetActiveServiceByAccountId(long accountId);
|
||||
List<RollCallServiceViewModel> GetAllServiceByAccountId(long accountId);
|
||||
|
||||
}
|
||||
@@ -80,4 +80,6 @@ public class CreateWorkshop
|
||||
|
||||
#endregion
|
||||
|
||||
public string HasCustomizeCheckoutService { get; set; }
|
||||
|
||||
}
|
||||
@@ -1,10 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
using _0_Framework.Application;
|
||||
using Company.Domain.EmployeeAgg;
|
||||
using Company.Domain.LeaveAgg;
|
||||
using Company.Domain.RollCallAgg;
|
||||
using Company.Domain.WorkshopAgg;
|
||||
using CompanyManagment.App.Contracts.Leave;
|
||||
|
||||
@@ -15,12 +17,14 @@ public class LeaveApplication : ILeaveApplication
|
||||
private readonly ILeaveRepository _leaveRepository;
|
||||
private readonly IEmployeeRepository _employeeRepository;
|
||||
private readonly IWorkshopRepository _workshopRepository;
|
||||
private readonly IRollCallRepository _rollCallRepository;
|
||||
|
||||
public LeaveApplication(ILeaveRepository leaveRepository, IEmployeeRepository employeeRepository, IWorkshopRepository workshopRepository)
|
||||
public LeaveApplication(ILeaveRepository leaveRepository, IEmployeeRepository employeeRepository, IWorkshopRepository workshopRepository, IRollCallRepository rollCallRepository)
|
||||
{
|
||||
_leaveRepository = leaveRepository;
|
||||
_employeeRepository = employeeRepository;
|
||||
_workshopRepository = workshopRepository;
|
||||
_rollCallRepository = rollCallRepository;
|
||||
}
|
||||
|
||||
public OperationResult Create(CreateLeave command)
|
||||
@@ -155,8 +159,10 @@ public class LeaveApplication : ILeaveApplication
|
||||
|
||||
var year = Convert.ToInt32(command.StartLeave.Substring(0, 4));
|
||||
var month = Convert.ToInt32(command.StartLeave.Substring(5, 2));
|
||||
|
||||
var employeeFullName = _employeeRepository.GetDetails(command.EmployeeId).EmployeeFullName;
|
||||
// var checkIfHasRollCall =ValidateNewLeaveWithExistingRollCalls(command.WorkshopId, command.EmployeeId, start, end);
|
||||
//if (!checkIfHasRollCall.IsSuccedded)
|
||||
// return checkIfHasRollCall;
|
||||
var employeeFullName = _employeeRepository.GetDetails(command.EmployeeId).EmployeeFullName;
|
||||
var workshopName = _workshopRepository.GetDetails(command.WorkshopId).WorkshopName;
|
||||
var leave = new Leave(start,end,totalhourses,command.WorkshopId,command.EmployeeId
|
||||
,command.PaidLeaveType,command.LeaveType,employeeFullName,workshopName, command.IsAccepted, command.Decription, year, month);
|
||||
@@ -380,4 +386,15 @@ public class LeaveApplication : ILeaveApplication
|
||||
{
|
||||
return _leaveRepository.LastLeaveMain(searchModel);
|
||||
}
|
||||
|
||||
#region Pooya
|
||||
public OperationResult ValidateNewLeaveWithExistingRollCalls(long workshopId, long employeeId, DateTime start, DateTime end)
|
||||
{
|
||||
OperationResult op = new();
|
||||
var rollCallsInDate = _rollCallRepository.GetEmployeeRollCallsHistoryAll(workshopId, employeeId, start, end);
|
||||
if (rollCallsInDate.Any())
|
||||
return op.Failed("در این بازه زمانی رکورد حضور غیاب برای این شخص وجود دارد");
|
||||
return op.Succcedded();
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
@@ -41,6 +41,10 @@ public class RollCallServiceApplication : IRollCallServiceApplication
|
||||
);
|
||||
|
||||
_rollCallServiceRepository.Create(create);
|
||||
//افزودن سرویس فیش حقوقی غیر رسمی وی آی پی از سمت ادمین
|
||||
if(command.HasCustomizeCheckoutService == "true")
|
||||
create.AddOrRemoveCoustomizeCheckoutServiceVip("true", create.EndService,create.StartService);
|
||||
|
||||
_rollCallServiceRepository.SaveChanges();
|
||||
|
||||
return opration.Succcedded();
|
||||
@@ -57,11 +61,23 @@ public class RollCallServiceApplication : IRollCallServiceApplication
|
||||
var vipService = _rollCallServiceRepository.Get(serviceId);
|
||||
if (vipService == null)
|
||||
return op.Failed("خطایی رخ داده است");
|
||||
vipService.StopVipService();
|
||||
bool hasCusromizecheckoutServiceBefor = vipService.HasCustomizeCheckoutService == "true";
|
||||
vipService.StopVipService(hasCusromizecheckoutServiceBefor);
|
||||
_rollCallServiceRepository.SaveChanges();
|
||||
return op.Succcedded();
|
||||
}
|
||||
|
||||
public OperationResult AddCustomizeCheckoutServiceVip(long serviceId)
|
||||
{
|
||||
var op = new OperationResult();
|
||||
var vipService = _rollCallServiceRepository.Get(serviceId);
|
||||
if (vipService == null)
|
||||
return op.Failed("خطایی رخ داده است");
|
||||
vipService.AddOrRemoveCoustomizeCheckoutServiceVip("true",vipService.EndService,DateTime.Now);
|
||||
_rollCallServiceRepository.SaveChanges();
|
||||
return op.Succcedded();
|
||||
}
|
||||
|
||||
public EditRollCallService GetDetails(long id)
|
||||
{
|
||||
return _rollCallServiceRepository.GetDetails(id);
|
||||
|
||||
@@ -155,9 +155,15 @@ public class WorkshopAppliction : IWorkshopApplication
|
||||
Amount = 1000,
|
||||
MaxPersonValid = 500,
|
||||
Duration = "12",
|
||||
};
|
||||
HasCustomizeCheckoutService = command.HasCustomizeCheckoutService
|
||||
|
||||
};
|
||||
_rollCallServiceApplication.Create(commandSave);
|
||||
|
||||
|
||||
|
||||
}
|
||||
//مشاغل مقطوع
|
||||
if (createPlanValidations)
|
||||
{
|
||||
command.CreatePlan.WorkshopId = workshop.id;
|
||||
@@ -248,16 +254,31 @@ public class WorkshopAppliction : IWorkshopApplication
|
||||
Amount = 1000,
|
||||
MaxPersonValid = 500,
|
||||
Duration = "12",
|
||||
HasCustomizeCheckoutService = command.HasCustomizeCheckoutService
|
||||
};
|
||||
if (searchService.Count > 0)
|
||||
{
|
||||
bool hasService = searchService.Any(x =>
|
||||
var hasService = searchService.FirstOrDefault(x =>
|
||||
x.IsActiveString == "true" && x.StartService <= DateTime.Now &&
|
||||
x.EndService >= DateTime.Now );
|
||||
if (!hasService)
|
||||
if (hasService == null)
|
||||
{
|
||||
_rollCallServiceApplication.Create(commandSave);
|
||||
}
|
||||
else
|
||||
{
|
||||
//اگر سرویس وی آی پی داشت اما سرویس فیش غیر رسمی نداشت و در کارگاه تیک یجاد فیش غیر رسمی زده شد بساز
|
||||
if (command.HasCustomizeCheckoutService == "true" &&
|
||||
hasService.HasCustomizeCheckoutService != "true")
|
||||
{
|
||||
_rollCallServiceApplication.AddCustomizeCheckoutServiceVip(hasService.Id);
|
||||
}else if (command.HasCustomizeCheckoutService == "false" &&
|
||||
hasService.HasCustomizeCheckoutService == "true")
|
||||
{
|
||||
_rollCallServiceApplication.StopVipService(hasService.Id);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
|
||||
@@ -22,7 +22,15 @@ public class RollCallServiceMapping : IEntityTypeConfiguration<RollCallService>
|
||||
builder.Property(x => x.CreationDate);
|
||||
builder.Property(x => x.Duration).HasMaxLength(2);
|
||||
|
||||
builder.HasOne(x => x.Workshop)
|
||||
#region CustomizeChekoutService
|
||||
|
||||
builder.Property(x => x.CustomizeCheckoutServiceStart).IsRequired(false);
|
||||
builder.Property(x => x.CustomizeCheckoutServiceEnd).IsRequired(false);
|
||||
builder.Property(x => x.HasCustomizeCheckoutService).HasMaxLength(5);
|
||||
builder.Property(x => x.CustomizeCheckoutAmount);
|
||||
#endregion
|
||||
|
||||
builder.HasOne(x => x.Workshop)
|
||||
.WithMany(x => x.RollCallServicesList)
|
||||
.HasForeignKey(x => x.WorkshopId);
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,61 @@
|
||||
using System;
|
||||
using Microsoft.EntityFrameworkCore.Migrations;
|
||||
|
||||
#nullable disable
|
||||
|
||||
namespace CompanyManagment.EFCore.Migrations
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public partial class add_customizeCheckoutVipServiceToRollCallService : Migration
|
||||
{
|
||||
/// <inheritdoc />
|
||||
protected override void Up(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.AddColumn<double>(
|
||||
name: "CustomizeCheckoutAmount",
|
||||
table: "RollCallServices",
|
||||
type: "float",
|
||||
nullable: false,
|
||||
defaultValue: 0.0);
|
||||
|
||||
migrationBuilder.AddColumn<DateTime>(
|
||||
name: "CustomizeCheckoutServiceEnd",
|
||||
table: "RollCallServices",
|
||||
type: "datetime2",
|
||||
nullable: true);
|
||||
|
||||
migrationBuilder.AddColumn<DateTime>(
|
||||
name: "CustomizeCheckoutServiceStart",
|
||||
table: "RollCallServices",
|
||||
type: "datetime2",
|
||||
nullable: true);
|
||||
|
||||
migrationBuilder.AddColumn<string>(
|
||||
name: "HasCustomizeCheckoutService",
|
||||
table: "RollCallServices",
|
||||
type: "nvarchar(5)",
|
||||
maxLength: 5,
|
||||
nullable: true);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void Down(MigrationBuilder migrationBuilder)
|
||||
{
|
||||
migrationBuilder.DropColumn(
|
||||
name: "CustomizeCheckoutAmount",
|
||||
table: "RollCallServices");
|
||||
|
||||
migrationBuilder.DropColumn(
|
||||
name: "CustomizeCheckoutServiceEnd",
|
||||
table: "RollCallServices");
|
||||
|
||||
migrationBuilder.DropColumn(
|
||||
name: "CustomizeCheckoutServiceStart",
|
||||
table: "RollCallServices");
|
||||
|
||||
migrationBuilder.DropColumn(
|
||||
name: "HasCustomizeCheckoutService",
|
||||
table: "RollCallServices");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3934,6 +3934,15 @@ namespace CompanyManagment.EFCore.Migrations
|
||||
b.Property<DateTime>("CreationDate")
|
||||
.HasColumnType("datetime2");
|
||||
|
||||
b.Property<double>("CustomizeCheckoutAmount")
|
||||
.HasColumnType("float");
|
||||
|
||||
b.Property<DateTime?>("CustomizeCheckoutServiceEnd")
|
||||
.HasColumnType("datetime2");
|
||||
|
||||
b.Property<DateTime?>("CustomizeCheckoutServiceStart")
|
||||
.HasColumnType("datetime2");
|
||||
|
||||
b.Property<string>("Duration")
|
||||
.HasMaxLength(2)
|
||||
.HasColumnType("nvarchar(2)");
|
||||
@@ -3941,6 +3950,10 @@ namespace CompanyManagment.EFCore.Migrations
|
||||
b.Property<DateTime>("EndService")
|
||||
.HasColumnType("datetime2");
|
||||
|
||||
b.Property<string>("HasCustomizeCheckoutService")
|
||||
.HasMaxLength(5)
|
||||
.HasColumnType("nvarchar(5)");
|
||||
|
||||
b.Property<string>("IsActiveString")
|
||||
.HasMaxLength(5)
|
||||
.HasColumnType("nvarchar(5)");
|
||||
|
||||
@@ -184,6 +184,20 @@ public class RollCallRepository : RepositoryBase<long, RollCall>, IRollCallRepos
|
||||
|
||||
}
|
||||
|
||||
public List<RollCallViewModel> GetEmployeeRollCallsHistoryAll(long workshopId, long employeeId, DateTime start, DateTime end)
|
||||
{
|
||||
return _context.RollCalls.Where(x => x.WorkshopId == workshopId && x.EmployeeId == employeeId && x.EndDate.Value >= start &&
|
||||
x.StartDate.Value <= end)
|
||||
.Select(x => new RollCallViewModel
|
||||
{
|
||||
EmployeeId = employeeId,
|
||||
WorkshopId = workshopId,
|
||||
StartDate = x.StartDate,
|
||||
EndDate = x.EndDate
|
||||
}).ToList();
|
||||
}
|
||||
|
||||
|
||||
|
||||
//جستجوی سوابق حضور غیاب بر اساس کارمند
|
||||
public EmployeeRollCallsByMonthViewModel GetEmployeeRollCallsHistory(long employeeId, long workshopId,
|
||||
@@ -265,19 +279,19 @@ public class RollCallRepository : RepositoryBase<long, RollCall>, IRollCallRepos
|
||||
x.IsAccepted &&
|
||||
x.EndLeave >= selectedMonthFirstDay && x.StartLeave < nextMonthFirstDay && x.WorkshopId == workshopId && x.EmployeeId == employeeId);
|
||||
|
||||
//var rollCalls = _context.RollCalls.Where(x =>
|
||||
// x.EmployeeId == employeeId && !leavesQuery.Any(y =>
|
||||
// y.StartLeave.Date <= x.StartDate.Value.Date && y.EndLeave.Date >= x.StartDate.Value.Date) &&
|
||||
// x.WorkshopId == workshopId && x.StartDate != null &&
|
||||
// x.StartDate >= selectedMonthFirstDay && x.StartDate < nextMonthFirstDay && x.RollCallModifyType != RollCallModifyType.Undefined);
|
||||
var rollCalls = _context.RollCalls.Where(x =>
|
||||
x.EmployeeId == employeeId && !leavesQuery.Any(y =>
|
||||
y.StartLeave.Date <= x.StartDate.Value.Date && y.EndLeave.Date >= x.StartDate.Value.Date) &&
|
||||
x.WorkshopId == workshopId && x.StartDate != null &&
|
||||
x.StartDate >= selectedMonthFirstDay && x.StartDate < nextMonthFirstDay && x.RollCallModifyType != RollCallModifyType.Undefined);
|
||||
|
||||
//changeByfarrokhi
|
||||
#region changeByfarrokhi
|
||||
var rollCalls = _context.RollCalls.Where(x =>
|
||||
x.EmployeeId == employeeId &&
|
||||
x.WorkshopId == workshopId && x.StartDate != null &&
|
||||
x.StartDate >= selectedMonthFirstDay && x.StartDate < nextMonthFirstDay && x.RollCallModifyType != RollCallModifyType.Undefined);
|
||||
#endregion
|
||||
//changeByfarrokhi
|
||||
//#region changeByfarrokhi
|
||||
//var rollCalls = _context.RollCalls.Where(x =>
|
||||
//x.EmployeeId == employeeId &&
|
||||
//x.WorkshopId == workshopId && x.StartDate != null &&
|
||||
//x.StartDate >= selectedMonthFirstDay && x.StartDate < nextMonthFirstDay && x.RollCallModifyType != RollCallModifyType.Undefined);
|
||||
//#endregion
|
||||
|
||||
var personnelCode =
|
||||
_context.PersonnelCodeSet.FirstOrDefault(x => x.EmployeeId == employeeId && x.WorkshopId == workshopId)?.PersonnelCode;
|
||||
@@ -330,6 +344,7 @@ public class RollCallRepository : RepositoryBase<long, RollCall>, IRollCallRepos
|
||||
DayOfWeekFa = x.DateGr.DayOfWeek.DayOfWeeKToPersian(),
|
||||
IsHoliday = _holidayItemApplication.IsHoliday(x.DateGr),
|
||||
IsAbsent = !x.RollCallTimesList.Any(),
|
||||
HasLeave = x.HasLeave,
|
||||
RollCallTimesList = x.RollCallTimesList,
|
||||
TotalWorkingHours = $"{(int)x.TotalWorkingHoursSpan.TotalHours}:{x.TotalWorkingHoursSpan.Minutes.ToString("00")}",
|
||||
}).ToList();
|
||||
|
||||
@@ -53,7 +53,7 @@ public class RollCallServiceRepository : RepositoryBase<long, RollCallService>,
|
||||
Amount = x.Amount,
|
||||
AmountFa = x.Amount.ToMoney(),
|
||||
Duration = x.Duration,
|
||||
|
||||
HasCustomizeCheckoutService = x.HasCustomizeCheckoutService,
|
||||
}).FirstOrDefault(x => x.WorkshopId == workshopId && x.IsActiveString == "true");
|
||||
}
|
||||
|
||||
@@ -74,6 +74,7 @@ public class RollCallServiceRepository : RepositoryBase<long, RollCallService>,
|
||||
Amount = x.Amount,
|
||||
AmountFa = x.Amount.ToMoney(),
|
||||
Duration = x.Duration,
|
||||
HasCustomizeCheckoutService = x.HasCustomizeCheckoutService,
|
||||
|
||||
}).Where(x => x.WorkshopId == workshopId).ToList();
|
||||
}
|
||||
@@ -95,6 +96,7 @@ public class RollCallServiceRepository : RepositoryBase<long, RollCallService>,
|
||||
Amount = x.Amount,
|
||||
AmountFa = x.Amount.ToMoney(),
|
||||
Duration = x.Duration,
|
||||
HasCustomizeCheckoutService = x.HasCustomizeCheckoutService,
|
||||
|
||||
}).Where(x => x.AccountId == accountId && x.IsActiveString == "true").ToList();
|
||||
}
|
||||
@@ -116,6 +118,7 @@ public class RollCallServiceRepository : RepositoryBase<long, RollCallService>,
|
||||
Amount = x.Amount,
|
||||
AmountFa = x.Amount.ToMoney(),
|
||||
Duration = x.Duration,
|
||||
HasCustomizeCheckoutService = x.HasCustomizeCheckoutService,
|
||||
|
||||
}).Where(x => x.AccountId == accountId).ToList();
|
||||
}
|
||||
|
||||
@@ -1,458 +1,458 @@
|
||||
@page
|
||||
@model ServiceHost.Areas.Admin.Pages.Company.Workshops.CreateWorkshopModel
|
||||
@{
|
||||
<link href="~/admintheme/css/workshop-create.css" rel="stylesheet" />
|
||||
<link href="~/admintheme/css/workshop-create.css" rel="stylesheet" />
|
||||
|
||||
<style>
|
||||
#titleHead {
|
||||
font-size: 20px;
|
||||
margin: 0 0 5px 0;
|
||||
}
|
||||
|
||||
input[type=checkbox], input[type=radio]
|
||||
{
|
||||
accent-color: #495d2b;
|
||||
}
|
||||
|
||||
#radio2, #radio3, #radio4 {
|
||||
position: relative;
|
||||
margin: 25px 0 0 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center
|
||||
}
|
||||
#radio2 h4, #radio3 h4,#radio4 h4{
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
position: absolute;
|
||||
top: -24px;
|
||||
background-color: white;
|
||||
padding: 1px 3px;
|
||||
}
|
||||
#radio2 label, #radio3 label, #radio4 label{
|
||||
font-size: 12px;
|
||||
font-weight: 300;
|
||||
margin: 0 0 0px 0;
|
||||
}
|
||||
|
||||
.textFloat {
|
||||
position:relative;
|
||||
margin: 25px 0 0 0;
|
||||
}
|
||||
.textFloat h5{
|
||||
font-size: 13px;
|
||||
font-weight: 400;
|
||||
position: absolute;
|
||||
top: -10px;
|
||||
background-color: white;
|
||||
padding: 0;
|
||||
margin: 0 20px;
|
||||
}
|
||||
|
||||
.box {
|
||||
height: 500px !important;
|
||||
}
|
||||
|
||||
#form1 {
|
||||
right: 0px;
|
||||
}
|
||||
|
||||
#form2 {
|
||||
left: 0px;
|
||||
}
|
||||
|
||||
#form3 {
|
||||
right: 0px;
|
||||
}
|
||||
|
||||
#form4 {
|
||||
right: 0px;
|
||||
}
|
||||
|
||||
#progress {
|
||||
width: 20%;
|
||||
}
|
||||
|
||||
.btn-default.btn-on-2.active {
|
||||
background-color: #00d554;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.btn-default.btn-off-2.active {
|
||||
background-color: #A7A7A7;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.classifidedField1 {
|
||||
margin: 7px;
|
||||
border-radius: 15px;
|
||||
border: 2px dotted #4b9082;
|
||||
margin-top: 14px;
|
||||
background-color: #88aba58a;
|
||||
height: 90px;
|
||||
}
|
||||
|
||||
.classifidedField1 input {
|
||||
background-color: #ecfcfc !important;
|
||||
}
|
||||
|
||||
.classifidedField1 label {
|
||||
color: #0a4c53;
|
||||
}
|
||||
|
||||
.classifidedField2 {
|
||||
margin: 7px;
|
||||
border: 1px solid #939393;
|
||||
border-radius: 15px;
|
||||
margin-top: 14px;
|
||||
height: 230px;
|
||||
}
|
||||
|
||||
.blured {
|
||||
filter: blur(2px);
|
||||
}
|
||||
|
||||
.cat {
|
||||
background: #8fceb8;
|
||||
padding: 7px 0px;
|
||||
color: aliceblue;
|
||||
width: 100.2%;
|
||||
border: 1px solid #939393;
|
||||
border-radius: 15px 15px 0px 0px;
|
||||
position: relative;
|
||||
right: -1px;
|
||||
left: -6px;
|
||||
top: -11px;
|
||||
}
|
||||
|
||||
.cat1 {
|
||||
padding: 7px 16px;
|
||||
border-left: 1px solid #939393;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.cat2 {
|
||||
padding: 7px 140px;
|
||||
border-left: 1px solid #939393;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.cat3 {
|
||||
padding: 7px 42px;
|
||||
border-left: 1px solid #939393;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.cat4 {
|
||||
padding: 7px 38px;
|
||||
border-left: 1px solid #939393;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.cat5 {
|
||||
padding: 7px 30px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.trContainer {
|
||||
display: inline-block;
|
||||
height: 190px;
|
||||
width: 100.4%;
|
||||
overflow-y: auto;
|
||||
position: relative;
|
||||
top: -8px;
|
||||
left: 0px;
|
||||
border-radius: 0px 0px 18px 18px;
|
||||
}
|
||||
|
||||
.groupTr {
|
||||
display: flex;
|
||||
position: relative;
|
||||
margin: 1px auto;
|
||||
top: -3px;
|
||||
padding: 5px 0px;
|
||||
/* min-height: 44px; */
|
||||
/* height: auto; */
|
||||
background-color: #b8dfdf;
|
||||
}
|
||||
|
||||
.groupTr input {
|
||||
background-color: #ecfcfc !important;
|
||||
}
|
||||
|
||||
.groupTr:nth-child(even) {
|
||||
background-color: #aad5cd !important;
|
||||
}
|
||||
|
||||
.groupTr:nth-child(even) select {
|
||||
background-color: #ecfcf8 !important;
|
||||
<style>
|
||||
#titleHead {
|
||||
font-size: 20px;
|
||||
margin: 0 0 5px 0;
|
||||
}
|
||||
|
||||
.groups {
|
||||
width: 9.5%;
|
||||
margin: 0px 5px;
|
||||
text-align: center;
|
||||
padding: 7px 9px;
|
||||
color: #3aa892;
|
||||
background: #cff3e75c;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.jobTitles {
|
||||
width: 366px;
|
||||
max-width: 366px;
|
||||
overflow-y: hidden;
|
||||
padding: 0px 3px;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
.jobSalary {
|
||||
width: 16.33%;
|
||||
padding: 0px 3px;
|
||||
direction: ltr;
|
||||
}
|
||||
|
||||
.baseSalary {
|
||||
width: 17%;
|
||||
padding: 0px 3px;
|
||||
direction: ltr;
|
||||
}
|
||||
|
||||
.mabna {
|
||||
width: 14.4%;
|
||||
padding: 0px 3px;
|
||||
direction: ltr;
|
||||
}
|
||||
|
||||
.trContainer.hide-scrollbar::-webkit-scrollbar {
|
||||
width: 0px;
|
||||
}
|
||||
|
||||
.trContainer::-webkit-scrollbar {
|
||||
width: 6px;
|
||||
}
|
||||
|
||||
.trContainer::-webkit-scrollbar-track {
|
||||
background-color: #3aa89200;
|
||||
}
|
||||
|
||||
.trContainer::-webkit-scrollbar-thumb {
|
||||
background-color: #3aa892;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
.trContainer::-webkit-scrollbar-thumb:hover {
|
||||
background-color: #1bba9a;
|
||||
margin-right: 5px !important
|
||||
}
|
||||
|
||||
.ul-search {
|
||||
list-style: none;
|
||||
display: revert;
|
||||
width: 106%;
|
||||
right: 2.6rem;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.ul-search li:last-of-type {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.custom-select {
|
||||
position: relative;
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
padding: 5px 0px;
|
||||
border-radius: 5px;
|
||||
background-color: #fff;
|
||||
text-align: left;
|
||||
cursor: pointer;
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
|
||||
.options {
|
||||
right: 0px !important;
|
||||
border: 1px solid #0000002e;
|
||||
border-top: 0;
|
||||
width: 100% !important;
|
||||
top: 13px;
|
||||
position: relative;
|
||||
z-index: 10;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
max-height: 156px;
|
||||
overflow-y: scroll;
|
||||
border-bottom-left-radius: 8px;
|
||||
border-bottom-right-radius: 13px;
|
||||
}
|
||||
|
||||
.options::-webkit-scrollbar {
|
||||
width: 6px;
|
||||
}
|
||||
|
||||
.options::-webkit-scrollbar-track {
|
||||
background-color: #8bd8ed42;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
.options::-webkit-scrollbar-thumb {
|
||||
background-color: #3159adb8;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
.options::-webkit-scrollbar-thumb:hover {
|
||||
background-color: #aaa;
|
||||
input[type=checkbox], input[type=radio]
|
||||
{
|
||||
accent-color: #495d2b;
|
||||
}
|
||||
|
||||
.options.visible {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.options li {
|
||||
padding: 12px 20px 27px 20px;
|
||||
box-shadow: 0 2px 2px 0 rgb(136 137 141), 0 -1px 3px 0 rgba(0, 0, 0, 0.12);
|
||||
border-top: none;
|
||||
background-color: #fff;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.options li:hover {
|
||||
background-color: #f5f5f5;
|
||||
#radio2, #radio3, #radio4 {
|
||||
position: relative;
|
||||
margin: 25px 0 0 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center
|
||||
}
|
||||
#radio2 h4, #radio3 h4,#radio4 h4{
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
position: absolute;
|
||||
top: -24px;
|
||||
background-color: white;
|
||||
padding: 1px 3px;
|
||||
}
|
||||
#radio2 label, #radio3 label, #radio4 label{
|
||||
font-size: 12px;
|
||||
font-weight: 300;
|
||||
margin: 0 0 0px 0;
|
||||
}
|
||||
|
||||
.input-text {
|
||||
padding-right: 5px;
|
||||
border: 0;
|
||||
direction: rtl;
|
||||
background: inherit;
|
||||
}
|
||||
.textFloat {
|
||||
position:relative;
|
||||
margin: 25px 0 0 0;
|
||||
}
|
||||
.textFloat h5{
|
||||
font-size: 13px;
|
||||
font-weight: 400;
|
||||
position: absolute;
|
||||
top: -10px;
|
||||
background-color: white;
|
||||
padding: 0;
|
||||
margin: 0 20px;
|
||||
}
|
||||
|
||||
.input-text {
|
||||
width: 2.4rem;
|
||||
}
|
||||
.box {
|
||||
height: 500px !important;
|
||||
}
|
||||
|
||||
.items-selected {
|
||||
float: right;
|
||||
border: 1px solid #a7a6a6;
|
||||
background: #e5e5e5;
|
||||
margin: 2px;
|
||||
border-radius: 7px;
|
||||
padding-right: 0px;
|
||||
padding-left: 2px;
|
||||
font-size: 13px;
|
||||
color: #343434;
|
||||
position: relative;
|
||||
bottom: 3px;
|
||||
}
|
||||
#form1 {
|
||||
right: 0px;
|
||||
}
|
||||
|
||||
.del-selected {
|
||||
margin: 0px 4px;
|
||||
color: #e11414;
|
||||
font-size: 12px;
|
||||
}
|
||||
#form2 {
|
||||
left: 0px;
|
||||
}
|
||||
|
||||
.select2-container .select2-search--inline {
|
||||
float: right !important;
|
||||
}
|
||||
#form3 {
|
||||
right: 0px;
|
||||
}
|
||||
|
||||
#form4 {
|
||||
right: 0px;
|
||||
}
|
||||
|
||||
#progress {
|
||||
width: 20%;
|
||||
}
|
||||
|
||||
.btn-default.btn-on-2.active {
|
||||
background-color: #00d554;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.btn-default.btn-off-2.active {
|
||||
background-color: #A7A7A7;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.classifidedField1 {
|
||||
margin: 7px;
|
||||
border-radius: 15px;
|
||||
border: 2px dotted #4b9082;
|
||||
margin-top: 14px;
|
||||
background-color: #88aba58a;
|
||||
height: 90px;
|
||||
}
|
||||
|
||||
.classifidedField1 input {
|
||||
background-color: #ecfcfc !important;
|
||||
}
|
||||
|
||||
.classifidedField1 label {
|
||||
color: #0a4c53;
|
||||
}
|
||||
|
||||
.classifidedField2 {
|
||||
margin: 7px;
|
||||
border: 1px solid #939393;
|
||||
border-radius: 15px;
|
||||
margin-top: 14px;
|
||||
height: 230px;
|
||||
}
|
||||
|
||||
.blured {
|
||||
filter: blur(2px);
|
||||
}
|
||||
|
||||
.cat {
|
||||
background: #8fceb8;
|
||||
padding: 7px 0px;
|
||||
color: aliceblue;
|
||||
width: 100.2%;
|
||||
border: 1px solid #939393;
|
||||
border-radius: 15px 15px 0px 0px;
|
||||
position: relative;
|
||||
right: -1px;
|
||||
left: -6px;
|
||||
top: -11px;
|
||||
}
|
||||
|
||||
.cat1 {
|
||||
padding: 7px 16px;
|
||||
border-left: 1px solid #939393;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.cat2 {
|
||||
padding: 7px 140px;
|
||||
border-left: 1px solid #939393;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.cat3 {
|
||||
padding: 7px 42px;
|
||||
border-left: 1px solid #939393;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.cat4 {
|
||||
padding: 7px 38px;
|
||||
border-left: 1px solid #939393;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.cat5 {
|
||||
padding: 7px 30px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.trContainer {
|
||||
display: inline-block;
|
||||
height: 190px;
|
||||
width: 100.4%;
|
||||
overflow-y: auto;
|
||||
position: relative;
|
||||
top: -8px;
|
||||
left: 0px;
|
||||
border-radius: 0px 0px 18px 18px;
|
||||
}
|
||||
|
||||
.groupTr {
|
||||
display: flex;
|
||||
position: relative;
|
||||
margin: 1px auto;
|
||||
top: -3px;
|
||||
padding: 5px 0px;
|
||||
/* min-height: 44px; */
|
||||
/* height: auto; */
|
||||
background-color: #b8dfdf;
|
||||
}
|
||||
|
||||
.groupTr input {
|
||||
background-color: #ecfcfc !important;
|
||||
}
|
||||
|
||||
.groupTr:nth-child(even) {
|
||||
background-color: #aad5cd !important;
|
||||
}
|
||||
|
||||
.groupTr:nth-child(even) select {
|
||||
background-color: #ecfcf8 !important;
|
||||
}
|
||||
|
||||
.groups {
|
||||
width: 9.5%;
|
||||
margin: 0px 5px;
|
||||
text-align: center;
|
||||
padding: 7px 9px;
|
||||
color: #3aa892;
|
||||
background: #cff3e75c;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.jobTitles {
|
||||
width: 366px;
|
||||
max-width: 366px;
|
||||
overflow-y: hidden;
|
||||
padding: 0px 3px;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
.jobSalary {
|
||||
width: 16.33%;
|
||||
padding: 0px 3px;
|
||||
direction: ltr;
|
||||
}
|
||||
|
||||
.baseSalary {
|
||||
width: 17%;
|
||||
padding: 0px 3px;
|
||||
direction: ltr;
|
||||
}
|
||||
|
||||
.mabna {
|
||||
width: 14.4%;
|
||||
padding: 0px 3px;
|
||||
direction: ltr;
|
||||
}
|
||||
|
||||
.trContainer.hide-scrollbar::-webkit-scrollbar {
|
||||
width: 0px;
|
||||
}
|
||||
|
||||
.trContainer::-webkit-scrollbar {
|
||||
width: 6px;
|
||||
}
|
||||
|
||||
.trContainer::-webkit-scrollbar-track {
|
||||
background-color: #3aa89200;
|
||||
}
|
||||
|
||||
.trContainer::-webkit-scrollbar-thumb {
|
||||
background-color: #3aa892;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
.trContainer::-webkit-scrollbar-thumb:hover {
|
||||
background-color: #1bba9a;
|
||||
margin-right: 5px !important
|
||||
}
|
||||
|
||||
.ul-search {
|
||||
list-style: none;
|
||||
display: revert;
|
||||
width: 106%;
|
||||
right: 2.6rem;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.ul-search li:last-of-type {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.custom-select {
|
||||
position: relative;
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
padding: 5px 0px;
|
||||
border-radius: 5px;
|
||||
background-color: #fff;
|
||||
text-align: left;
|
||||
cursor: pointer;
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
|
||||
.options {
|
||||
right: 0px !important;
|
||||
border: 1px solid #0000002e;
|
||||
border-top: 0;
|
||||
width: 100% !important;
|
||||
top: 13px;
|
||||
position: relative;
|
||||
z-index: 10;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
max-height: 156px;
|
||||
overflow-y: scroll;
|
||||
border-bottom-left-radius: 8px;
|
||||
border-bottom-right-radius: 13px;
|
||||
}
|
||||
|
||||
.options::-webkit-scrollbar {
|
||||
width: 6px;
|
||||
}
|
||||
|
||||
.options::-webkit-scrollbar-track {
|
||||
background-color: #8bd8ed42;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
.options::-webkit-scrollbar-thumb {
|
||||
background-color: #3159adb8;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
.options::-webkit-scrollbar-thumb:hover {
|
||||
background-color: #aaa;
|
||||
}
|
||||
|
||||
.options.visible {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.options li {
|
||||
padding: 12px 20px 27px 20px;
|
||||
box-shadow: 0 2px 2px 0 rgb(136 137 141), 0 -1px 3px 0 rgba(0, 0, 0, 0.12);
|
||||
border-top: none;
|
||||
background-color: #fff;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.options li:hover {
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
|
||||
.input-text {
|
||||
padding-right: 5px;
|
||||
border: 0;
|
||||
direction: rtl;
|
||||
background: inherit;
|
||||
}
|
||||
|
||||
.input-text {
|
||||
width: 2.4rem;
|
||||
}
|
||||
|
||||
.items-selected {
|
||||
float: right;
|
||||
border: 1px solid #a7a6a6;
|
||||
background: #e5e5e5;
|
||||
margin: 2px;
|
||||
border-radius: 7px;
|
||||
padding-right: 0px;
|
||||
padding-left: 2px;
|
||||
font-size: 13px;
|
||||
color: #343434;
|
||||
position: relative;
|
||||
bottom: 3px;
|
||||
}
|
||||
|
||||
.del-selected {
|
||||
margin: 0px 4px;
|
||||
color: #e11414;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.select2-container .select2-search--inline {
|
||||
float: right !important;
|
||||
}
|
||||
|
||||
|
||||
.name-right {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
max-width: 23rem;
|
||||
overflow: hidden;
|
||||
white-space: nowrap !important;
|
||||
direction: rtl;
|
||||
}
|
||||
.name-right {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
max-width: 23rem;
|
||||
overflow: hidden;
|
||||
white-space: nowrap !important;
|
||||
direction: rtl;
|
||||
}
|
||||
|
||||
.code-left {
|
||||
position: absolute;
|
||||
left: 10px;
|
||||
}
|
||||
.code-left {
|
||||
position: absolute;
|
||||
left: 10px;
|
||||
}
|
||||
|
||||
.job-item {
|
||||
position: relative;
|
||||
}
|
||||
.job-item {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.groupTr .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
|
||||
color: #f06f3d !important;
|
||||
}
|
||||
.groupTr .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
|
||||
color: #f06f3d !important;
|
||||
}
|
||||
|
||||
.groupTr .select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice {
|
||||
color: #458c73 !important;
|
||||
background-color: #d7f6e9 !important;
|
||||
border-color: #d7f6e9 !important;
|
||||
font-size: 13px !important;
|
||||
}
|
||||
.groupTr .select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice {
|
||||
color: #458c73 !important;
|
||||
background-color: #d7f6e9 !important;
|
||||
border-color: #d7f6e9 !important;
|
||||
font-size: 13px !important;
|
||||
}
|
||||
|
||||
#form5 {
|
||||
display: inline-block;
|
||||
}
|
||||
#form5 {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.disabled {
|
||||
filter: blur(1px);
|
||||
}
|
||||
</style>
|
||||
.disabled {
|
||||
filter: blur(1px);
|
||||
}
|
||||
</style>
|
||||
@*select2 css start*@
|
||||
<style>
|
||||
<style>
|
||||
|
||||
.opt {
|
||||
background-color: #f5f5f5;
|
||||
border-radius: 10px;
|
||||
text-align: right;
|
||||
padding: 2px 5px;
|
||||
text-overflow: ellipsis;
|
||||
overflow-x: hidden;
|
||||
width: 100%;
|
||||
}
|
||||
.opt {
|
||||
background-color: #f5f5f5;
|
||||
border-radius: 10px;
|
||||
text-align: right;
|
||||
padding: 2px 5px;
|
||||
text-overflow: ellipsis;
|
||||
overflow-x: hidden;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.opt:hover {
|
||||
background-color: #d3f3f5 !important;
|
||||
}
|
||||
.opt:hover {
|
||||
background-color: #d3f3f5 !important;
|
||||
}
|
||||
|
||||
.selectDiv {
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
border-radius: 10px;
|
||||
min-height: 20px;
|
||||
max-height: 190px;
|
||||
overflow: hidden scroll;
|
||||
width: 100%;
|
||||
background-color: rgb(255 255 255);
|
||||
display: block;
|
||||
box-shadow: 0px -1px 12px 0px rgba(0,0,0,.16), 2px 1px 10px 0 rgba(0,0,0,.12);
|
||||
}
|
||||
.selectDiv {
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
border-radius: 10px;
|
||||
min-height: 20px;
|
||||
max-height: 190px;
|
||||
overflow: hidden scroll;
|
||||
width: 100%;
|
||||
background-color: rgb(255 255 255);
|
||||
display: block;
|
||||
box-shadow: 0px -1px 12px 0px rgba(0,0,0,.16), 2px 1px 10px 0 rgba(0,0,0,.12);
|
||||
}
|
||||
|
||||
.selectedOption {
|
||||
color: #04556a !important;
|
||||
background-color: #e0f8ff !important;
|
||||
}
|
||||
.selectedOption {
|
||||
color: #04556a !important;
|
||||
background-color: #e0f8ff !important;
|
||||
}
|
||||
|
||||
.keyboardSelected {
|
||||
color: #04556a !important;
|
||||
background-color: #e0f8ff !important;
|
||||
}
|
||||
.keyboardSelected {
|
||||
color: #04556a !important;
|
||||
background-color: #e0f8ff !important;
|
||||
}
|
||||
|
||||
.handle-title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.handle-title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.handle-title a {
|
||||
background-color: #1e293b;
|
||||
color: #ffffff;
|
||||
border-radius: 7px;
|
||||
padding: 3px 5px;
|
||||
font-size:12px;
|
||||
}
|
||||
.handle-title a {
|
||||
background-color: #1e293b;
|
||||
color: #ffffff;
|
||||
border-radius: 7px;
|
||||
padding: 3px 5px;
|
||||
font-size:12px;
|
||||
}
|
||||
|
||||
.handle-title a:hover {
|
||||
color: #ffffff !important;
|
||||
}
|
||||
</style>
|
||||
.handle-title a:hover {
|
||||
color: #ffffff !important;
|
||||
}
|
||||
</style>
|
||||
}
|
||||
|
||||
<div class="container">
|
||||
@@ -937,10 +937,24 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12">
|
||||
<div class="" style="display: flex; align-items: center;">
|
||||
<input type="checkbox" name="Command.HasRollCallFreeVip" class="form-control" style="width: 15px;margin: 0 0 0 10px;"/>
|
||||
<label asp-for="Command.HasRollCallFreeVip" style="margin: 0;">فعال سازی سرویس حضور و غیاب ویژه رایگان</label>
|
||||
</div>
|
||||
<div class="" style="display: flex; align-items: center;">
|
||||
<input id="hasRollCall" type="checkbox" name="Command.HasRollCallFreeVip" class="form-control" style="width: 15px;margin: 0 0 0 10px;"/>
|
||||
<label asp-for="Command.HasRollCallFreeVip" style="margin: 0;">فعال سازی سرویس حضور و غیاب ویژه رایگان</label>
|
||||
</div>
|
||||
<div class="" style="display: flex; align-items: center;">
|
||||
<input id="hasChekoutService" disabled="disabled" type="checkbox" name="Command.HasCustomizeCheckoutService" class="form-control" style="width: 15px;margin: 0 0 0 10px;" />
|
||||
<label asp-for="Command.HasCustomizeCheckoutService" style="margin: 0;">فعال سازی سرویس فیش غیر رسمی رایگان</label>
|
||||
</div>
|
||||
<script>
|
||||
$("#hasRollCall").on("click", function () {
|
||||
if ($(this).is(":checked")) {
|
||||
$("#hasChekoutService").removeAttr("disabled");
|
||||
}else{
|
||||
$("#hasChekoutService").attr("disabled", "disabled");
|
||||
}
|
||||
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" id="form5" style="display: none">
|
||||
|
||||
@@ -180,6 +180,8 @@ namespace ServiceHost.Areas.Admin.Pages.Company.Workshops
|
||||
if (command.HasRollCallFreeVip == "on")
|
||||
{
|
||||
command.HasRollCallFreeVip = "true";
|
||||
if (command.HasCustomizeCheckoutService == "on")
|
||||
command.HasCustomizeCheckoutService = "true";
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -964,9 +964,34 @@
|
||||
</div>
|
||||
<div class="col-xs-12">
|
||||
<div class="" style="display: flex;align-items: center;">
|
||||
<input type="checkbox" name="Command.HasRollCallFreeVip" class="form-control" style="width: 15px;margin: 0 0 0 10px;" @(Model.Command.HasRollCallFreeVip == "true" ? "checked" : "") />
|
||||
<input id="hasRollCall" type="checkbox" name="Command.HasRollCallFreeVip" class="form-control" style="width: 15px;margin: 0 0 0 10px;" @(Model.Command.HasRollCallFreeVip == "true" ? "checked" : "") />
|
||||
<label asp-for="Command.HasRollCallFreeVip" style="margin: 0;">فعال سازی سرویس حضور و غیاب ویژه رایگان</label>
|
||||
</div>
|
||||
<div class="" style="display: flex; align-items: center;">
|
||||
@{
|
||||
if (Model.Command.HasRollCallFreeVip == "true")
|
||||
{
|
||||
<input id="hasChekoutService" type="checkbox" name="Command.HasCustomizeCheckoutService" class="form-control" style="width: 15px;margin: 0 0 0 10px;" @(Model.RollCallService?.HasCustomizeCheckoutService == "true" ? "checked" : "") />
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
<input id="hasChekoutService" type="checkbox" disabled="disabled" name="Command.HasCustomizeCheckoutService" class="form-control" style="width: 15px;margin: 0 0 0 10px;" />
|
||||
|
||||
}
|
||||
}
|
||||
<label asp-for="Command.HasCustomizeCheckoutService" style="margin: 0;">فعال سازی سرویس فیش غیر رسمی رایگان</label>
|
||||
</div>
|
||||
<script>
|
||||
$("#hasRollCall").on("click", function () {
|
||||
if ($(this).is(":checked")) {
|
||||
$("#hasChekoutService").removeAttr("disabled");
|
||||
}else{
|
||||
$("#hasChekoutService").attr("disabled", "disabled");
|
||||
}
|
||||
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" id="form5" style="display: none">
|
||||
|
||||
@@ -203,6 +203,15 @@ namespace ServiceHost.Areas.Admin.Pages.Company.Workshops
|
||||
if (command.HasRollCallFreeVip == "on")
|
||||
{
|
||||
command.HasRollCallFreeVip = "true";
|
||||
if (command.HasCustomizeCheckoutService == "on")
|
||||
{
|
||||
command.HasCustomizeCheckoutService = "true";
|
||||
}
|
||||
else
|
||||
{
|
||||
command.HasCustomizeCheckoutService = "false";
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -28,6 +28,16 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex align-items-center gap-1">
|
||||
<button type="button" class="btn-ticket-task position-relative d-flex align-items-center justify-content-center w-100 @(Model.HasTask || Model.Status == "بسته شده" ? "disable" : "")" onclick=@(!Model.HasTask ? $"CreateTaskTicket({Model.Id})" : "") style="color: #283868;border-radius: 60px;width: 48px !important;display: flex !important;height: 48px;margin: 0;">
|
||||
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="SVGRepo_bgCarrier" stroke-width="0"></g>
|
||||
<g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g>
|
||||
<g id="SVGRepo_iconCarrier">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.46447 3.46447C2 4.92893 2 7.28595 2 12C2 16.714 2 19.0711 3.46447 20.5355C4.92893 22 7.28595 22 12 22C16.714 22 19.0711 22 20.5355 20.5355C22 19.0711 22 16.714 22 12C22 7.28595 22 4.92893 20.5355 3.46447C19.0711 2 16.714 2 12 2C7.28595 2 4.92893 2 3.46447 3.46447ZM17 14.75C17.4142 14.75 17.75 15.0858 17.75 15.5C17.75 15.9142 17.4142 16.25 17 16.25H12.0715L13.4801 17.4238C13.7983 17.689 13.8413 18.1619 13.5762 18.4801C13.311 18.7983 12.8381 18.8413 12.5199 18.5762L9.51986 16.0762C9.34887 15.9337 9.25 15.7226 9.25 15.5C9.25 15.2774 9.34887 15.0663 9.51986 14.9238L12.5199 12.4238C12.8381 12.1587 13.311 12.2017 13.5762 12.5199C13.8413 12.8381 13.7983 13.311 13.4801 13.5762L12.0715 14.75H17ZM17.75 8.5C17.75 8.08579 17.4142 7.75 17 7.75H12.0715L13.4801 6.57617C13.7983 6.31099 13.8413 5.83807 13.5762 5.51986C13.311 5.20165 12.8381 5.15866 12.5199 5.42383L9.51986 7.92383C9.34887 8.06633 9.25 8.27741 9.25 8.5C9.25 8.72258 9.34887 8.93367 9.51986 9.07617L12.5199 11.5762C12.8381 11.8413 13.311 11.7983 13.5762 11.4801C13.8413 11.1619 13.7983 10.689 13.4801 10.4238L12.0715 9.25H17C17.4142 9.25 17.75 8.91421 17.75 8.5ZM7.75 6C7.75 5.58579 7.41421 5.25 7 5.25C6.58579 5.25 6.25 5.58579 6.25 6V18C6.25 18.4142 6.58579 18.75 7 18.75C7.41421 18.75 7.75 18.4142 7.75 18V6Z" fill="#5B5B5B"></path>
|
||||
</g>
|
||||
</svg>
|
||||
<span class="mx-1 d-md-none d-flex">ارجاع</span>
|
||||
</button>
|
||||
<div class="img-bor2">
|
||||
<svg width="16" height="15" viewBox="0 0 16 15" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M2.19671 0.621211L2.28367 0.534255C2.67419 0.143731 3.30736 0.14373 3.69788 0.534254L5.86261 2.69899C6.25314 3.08951 6.25314 3.72268 5.86261 4.1132L4.33331 5.64251C4.06589 5.90993 3.99959 6.31847 4.16872 6.65673C5.14645 8.61219 6.73205 10.1978 8.6875 11.1755C9.02577 11.3446 9.43431 11.2783 9.70173 11.0109L11.231 9.48162C11.6216 9.0911 12.2547 9.0911 12.6452 9.48162L14.81 11.6464C15.2005 12.0369 15.2005 12.67 14.81 13.0606L14.723 13.1475C12.6117 15.2589 9.26911 15.4964 6.88039 13.7049L6.51408 13.4302C4.77055 12.1225 3.22173 10.5737 1.91408 8.83016L1.63935 8.46385C-0.152188 6.07513 0.0853593 2.73256 2.19671 0.621211Z" fill="#5B5B5B"/>
|
||||
@@ -38,9 +48,9 @@
|
||||
{
|
||||
<button type="button" onclick="handleCloseTicket(@Model.Id)" class="img-bor3">
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M2.22836 5.85195C2 6.40326 2 7.10218 2 8.5V9.25C2 9.66421 2.33579 10 2.75 10H3C4.10457 10 5 10.8954 5 12C5 13.1046 4.10457 14 3 14H2.75C2.33579 14 2 14.3358 2 14.75V15.5C2 16.8978 2 17.5967 2.22836 18.1481C2.53284 18.8831 3.11687 19.4672 3.85195 19.7716C4.40326 20 5.10218 20 6.5 20H17.5C18.8978 20 19.5967 20 20.1481 19.7716C20.8831 19.4672 21.4672 18.8831 21.7716 18.1481C22 17.5967 22 16.8978 22 15.5V14.75C22 14.3358 21.6642 14 21.25 14H21C19.8954 14 19 13.1046 19 12C19 10.8954 19.8954 10 21 10H21.25C21.6642 10 22 9.66421 22 9.25V8.5C22 7.10218 22 6.40326 21.7716 5.85195C21.4672 5.11687 20.8831 4.53284 20.1481 4.22836C19.5967 4 18.8978 4 17.5 4H6.5C5.10218 4 4.40326 4 3.85195 4.22836C3.11687 4.53284 2.53284 5.11687 2.22836 5.85195ZM12 16.5C14.4853 16.5 16.5 14.4853 16.5 12C16.5 9.51472 14.4853 7.5 12 7.5C9.51472 7.5 7.5 9.51472 7.5 12C7.5 14.4853 9.51472 16.5 12 16.5ZM11.2929 12L9.64645 13.6464C9.45118 13.8417 9.45118 14.1583 9.64645 14.3536C9.84171 14.5488 10.1583 14.5488 10.3536 14.3536L12 12.7071L13.6464 14.3536C13.8417 14.5488 14.1583 14.5488 14.3536 14.3536C14.5488 14.1583 14.5488 13.8417 14.3536 13.6464L12.7071 12L14.3536 10.3536C14.5488 10.1583 14.5488 9.84171 14.3536 9.64645C14.1583 9.45118 13.8417 9.45118 13.6464 9.64645L12 11.2929L10.3536 9.64645C10.1583 9.45118 9.84171 9.45118 9.64645 9.64645C9.45118 9.84171 9.45118 10.1583 9.64645 10.3536L11.2929 12Z" fill="#5B5B5B" />
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M2.22836 5.85195C2 6.40326 2 7.10218 2 8.5V9.25C2 9.66421 2.33579 10 2.75 10H3C4.10457 10 5 10.8954 5 12C5 13.1046 4.10457 14 3 14H2.75C2.33579 14 2 14.3358 2 14.75V15.5C2 16.8978 2 17.5967 2.22836 18.1481C2.53284 18.8831 3.11687 19.4672 3.85195 19.7716C4.40326 20 5.10218 20 6.5 20H17.5C18.8978 20 19.5967 20 20.1481 19.7716C20.8831 19.4672 21.4672 18.8831 21.7716 18.1481C22 17.5967 22 16.8978 22 15.5V14.75C22 14.3358 21.6642 14 21.25 14H21C19.8954 14 19 13.1046 19 12C19 10.8954 19.8954 10 21 10H21.25C21.6642 10 22 9.66421 22 9.25V8.5C22 7.10218 22 6.40326 21.7716 5.85195C21.4672 5.11687 20.8831 4.53284 20.1481 4.22836C19.5967 4 18.8978 4 17.5 4H6.5C5.10218 4 4.40326 4 3.85195 4.22836C3.11687 4.53284 2.53284 5.11687 2.22836 5.85195ZM12 16.5C14.4853 16.5 16.5 14.4853 16.5 12C16.5 9.51472 14.4853 7.5 12 7.5C9.51472 7.5 7.5 9.51472 7.5 12C7.5 14.4853 9.51472 16.5 12 16.5ZM11.2929 12L9.64645 13.6464C9.45118 13.8417 9.45118 14.1583 9.64645 14.3536C9.84171 14.5488 10.1583 14.5488 10.3536 14.3536L12 12.7071L13.6464 14.3536C13.8417 14.5488 14.1583 14.5488 14.3536 14.3536C14.5488 14.1583 14.5488 13.8417 14.3536 13.6464L12.7071 12L14.3536 10.3536C14.5488 10.1583 14.5488 9.84171 14.3536 9.64645C14.1583 9.45118 13.8417 9.45118 13.6464 9.64645L12 11.2929L10.3536 9.64645C10.1583 9.45118 9.84171 9.45118 9.64645 9.64645C9.45118 9.84171 9.45118 10.1583 9.64645 10.3536L11.2929 12Z" fill="#5B5B5B"/>
|
||||
</svg>
|
||||
</button>
|
||||
</button>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -43,8 +43,8 @@
|
||||
<!-- Satrt Card Items -->
|
||||
<div class="container-fluid">
|
||||
<div class="row p-2">
|
||||
<div class="d-grid card-area-workshop gap-2 p-0">
|
||||
<div class="gwb-card">
|
||||
<div class="d-grid card-area-checkout-customize gap-2 p-0">
|
||||
<div class="gwb-card @(Model.HasCustomizeCheckoutService != "true" ? "disable" : "")">
|
||||
<a href="#showmodal=@Url.Page("./Index", "ModalSettingRollCall")" class="click loadingButton">
|
||||
<div class="d-flex align-items-center justify-content-start p-1">
|
||||
<img src="~/AssetsClient/images/icons/customize-setting.png" alt="" class="img-fluid mx-1" width="50px" />
|
||||
@@ -58,8 +58,8 @@
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="gwb-card">
|
||||
<a asp-page="/Company/CustomizeCheckout/Grouping" class="click loadingButton" id="checkoutListBtnIntro">
|
||||
<div class="gwb-card @(Model.HasCustomizeCheckoutService != "true" ? "disable" : "")">
|
||||
<a asp-page="/Company/CustomizeCheckout/Grouping" class="click loadingButton">
|
||||
<div class="d-flex align-items-center justify-content-start p-1">
|
||||
<img src="~/AssetsClient/images/icons/group-setting.png" alt="" class="img-fluid mx-1" width="50px" />
|
||||
<div class="text-start ms-1">
|
||||
@@ -72,8 +72,38 @@
|
||||
</a>
|
||||
</div>
|
||||
|
||||
|
||||
@* <div class="gwb-card @(Model.HasCustomizeCheckoutService != "true" ? "disable" : "")">
|
||||
<a asp-page="/Company/CustomizeCheckout/CheckoutTemporary" class="click loadingButton">
|
||||
<div class="d-flex align-items-center justify-content-start p-1">
|
||||
<img src="~/AssetsClient/images/icons/recycled-paper.png" alt="" class="img-fluid mx-1" width="50px" />
|
||||
<div class="text-start ms-1">
|
||||
<div class="card-title">لیست فیش حقوقی موقت</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="spinner-loading loading" style="display: none;">
|
||||
<span class="spinner-border spinner-border-sm loading text-white" role="status" aria-hidden="true"></span>
|
||||
</div>
|
||||
</a>
|
||||
</div> *@
|
||||
|
||||
|
||||
<div class="gwb-card disable">
|
||||
<a asp-page="/Company/CustomizeCheckout/CheckoutUnofficial" class="click loadingButton" id="insuranceListBtnIntro">
|
||||
<a asp-page="/Company/CustomizeCheckout/CheckoutTemporary" class="click loadingButton">
|
||||
<div class="d-flex align-items-center justify-content-start p-1">
|
||||
<img src="~/AssetsClient/images/icons/recycled-paper.png" alt="" class="img-fluid mx-1" width="50px" />
|
||||
<div class="text-start ms-1">
|
||||
<div class="card-title">لیست فیش حقوقی موقت</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="spinner-loading loading" style="display: none;">
|
||||
<span class="spinner-border spinner-border-sm loading text-white" role="status" aria-hidden="true"></span>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@* <div class="gwb-card @(Model.HasCustomizeCheckoutService != "true" ? "disable" : "")">
|
||||
<a asp-page="/Company/CustomizeCheckout/CheckoutUnofficial" class="click loadingButton">
|
||||
<div class="d-flex align-items-center justify-content-start p-1">
|
||||
<img src="~/AssetsClient/images/icons/customize-checkout.png" alt="" class="img-fluid mx-1" width="50px" />
|
||||
<div class="text-start ms-1">
|
||||
@@ -84,14 +114,14 @@
|
||||
<span class="spinner-border spinner-border-sm loading text-white" role="status" aria-hidden="true"></span>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</div> *@
|
||||
|
||||
<div class="gwb-card disable">
|
||||
<a asp-page="/Company/Employees/Leave" class="click loadingButton">
|
||||
<a asp-page="/Company/CustomizeCheckout/CheckoutUnofficial" class="click loadingButton">
|
||||
<div class="d-flex align-items-center justify-content-start p-1">
|
||||
<img src="~/AssetsClient/images/icons/recycled-paper.png" alt="" class="img-fluid mx-1" width="50px" />
|
||||
<img src="~/AssetsClient/images/icons/customize-checkout.png" alt="" class="img-fluid mx-1" width="50px" />
|
||||
<div class="text-start ms-1">
|
||||
<div class="card-title">لیست فیش حقوقی موقت</div>
|
||||
<div class="card-title">لیست فیش حقوقی نهایی</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="spinner-loading loading" style="display: none;">
|
||||
@@ -123,5 +153,12 @@
|
||||
<script src="~/assetsclient/js/site.js?ver=@clientVersion"></script>
|
||||
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
$('.loadingButton').on('click', function () {
|
||||
var button = $(this);
|
||||
var loadingDiv = button.find('.loading');
|
||||
loadingDiv.show();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
using _0_Framework.Application;
|
||||
using CompanyManagment.App.Contracts.CustomizeWorkshopSettings;
|
||||
using CompanyManagment.App.Contracts.Error;
|
||||
using CompanyManagment.App.Contracts.RollCallService;
|
||||
using CompanyManagment.App.Contracts.Workshop;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
@@ -14,25 +15,34 @@ namespace ServiceHost.Areas.Client.Pages.Company.CustomizeCheckout
|
||||
{
|
||||
private IPasswordHasher _passwordHasher;
|
||||
private IWorkshopApplication _workshopApplication;
|
||||
public string WorkshopFullName;
|
||||
private readonly ICustomizeWorkshopSettingsApplication _customizeWorkshopSettingsApplication;
|
||||
private readonly IRollCallServiceApplication _rollCallServiceApplication;
|
||||
private readonly IHttpContextAccessor _contextAccessor;
|
||||
private readonly long _workshopId;
|
||||
|
||||
public IndexModel(IPasswordHasher passwordHasher, IWorkshopApplication workshopApplication, ICustomizeWorkshopSettingsApplication customizeWorkshopSettingsApplication)
|
||||
public IndexModel(IPasswordHasher passwordHasher, IWorkshopApplication workshopApplication, ICustomizeWorkshopSettingsApplication customizeWorkshopSettingsApplication, IRollCallServiceApplication rollCallServiceApplication, IHttpContextAccessor contextAccessor)
|
||||
{
|
||||
_passwordHasher = passwordHasher;
|
||||
_workshopApplication = workshopApplication;
|
||||
_customizeWorkshopSettingsApplication = customizeWorkshopSettingsApplication;
|
||||
}
|
||||
_rollCallServiceApplication = rollCallServiceApplication;
|
||||
_contextAccessor = contextAccessor;
|
||||
|
||||
public IActionResult OnGet()
|
||||
var workshopHash = _contextAccessor.HttpContext?.User.FindFirstValue("WorkshopSlug");
|
||||
_workshopId = _passwordHasher.SlugDecrypt(workshopHash);
|
||||
|
||||
if (_workshopId < 1)
|
||||
throw new InvalidDataException("اختلال در کارگاه");
|
||||
}
|
||||
|
||||
public string HasCustomizeCheckoutService;
|
||||
public string WorkshopFullName;
|
||||
|
||||
public IActionResult OnGet()
|
||||
{
|
||||
var workshopHash = User.FindFirstValue("WorkshopSlug");
|
||||
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
|
||||
HasCustomizeCheckoutService = _rollCallServiceApplication.GetActiveServiceByWorkshopId(_workshopId).HasCustomizeCheckoutService;
|
||||
|
||||
if (workshopId <= 0)
|
||||
return BadRequest();
|
||||
|
||||
var workshopInfo = _workshopApplication.GetWorkshopInfo(workshopId);
|
||||
var workshopInfo = _workshopApplication.GetWorkshopInfo(_workshopId);
|
||||
WorkshopFullName = workshopInfo.WorkshopFullName;
|
||||
|
||||
return Page();
|
||||
@@ -40,12 +50,7 @@ namespace ServiceHost.Areas.Client.Pages.Company.CustomizeCheckout
|
||||
|
||||
public IActionResult OnGetModalSettingRollCall()
|
||||
{
|
||||
var workshopHash = User.FindFirstValue("WorkshopSlug");
|
||||
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
|
||||
if (workshopId < 1)
|
||||
return BadRequest();
|
||||
|
||||
var command = _customizeWorkshopSettingsApplication.GetWorkshopSettingsDetails(workshopId);
|
||||
var command = _customizeWorkshopSettingsApplication.GetWorkshopSettingsDetails(_workshopId);
|
||||
|
||||
if (command.Id == 0)
|
||||
{
|
||||
|
||||
@@ -111,8 +111,23 @@
|
||||
<div class="container-fluid">
|
||||
<div class="row p-2">
|
||||
<div class="d-grid card-area-employees-section gap-2 p-0">
|
||||
<div class="gwb-card" >
|
||||
<a asp-page="/Company/Employees/Leave" class="click loadingButton">
|
||||
<div class="d-flex align-items-center justify-content-start p-1">
|
||||
<img src="~/AssetsClient/images/icons/leave.png" alt="leave" class="img-fluid mx-1" width="50px" />
|
||||
<div class="text-start ms-1">
|
||||
<div class="card-title">لیست کل مرخصی</div>
|
||||
<p class="m-0 card-description d-none d-md-block">گزارش لیست مرخصی کل پرسنل</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="spinner-loading loading" style="display: none;">
|
||||
<span class="spinner-border spinner-border-sm loading text-white" role="status" aria-hidden="true"></span>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="gwb-card">
|
||||
<a onclick="location.href='#showmodal=@Url.Page("./Index", "LeaveCreate")';" class="click loadingButton">
|
||||
<a onclick="location.href = '#showmodal=@Url.Page("./Index", "LeaveCreate")';" class="click loadingButton">
|
||||
<div class="d-flex align-items-center justify-content-start p-1">
|
||||
<img src="~/AssetsClient/images/icons/leave.png" alt="" class="img-fluid mx-1" width="50px"/>
|
||||
<div class="text-start ms-1">
|
||||
@@ -125,26 +140,10 @@
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="gwb-card">
|
||||
@* onclick="location.href='#showmodal=@Url.Page("./Index", "ContractCheckoutStatus", new { employeeId = @item.EmployeeId, workshopId = @item.WorkshopId })';" *@
|
||||
<a onclick="location.href='#showmodal=@Url.Page("./Index", "ContractCheckoutStatus")';" class="click loadingButton">
|
||||
<div class="d-flex align-items-center justify-content-start p-1">
|
||||
<img src="~/AssetsClient/images/icons/statistics.png" alt="" class="img-fluid mx-1" width="50px"/>
|
||||
<div class="text-start ms-1">
|
||||
<div class="card-title">گزارش وضعیت</div>
|
||||
<p class="m-0 card-description d-none d-md-block">گزارش وضعیت قرارداد و تصفیه حساب</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="spinner-loading loading" style="display: none;">
|
||||
<span class="spinner-border spinner-border-sm loading text-white" role="status" aria-hidden="true"></span>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="gwb-card disable">
|
||||
<a asp-page="/Company/EmployeesDocuments/Index" class="click loadingButton">
|
||||
<div class="d-flex align-items-center justify-content-start p-1">
|
||||
<img src="~/AssetsClient/images/icons/money.png" alt="" class="img-fluid mx-1" width="50px" />
|
||||
<img src="~/AssetsClient/images/icons/money.png" alt="" class="img-fluid mx-1" width="50px"/>
|
||||
<div class="text-start ms-1">
|
||||
<div class="card-title">عملیات مدارک پرسنل</div>
|
||||
</div>
|
||||
@@ -158,7 +157,7 @@
|
||||
<div class="gwb-card disable">
|
||||
<a asp-page="/Company/PaymentToEmployee/Index" class="click loadingButton">
|
||||
<div class="d-flex align-items-center justify-content-start p-1">
|
||||
<img src="~/AssetsClient/images/icons/money.png" alt="" class="img-fluid mx-1" width="50px" />
|
||||
<img src="~/AssetsClient/images/icons/money.png" alt="" class="img-fluid mx-1" width="50px"/>
|
||||
<div class="text-start ms-1">
|
||||
<div class="card-title">عملیات پرداخت حقوق پرسنل</div>
|
||||
</div>
|
||||
@@ -181,7 +180,7 @@
|
||||
|
||||
<div class="d-grid card-area-employees-section gap-2 p-0">
|
||||
|
||||
<div class="gwb-card">
|
||||
<div class="gwb-card @(Model.HasCustomizeCheckoutService != "true" ? "disable" : "")">
|
||||
<a asp-page="/Company/Loan/Index" class="click loadingButton">
|
||||
<div class="d-flex align-items-center justify-content-start p-1">
|
||||
<img src="~/AssetsClient/images/icons/loan.png" alt="" class="img-fluid mx-1" width="50px" />
|
||||
@@ -194,7 +193,7 @@
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="gwb-card">
|
||||
<div class="gwb-card @(Model.HasCustomizeCheckoutService != "true" ? "disable" : "")">
|
||||
<a asp-page="/Company/Reward/Index" class="click loadingButton">
|
||||
<div class="d-flex align-items-center justify-content-start p-1">
|
||||
<img src="~/AssetsClient/images/icons/reward.png" alt="" class="img-fluid mx-1" width="50px" />
|
||||
@@ -207,7 +206,7 @@
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="gwb-card">
|
||||
<div class="gwb-card @(Model.HasCustomizeCheckoutService != "true" ? "disable" : "")">
|
||||
<a asp-page="/Company/SalaryAid/Index" class="click loadingButton">
|
||||
<div class="d-flex align-items-center justify-content-start p-1">
|
||||
<img src="~/AssetsClient/images/icons/salary.png" alt="" class="img-fluid mx-1" width="50px" />
|
||||
@@ -220,7 +219,7 @@
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="gwb-card">
|
||||
<div class="gwb-card @(Model.HasCustomizeCheckoutService != "true" ? "disable" : "")">
|
||||
<a asp-page="/Company/Fine/Index" class="click loadingButton">
|
||||
<div class="d-flex align-items-center justify-content-start p-1">
|
||||
<img src="~/AssetsClient/images/icons/fine.png" alt="" class="img-fluid mx-1" width="50px"/>
|
||||
|
||||
@@ -17,6 +17,7 @@ using CompanyManagment.App.Contracts.Leave;
|
||||
using CompanyManagment.App.Contracts.LeftWork;
|
||||
using CompanyManagment.App.Contracts.LeftWorkInsurance;
|
||||
using CompanyManagment.App.Contracts.PersonnleCode;
|
||||
using CompanyManagment.App.Contracts.RollCallService;
|
||||
using CompanyManagment.App.Contracts.Workshop;
|
||||
using CompanyManagment.Application;
|
||||
using MD.PersianDateTime.Standard;
|
||||
@@ -49,15 +50,17 @@ namespace ServiceHost.Areas.Client.Pages.Company.Employees
|
||||
public List<string> listArray { get; set; }
|
||||
public EmployeeSearchModel SearchModel;
|
||||
public ConnectedPersonnelViewModel ConnectedPersonnel;
|
||||
public string HasCustomizeCheckoutService;
|
||||
|
||||
private readonly IWorkshopApplication _workshopApplication;
|
||||
private readonly IWorkshopApplication _workshopApplication;
|
||||
private readonly IEmployeeApplication _employeeApplication;
|
||||
private readonly IContractApplication _contractApplication;
|
||||
private readonly ICheckoutApplication _checkoutApplication;
|
||||
private readonly IRollCallServiceApplication _rollCallServiceApplication;
|
||||
private readonly ILeaveApplication _leaveApplication;
|
||||
private readonly IPasswordHasher _passwordHasher;
|
||||
|
||||
public IndexModel(IWorkshopApplication workshopApplication, IEmployeeApplication employeeApplication, IContractApplication contractApplication, ICheckoutApplication checkoutApplication, IPasswordHasher passwordHasher, ILeaveApplication leaveApplication)
|
||||
public IndexModel(IWorkshopApplication workshopApplication, IEmployeeApplication employeeApplication, IContractApplication contractApplication, ICheckoutApplication checkoutApplication, IPasswordHasher passwordHasher, ILeaveApplication leaveApplication, IRollCallServiceApplication rollCallServiceApplication)
|
||||
{
|
||||
_workshopApplication = workshopApplication;
|
||||
_employeeApplication = employeeApplication;
|
||||
@@ -65,6 +68,7 @@ namespace ServiceHost.Areas.Client.Pages.Company.Employees
|
||||
_checkoutApplication = checkoutApplication;
|
||||
_passwordHasher = passwordHasher;
|
||||
_leaveApplication = leaveApplication;
|
||||
_rollCallServiceApplication = rollCallServiceApplication;
|
||||
}
|
||||
|
||||
public IActionResult OnGet(EmployeeSearchModel searchModel)
|
||||
@@ -99,7 +103,10 @@ namespace ServiceHost.Areas.Client.Pages.Company.Employees
|
||||
};
|
||||
|
||||
HasEmployees = Employees.PersonnelInfoViewModels.Count > 0 ? true : false;
|
||||
return Page();
|
||||
|
||||
HasCustomizeCheckoutService = _rollCallServiceApplication.GetActiveServiceByWorkshopId(id).HasCustomizeCheckoutService;
|
||||
|
||||
return Page();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -41,10 +41,10 @@
|
||||
}
|
||||
|
||||
.errored2 {
|
||||
animation: shake 300ms;
|
||||
color: #eb3434 !important;
|
||||
border: 2px solid #eb3434 !important;
|
||||
border-radius: 9px;
|
||||
/* animation: shake 300ms; */
|
||||
/* color: #eb3434 !important; */
|
||||
/* border: 2px solid #eb3434 !important; */
|
||||
/* border-radius: 9px; */
|
||||
}
|
||||
|
||||
.wrapper-dropdown {
|
||||
@@ -128,7 +128,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<a asp-page="/Company/Workshop/Index" class="back-btn" type="button">
|
||||
<a asp-page="/Company/Employees/Index" class="back-btn" type="button">
|
||||
<span>بازگشت</span>
|
||||
</a>
|
||||
</div>
|
||||
@@ -1087,24 +1087,31 @@
|
||||
$(".checkAll").change(function () {
|
||||
let dataValYear = Number($('#year').val());
|
||||
let dataValMonth = Number($('#month').val());
|
||||
var employeeIdValue = $('#EmployeeIdSearch').val();
|
||||
|
||||
// if (dataValYear == 0 || dataValMonth == 0) {
|
||||
// $('#SearchModel_Year').addClass("errored");
|
||||
// $('#SearchModel_Month').addClass("errored");
|
||||
if (dataValYear === 0 || employeeIdValue === "0") {
|
||||
$('#dropdown-year').addClass("errored");
|
||||
$('.persianDateInputYear').addClass("errored");
|
||||
$('.employeeSelect').addClass("errored");
|
||||
$('.employeeSelectMobile').addClass("errored");
|
||||
$('.btn-search-click').addClass("errored2");
|
||||
|
||||
// $(this).prop('checked', false);
|
||||
// $('.alert-msg').show();
|
||||
// $('.alert-msg p').text('جهت انتخاب گروهی مرخصی ها ابتدا میبایست سال و ماه مورد نظر را انتخاب نمائید.');
|
||||
// setTimeout(function () {
|
||||
// $('.alert-msg').hide();
|
||||
// $('.alert-msg p').text('');
|
||||
// $('#SearchModel_Year').removeClass("errored");
|
||||
// $('#SearchModel_Month').removeClass("errored");
|
||||
// }, 3500);
|
||||
// } else {
|
||||
$(this).prop('checked', false);
|
||||
$('.alert-msg').show();
|
||||
$('.alert-msg p').text('برای انتخاب کل پرسنل، ابتدا سال و نام پرسنل را انتخاب نموده و دکمه جستجو را کلیک نمایید');
|
||||
setTimeout(function () {
|
||||
$('.alert-msg').hide();
|
||||
$('.alert-msg p').text('');
|
||||
$('#dropdown-year').removeClass("errored");
|
||||
$('.persianDateInputYear').removeClass("errored");
|
||||
$('.employeeSelect').removeClass("errored");
|
||||
$('.employeeSelectMobile').removeClass("errored");
|
||||
$('.btn-search-click').removeClass("errored2");
|
||||
}, 3500);
|
||||
} else {
|
||||
|
||||
$('input:checkbox').not(this).prop('checked', this.checked);
|
||||
// }
|
||||
}
|
||||
});
|
||||
//******************** انتخاب همه ی چک باکس ها ********************
|
||||
|
||||
@@ -2296,21 +2303,21 @@
|
||||
function printAll() {
|
||||
var idlist = "";
|
||||
|
||||
// if (!($('input:checkbox').is(":checked"))) {
|
||||
// $('.alert-msg').show();
|
||||
// $('.alert-msg p').text('برای پرینت لطفا اسامی را انتخاب نمائید');
|
||||
// setTimeout(function () {
|
||||
// $('.alert-msg').hide();
|
||||
// $('.alert-msg p').text('');
|
||||
// }, 3500);
|
||||
// return
|
||||
// }
|
||||
if (!($('input:checkbox').is(":checked"))) {
|
||||
$('.alert-msg').show();
|
||||
$('.alert-msg p').text('برای پرینت لطفا مرخصی های مورد نظر خود را انتخاب نمائید');
|
||||
setTimeout(function () {
|
||||
$('.alert-msg').hide();
|
||||
$('.alert-msg p').text('');
|
||||
}, 3500);
|
||||
return;
|
||||
}
|
||||
|
||||
var monthValue = $('#month').val();
|
||||
var yearValue = $('#year').val();
|
||||
var employeeIdValue = $('#EmployeeIdSearch').val();
|
||||
|
||||
if (employeeIdValue === "0" || yearValue === "0") {
|
||||
if ((employeeIdValue === "0" || yearValue === "0") && !($('input:checkbox').is(":checked"))) {
|
||||
$('.alert-msg').show();
|
||||
$('.alert-msg p').text('برای پرینت ابتدا سال و نام پرسنل را انتخاب نموده و دکمه جستجو را کلیک نمایید');
|
||||
$('#dropdown-year').addClass("errored");
|
||||
@@ -2342,15 +2349,15 @@
|
||||
}
|
||||
});
|
||||
|
||||
if(idlist == "") {
|
||||
$('.foo').each(function () {
|
||||
var a = $(this).val();
|
||||
var b = a + "+";
|
||||
idlist += b;
|
||||
});
|
||||
}
|
||||
// if(idlist == "") {
|
||||
// $('.foo').each(function () {
|
||||
// var a = $(this).val();
|
||||
// var b = a + "+";
|
||||
// idlist += b;
|
||||
// });
|
||||
// }
|
||||
|
||||
if (idlist != "") {
|
||||
if (idlist !== "") {
|
||||
var url = '@Url.Page("/Company/Employees/LeavePrintAll")';
|
||||
window.location.href = url + '?idlist=' + idlist;
|
||||
} else {
|
||||
@@ -2367,29 +2374,17 @@
|
||||
|
||||
function printAllList() {
|
||||
var idlist = "";
|
||||
|
||||
// if (!($('input:checkbox').is(":checked"))) {
|
||||
// $('.alert-msg').show();
|
||||
// $('.alert-msg p').text('برای پرینت لطفا اسامی را انتخاب نمائید');
|
||||
// setTimeout(function () {
|
||||
// $('.alert-msg').hide();
|
||||
// $('.alert-msg p').text('');
|
||||
// }, 3500);
|
||||
// return
|
||||
// }
|
||||
|
||||
var monthValue = $('#month').val();
|
||||
var yearValue = $('#year').val();
|
||||
var employeeIdValue = $('#EmployeeIdSearch').val();
|
||||
|
||||
if (employeeIdValue === "0" || yearValue === "0") {
|
||||
if ((employeeIdValue === "0" || yearValue === "0")) {
|
||||
$('.alert-msg').show();
|
||||
$('.alert-msg p').text('برای پرینت ابتدا سال و نام پرسنل را انتخاب نموده و دکمه جستجو را کلیک نمایید');
|
||||
$('.alert-msg p').text('برای پرینت ابتدا سال و نام پرسنل را انتخاب نموده و دکمه جستجو را کلیک نمایید');
|
||||
$('#dropdown-year').addClass("errored");
|
||||
$('.persianDateInputYear').addClass("errored");
|
||||
$('.employeeSelect').addClass("errored");
|
||||
$('.employeeSelectMobile').addClass("errored");
|
||||
$('.btn-search-click').addClass("errored2");
|
||||
$('.btn-search-click').addClass("errored2");
|
||||
|
||||
setTimeout(function () {
|
||||
$('.alert-msg').hide();
|
||||
@@ -2398,30 +2393,60 @@
|
||||
$('.persianDateInputYear').removeClass("errored");
|
||||
$('.employeeSelect').removeClass("errored");
|
||||
$('.employeeSelectMobile').removeClass("errored");
|
||||
$('.btn-search-click').removeClass("errored2");
|
||||
$('.btn-search-click').removeClass("errored2");
|
||||
}, 3500);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (!($('input:checkbox').is(":checked"))) {
|
||||
$('.alert-msg').show();
|
||||
$('.alert-msg p').text('برای پرینت لطفا مرخصی های مورد نظر خود را انتخاب نمائید');
|
||||
setTimeout(function () {
|
||||
$('.alert-msg').hide();
|
||||
$('.alert-msg p').text('');
|
||||
}, 3500);
|
||||
return;
|
||||
}
|
||||
|
||||
if ((employeeIdValue === "0" || yearValue === "0") && !($('input:checkbox').is(":checked"))) {
|
||||
$('.alert-msg').show();
|
||||
$('.alert-msg p').text('برای پرینت ابتدا سال و نام پرسنل را انتخاب نموده و دکمه جستجو را کلیک نمایید');
|
||||
$('#dropdown-year').addClass("errored");
|
||||
$('.persianDateInputYear').addClass("errored");
|
||||
$('.employeeSelect').addClass("errored");
|
||||
$('.employeeSelectMobile').addClass("errored");
|
||||
$('.btn-search-click').addClass("errored2");
|
||||
|
||||
setTimeout(function () {
|
||||
$('.alert-msg').hide();
|
||||
$('.alert-msg p').text('');
|
||||
$('#dropdown-year').removeClass("errored");
|
||||
$('.persianDateInputYear').removeClass("errored");
|
||||
$('.employeeSelect').removeClass("errored");
|
||||
$('.employeeSelectMobile').removeClass("errored");
|
||||
$('.btn-search-click').removeClass("errored2");
|
||||
}, 3500);
|
||||
return;
|
||||
}
|
||||
|
||||
$('.foo').each(function () {
|
||||
if ($(this).is(":checked")) {
|
||||
|
||||
var a = $(this).val();
|
||||
var b = a + "+";
|
||||
idlist += b;
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
if (idlist == "") {
|
||||
$('.foo').each(function () {
|
||||
var a = $(this).val();
|
||||
var b = a + "+";
|
||||
idlist += b;
|
||||
});
|
||||
}
|
||||
// if (idlist == "") {
|
||||
// $('.foo').each(function () {
|
||||
// var a = $(this).val();
|
||||
// var b = a + "+";
|
||||
// idlist += b;
|
||||
// });
|
||||
// }
|
||||
|
||||
if (idlist != "") {
|
||||
if (idlist !== "") {
|
||||
var parametr = '&idlist=' + idlist;
|
||||
var url = '#showmodal=@Url.Page("/Company/Employees/Leave", "LeavePrintAllList")';
|
||||
window.location.href = url + parametr;
|
||||
@@ -2689,13 +2714,13 @@
|
||||
<div class="Rtable-cell width4">
|
||||
<div class="Rtable-cell--content text-center">
|
||||
<div>
|
||||
${item.leaveType == "استحقاقی"
|
||||
${item.leaveType === "استحقاقی"
|
||||
? `<span class="badge badge-paid-leave badge-secondary text-center">
|
||||
<span>
|
||||
استحقاقی
|
||||
</span>
|
||||
</span>`
|
||||
: `<span class="badge sick badge-secondary">
|
||||
: `<span class="badge sick badge-secondary text-center">
|
||||
<span>
|
||||
استعلاجی
|
||||
</span>
|
||||
@@ -2712,7 +2737,7 @@
|
||||
<div class="Rtable-cell width6">
|
||||
<div class="Rtable-cell--content">
|
||||
<div>
|
||||
${item.paidLeaveType == "ساعتی"
|
||||
${item.paidLeaveType === "ساعتی"
|
||||
? `<span>-</span>`
|
||||
: `<span>${item.endLeave}</span>`
|
||||
}
|
||||
@@ -2722,7 +2747,7 @@
|
||||
<div class="Rtable-cell width7">
|
||||
<div class="Rtable-cell--content">
|
||||
<div>
|
||||
${item.paidLeaveType == "ساعتی"
|
||||
${item.paidLeaveType === "ساعتی"
|
||||
? `<span>${time_format(item.startLeaveGr)} الی ${time_format(item.endLeaveGr)}</span>`
|
||||
: `<span>-</span>`
|
||||
}
|
||||
|
||||
@@ -242,7 +242,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<a asp-page="./Leave" asp-route-workshopId="@Model.workshopId" asp-route-EmployeeId="@Model.EmployeeId" class="back-btn" type="button">
|
||||
<a asp-page="./Leave" class="back-btn" type="button">
|
||||
<span>بازگشت</span>
|
||||
</a>
|
||||
</div>
|
||||
@@ -288,7 +288,7 @@
|
||||
|
||||
@if (btn.StartPrint == 1)
|
||||
{
|
||||
<a asp-page="./Leave" asp-route-workshopId="@Model.workshopId" asp-route-EmployeeId="@Model.EmployeeId" style="padding: 6px 12px !important;width: 80px;cursor: pointer;margin: 0 6px 0 0;background-color: #454D5C;color: #ffffff;text-align: center;align-items: center;display: flex;justify-content: center;border-radius: 7px; font-size: 12px;" type="button">
|
||||
<a asp-page="./Leave" style="padding: 6px 12px !important;width: 80px;cursor: pointer;margin: 0 6px 0 0;background-color: #454D5C;color: #ffffff;text-align: center;align-items: center;display: flex;justify-content: center;border-radius: 7px; font-size: 12px;" type="button">
|
||||
بازگشت
|
||||
</a>
|
||||
}
|
||||
@@ -320,7 +320,14 @@
|
||||
<fieldset style="border-radius: 10px; height: 9cm; margin: 5px 5mm 0 5mm; ">
|
||||
<div class="section-leave">
|
||||
<div class="row">
|
||||
<div class="col-3 d-inline-block"><fieldset style="border: 1px solid black; border-radius: 15px; padding: 1px 15px 1px 15px; width: 60%; font-size: 12px; text-align: center;"> @item.ContractNo</fieldset></div>
|
||||
<div class="col-3 d-inline-block">
|
||||
@if (!string.IsNullOrWhiteSpace(item.ContractNo))
|
||||
{
|
||||
<fieldset style="border: 1px solid black; border-radius: 15px; padding: 1px 15px 1px 15px; width: 60%; font-size: 12px; text-align: center;">
|
||||
@item.ContractNo
|
||||
</fieldset>
|
||||
}
|
||||
</div>
|
||||
<div class="col-6 d-inline-block text-center">
|
||||
<p style="font-size: 15px; font-weight: bold">برگ مرخصی</p>
|
||||
</div>
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
<link href="~/assetsclient/pages/fine/css/crudfinesubjectmodal.css" rel="stylesheet" />
|
||||
@{
|
||||
string clientVerion = _0_Framework.Application.Version.StyleVersion;
|
||||
}
|
||||
|
||||
<link href="~/assetsclient/pages/fine/css/crudfinesubjectmodal.css?ver=@clientVerion" rel="stylesheet" />
|
||||
|
||||
<div class="modal-content">
|
||||
<div class="modal-header d-block text-center position-relative">
|
||||
@@ -59,4 +63,4 @@
|
||||
var editFineSubjectAjax = '@Url.Page("./Index", "EditFineSubject")';
|
||||
var RemoveFineSubjectAjax = '@Url.Page("./Index", "RemoveFineSubject")';
|
||||
</script>
|
||||
<script src="~/assetsclient/pages/fine/js/crudfinesubjectmodal.js?ver=963"></script>
|
||||
<script src="~/assetsclient/pages/fine/js/crudfinesubjectmodal.js?ver=@clientVerion"></script>
|
||||
@@ -165,7 +165,7 @@
|
||||
<div class="container-fluid">
|
||||
<div class="row p-2">
|
||||
<div class="d-grid card-area-workshop gap-2 p-0">
|
||||
<div class="gwb-card">
|
||||
<div class="gwb-card" >
|
||||
<a asp-page="/Company/Contracts/Index" class="click loadingButton" id="contractsListBtnIntro">
|
||||
<div class="d-flex align-items-center justify-content-start p-1">
|
||||
<img src="~/AssetsClient/images/contractList.png" alt="" class="img-fluid mx-1" width="50px" />
|
||||
@@ -193,7 +193,7 @@
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="gwb-card">
|
||||
<div class="gwb-card" >
|
||||
<a asp-page="/Company/InsuranceList/Index" class="click loadingButton" id="insuranceListBtnIntro">
|
||||
<div class="d-flex align-items-center justify-content-start p-1">
|
||||
<img src="~/AssetsClient/images/insuranceList.png" alt="" class="img-fluid mx-1" width="50px" />
|
||||
@@ -208,26 +208,26 @@
|
||||
</div>
|
||||
|
||||
<div class="gwb-card">
|
||||
<a asp-page="/Company/Employees/Leave" class="click loadingButton">
|
||||
<div class="d-flex align-items-center justify-content-start p-1">
|
||||
<img src="~/AssetsClient/images/icons/leave.png" alt="leave" class="img-fluid mx-1" width="50px" />
|
||||
<div class="text-start ms-1">
|
||||
<div class="card-title">لیست کل مرخصی</div>
|
||||
<p class="m-0 card-description d-none d-md-block">گزارش لیست مرخصی کل پرسنل</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="spinner-loading loading" style="display: none;">
|
||||
<span class="spinner-border spinner-border-sm loading text-white" role="status" aria-hidden="true"></span>
|
||||
</div>
|
||||
</a>
|
||||
<a onclick="location.href = '#showmodal=@Url.Page("/Company/Employees/Index", "ContractCheckoutStatus")';" class="click loadingButton">
|
||||
<div class="d-flex align-items-center justify-content-start p-1">
|
||||
<img src="~/AssetsClient/images/icons/statistics.png" alt="" class="img-fluid mx-1" width="50px"/>
|
||||
<div class="text-start ms-1">
|
||||
<div class="card-title">گزارش وضعیت پرسنل به صورت انفرادی</div>
|
||||
<p class="m-0 card-description d-none d-md-block">گزارش وضعیت قرارداد و تصفیه حساب</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="spinner-loading loading" style="display: none;">
|
||||
<span class="spinner-border spinner-border-sm loading text-white" role="status" aria-hidden="true"></span>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="gwb-card">
|
||||
<div class="gwb-card" >
|
||||
<a href="#showmodal=@Url.Page("./Index", "ContractCheckoutYearlyStatus")" class="click loadingButton">
|
||||
<div class="d-flex align-items-center justify-content-start p-1">
|
||||
<img src="~/AssetsClient/images/report-annually.png" alt="" class="img-fluid mx-1" width="50px" />
|
||||
<div class="text-start ms-1">
|
||||
<div class="card-title">گزارش وضعیت</div>
|
||||
<div class="card-title">گزارش وضعیت پرسنل بصورت گروهی</div>
|
||||
<p class="m-0 card-description d-none d-md-block">گزارش وضعیت قرارداد و تضفیه حساب سالانه کل پرسنل</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -237,7 +237,7 @@
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="gwb-card">
|
||||
<div class="gwb-card" >
|
||||
<a asp-page="/Company/Workshop/Employees" class="click loadingButton">
|
||||
<div class="d-flex align-items-center justify-content-start p-1">
|
||||
<img src="~/AssetsClient/images/icons/list-info-personnel.png" alt="" class="img-fluid mx-1" width="50px" />
|
||||
|
||||
@@ -131,7 +131,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-12 col-sm-12 col-md-6 col-lg-4 col-xl-3 col-xxl-2 mt-3">
|
||||
<div class="col-12 col-sm-12 col-md-6 col-lg-4 col-xl-3 col-xxl-2 mt-3 @(Model.HasCustomizeCheckoutService != "true" ? "d-none" : "")">
|
||||
<div class="card p-0">
|
||||
<div class="card-section-btn">
|
||||
<div class="content btn-group">
|
||||
@@ -152,7 +152,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-12 col-sm-12 col-md-6 col-lg-4 col-xl-3 col-xxl-2 mt-3">
|
||||
<div class="col-12 col-sm-12 col-md-6 col-lg-4 col-xl-3 col-xxl-2 mt-3 @(Model.HasCustomizeCheckoutService != "true" ? "d-none" : "")">
|
||||
<div class="card p-0">
|
||||
<div class="card-section-btn">
|
||||
<div class="content btn-group">
|
||||
@@ -172,7 +172,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-12 col-sm-12 col-md-6 col-lg-4 col-xl-3 col-xxl-2 mt-3">
|
||||
<div class="col-12 col-sm-12 col-md-6 col-lg-4 col-xl-3 col-xxl-2 mt-3 @(Model.HasCustomizeCheckoutService != "true" ? "d-none" : "")">
|
||||
<div class="card p-0">
|
||||
<div class="card-section-btn">
|
||||
<div class="content btn-group">
|
||||
@@ -191,7 +191,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-sm-12 col-md-6 col-lg-4 col-xl-3 col-xxl-2 mt-3">
|
||||
<div class="col-12 col-sm-12 col-md-6 col-lg-4 col-xl-3 col-xxl-2 mt-3 @(Model.HasCustomizeCheckoutService != "true" ? "d-none" : "")">
|
||||
<div class="card p-0">
|
||||
<div class="card-section-btn">
|
||||
<div class="content btn-group">
|
||||
|
||||
@@ -1,26 +1,18 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Security.Claims;
|
||||
using _0_Framework.Application;
|
||||
using AccountManagement.Application.Contracts.Account;
|
||||
using Company.Domain.EmployeeAgg;
|
||||
using _0_Framework.Application;
|
||||
using CompanyManagment.App.Contracts.AndroidApkVersion;
|
||||
using CompanyManagment.App.Contracts.ClientDashboard;
|
||||
using CompanyManagment.App.Contracts.Employee;
|
||||
using CompanyManagment.App.Contracts.HolidayItem;
|
||||
using CompanyManagment.App.Contracts.InsuranceList;
|
||||
using CompanyManagment.App.Contracts.Leave;
|
||||
using CompanyManagment.App.Contracts.PaymentToEmployee;
|
||||
using CompanyManagment.App.Contracts.Workshop;
|
||||
using CompanyManagment.Application;
|
||||
using Microsoft.AspNetCore.Authentication.Cookies;
|
||||
using Microsoft.AspNetCore.Authentication;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.AspNetCore.Mvc.RazorPages;
|
||||
using PersianTools.Core;
|
||||
using CompanyManagment.App.Contracts.RollCallEmployee;
|
||||
using System.Security.Claims;
|
||||
using CompanyManagment.App.Contracts.RollCallService;
|
||||
using Microsoft.AspNetCore.Identity;
|
||||
|
||||
namespace ServiceHost.Areas.Client.Pages
|
||||
{
|
||||
@@ -35,7 +27,10 @@ namespace ServiceHost.Areas.Client.Pages
|
||||
private readonly IHolidayItemApplication _holidayItemApplication;
|
||||
private readonly IPasswordHasher _passwordHasher;
|
||||
private readonly IAuthHelper _authHelper;
|
||||
|
||||
private readonly IAndroidApkVersionApplication _androidApkVersionApplication;
|
||||
private readonly IRollCallServiceApplication _rollCallServiceApplication;
|
||||
|
||||
public string profilePicture { get; set; }
|
||||
public string AccountFullName { get; set; }
|
||||
public List<CalenderViewModel> CalenderViewModels;
|
||||
@@ -47,8 +42,15 @@ namespace ServiceHost.Areas.Client.Pages
|
||||
public List<LeaveMainViewModel> LeaveSearch;
|
||||
public string workshopId { get; set; }
|
||||
public int PageIndex;
|
||||
public string HasCustomizeCheckoutService;
|
||||
|
||||
|
||||
#region Mahan
|
||||
public bool HasInsuranceToConfirm { get; set; }
|
||||
public bool HasApkToDownload { get; set; }
|
||||
public IndexModel(IAuthHelper authHelper, IPasswordHasher passwordHasher, IWorkshopApplication workshopApplication, ILeaveApplication leaveApplication, IEmployeeApplication employeeApplication, IPaymentToEmployeeItemApplication paymentToEmployeeItemApplication, IPaymentToEmployeeApplication paymentToEmployeeApplication, IHolidayItemApplication holidayItemApplication, IAndroidApkVersionApplication androidApkVersionApplication)
|
||||
|
||||
#endregion
|
||||
public IndexModel(IAuthHelper authHelper, IPasswordHasher passwordHasher, IWorkshopApplication workshopApplication, ILeaveApplication leaveApplication, IEmployeeApplication employeeApplication, IPaymentToEmployeeItemApplication paymentToEmployeeItemApplication, IPaymentToEmployeeApplication paymentToEmployeeApplication, IHolidayItemApplication holidayItemApplication, IAndroidApkVersionApplication androidApkVersionApplication, IRollCallServiceApplication rollCallServiceApplication)
|
||||
{
|
||||
_workshopApplication = workshopApplication;
|
||||
_employeeApplication = employeeApplication;
|
||||
@@ -56,6 +58,7 @@ namespace ServiceHost.Areas.Client.Pages
|
||||
_paymentToEmployeeApplication = paymentToEmployeeApplication;
|
||||
_holidayItemApplication = holidayItemApplication;
|
||||
_androidApkVersionApplication = androidApkVersionApplication;
|
||||
_rollCallServiceApplication = rollCallServiceApplication;
|
||||
_leaveApplication = leaveApplication;
|
||||
_authHelper = authHelper;
|
||||
_passwordHasher = passwordHasher;
|
||||
@@ -63,13 +66,24 @@ namespace ServiceHost.Areas.Client.Pages
|
||||
|
||||
public void OnGet()
|
||||
{
|
||||
profilePicture = _authHelper.CurrentAccountInfo().ProfilePhoto;
|
||||
AccountFullName = _authHelper.CurrentAccountInfo().Fullname;
|
||||
var account = _authHelper.CurrentAccountInfo();
|
||||
profilePicture = account.ProfilePhoto;
|
||||
AccountFullName = account.Fullname;
|
||||
var todayGr = DateTime.Now;
|
||||
HasApkToDownload = _androidApkVersionApplication.HasAndroidApkToDownload();
|
||||
#region TodayDate
|
||||
|
||||
var todayFa = todayGr.ToFarsi();
|
||||
|
||||
#region Mahan
|
||||
var workshopSlug = User.FindFirst("WorkshopSlug")?.Value;
|
||||
long workshopIDecrypt = _passwordHasher.SlugDecrypt(workshopSlug);
|
||||
|
||||
#endregion
|
||||
|
||||
HasCustomizeCheckoutService = _rollCallServiceApplication.GetActiveServiceByWorkshopId(workshopIDecrypt).HasCustomizeCheckoutService;
|
||||
|
||||
#region TodayDate
|
||||
|
||||
var todayFa = todayGr.ToFarsi();
|
||||
var syear = Convert.ToInt32(todayFa.Substring(0, 4));
|
||||
var smonth = Convert.ToInt32(todayFa.Substring(5, 2));
|
||||
var sday = Convert.ToInt32(todayFa.Substring(8, 2));
|
||||
@@ -158,6 +172,7 @@ namespace ServiceHost.Areas.Client.Pages
|
||||
#endregion
|
||||
}
|
||||
|
||||
|
||||
#region Get Employee & Workshop List by JSON
|
||||
public IActionResult OnGetWorkshopList(WorkshopSearchModel searchModel)
|
||||
{
|
||||
@@ -431,6 +446,6 @@ namespace ServiceHost.Areas.Client.Pages
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,6 +46,13 @@
|
||||
<None Remove="wwwroot\webcamjs\flash\**" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Content Remove="Areas\Client\Pages\Company\Fine\CRUDFineSubjectModal.cshtml" />
|
||||
<Content Remove="Areas\Client\Pages\Company\Fine\Index.cshtml" />
|
||||
<Content Remove="Areas\Client\Pages\Company\Fine\ModalCreateNewFine.cshtml" />
|
||||
<Content Remove="Areas\Client\Pages\Company\Fine\ModalEditFine.cshtml" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\AccountManagement.Configuration\AccountManagement.Configuration.csproj" />
|
||||
<ProjectReference Include="..\backService\backService.csproj" />
|
||||
|
||||
@@ -12,10 +12,10 @@
|
||||
//"MesbahDb": "Data Source=DESKTOP-NUE119G\\MSNEW;Initial Catalog=Mesbah_db;Integrated Security=True"
|
||||
|
||||
//server
|
||||
//"MesbahDb": "Data Source=171.22.24.15;Initial Catalog=mesbah_db;Persist Security Info=False;User ID=ir_db;Password=R2rNp[170]is[3019]#@ATt;TrustServerCertificate=true;"
|
||||
//"MesbahDb": "Data Source=171.22.24.15;Initial Catalog=mesbah_db;Persist Security Info=False;User ID=ir_db;Password=R2rNp[170]is[3019]#@ATt;TrustServerCertificate=true;"
|
||||
|
||||
//local
|
||||
"MesbahDb": "Data Source=.;Initial Catalog=Mesbah_db;Integrated Security=True;TrustServerCertificate=true;"
|
||||
"MesbahDb": "Data Source=.;Initial Catalog=Mesbah_db;Integrated Security=True;TrustServerCertificate=true;"
|
||||
},
|
||||
"GoogleRecaptchaV3": {
|
||||
"SiteKey": "6Lfhp_AnAAAAAB79WkrMoHd1k8ir4m8VvfjE7FTH",
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
#ModalCRUDSearchSubject {
|
||||
}
|
||||
.FineSubjectSection {
|
||||
width: 30%
|
||||
max-width: 420px;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
.sweet-alert {
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
$(document).ready(function () {
|
||||
var urlPathname = location.pathname;
|
||||
|
||||
$(document).ready(function () {
|
||||
|
||||
$("#modalWorkshopFullname").text($('#caseHistoryWorkshopFullname').text());
|
||||
$('.btn-register').addClass('disable');
|
||||
@@ -269,19 +271,27 @@ $('.btn-register').click(function () {
|
||||
$('.alert-success-msg').hide();
|
||||
$('.alert-success-msg p').text('');
|
||||
loading.hide();
|
||||
//$('#MainModal').modal('hide');
|
||||
window.location.reload();
|
||||
}, 2000);
|
||||
|
||||
setTimeout(function () {
|
||||
window.location.reload();
|
||||
//hasData = true;
|
||||
//dateIndex = 0;
|
||||
//dateEmployeeIndex = null;
|
||||
//$('#caseHistoryLoadData').html('');
|
||||
//caseHistoryLoadAjax();
|
||||
//loadUntilHeightExceeds();
|
||||
}, 1000);
|
||||
if (urlPathname.indexOf('/Client/Company/WorkFlow/RollCall') > -1) {
|
||||
$('#MainModal').modal('hide');
|
||||
_RefreshCountMenu();
|
||||
CountWorkFlowOfAbsentAndCut();
|
||||
loadWorkFlowsAbsentsList();
|
||||
LoadWorkFlowsCutList();
|
||||
}
|
||||
|
||||
if (urlPathname.indexOf('/Client/Company/RollCall/CaseHistory') > -1) {
|
||||
$('#MainModal').modal('hide');
|
||||
hasData = true;
|
||||
dateIndex = 0;
|
||||
dateEmployeeIndex = null;
|
||||
$('#caseHistoryLoadData').html('');
|
||||
caseHistoryLoadAjax();
|
||||
loadUntilHeightExceeds();
|
||||
}
|
||||
|
||||
//window.location.reload();
|
||||
|
||||
} else {
|
||||
$('.alert-msg').show();
|
||||
|
||||
Reference in New Issue
Block a user