Files
Backend-Api/CompanyManagment.App.Contracts/CustomizeWorkshopSettings/ICustomizeWorkshopSettingsApplication.cs

111 lines
5.3 KiB
C#

using System;
using _0_Framework.Application;
using _0_Framework.Domain.CustomizeCheckoutShared.Enums;
using _0_Framework.Domain.CustomizeCheckoutShared.ValueObjects;
using CompanyManagment.App.Contracts.Employee;
using CompanyManagment.App.Contracts.RollCall;
using System.Collections.Generic;
using System.ComponentModel;
using System.Threading.Tasks;
namespace CompanyManagment.App.Contracts.CustomizeWorkshopSettings;
public interface ICustomizeWorkshopSettingsApplication
{
//Create workshop settings
OperationResult CreateWorkshopSettings(CreateCustomizeWorkshopSettings command);
CustomizeWorkshopSettingsViewModel GetWorkshopSettingsByWorkshopIdForAdmin(long workshopId);
//create group settings with workshopSettingsId.
OperationResult CreateGroupSettingsByRollCallWorkshopSettingId(CreateCustomizeWorkshopGroupSettings command);
OperationResult CreateEmployeeSettings(CreateCustomizeEmployeeSettings command);
//Edit the Workshop Settings Data
OperationResult EditWorkshopSetting(EditCustomizeWorkshopSettings command, bool replaceInAllGroups);
//Edit the Group Settings Data
OperationResult EditRollCallGroupSetting(EditCustomizeWorkshopGroupSettings command);
//Edit the Employee settings and change the 'IsChanged' bool to true.
OperationResult EditRollCallEmployeeSettings(EditCustomizeEmployeeSettings command);
//Remove the Employee From the Group Settings
OperationResult RemoveEmployeeFromRollCallWorkshopGroup(long employeeId, long groupId, long workshopId);
OperationResult EditSimpleRollCallGroupSetting(EditCustomizeWorkshopGroupSettings command, List<ReCalculateRollCallValues> reCalculateCommand);
#region Vafa
OperationResult EditSimpleRollCallEmployeeSetting(EditCustomizeEmployeeSettings command,
List<ReCalculateRollCallValues> reCalculateCommand);
#endregion
OperationResult RemoveGroupSettings(long employeeSettingsId);
OperationResult AddEmployeeToMainGroupSettings(long workshopId, long employeeId);
OperationResult CreateEmployeesSettingsAndSetChanges(EditCustomizeEmployeeSettings command);
/// <summary>
/// این متد تاریخ شیفت تنظیمات کارگاه را تغییر میدهد
/// </summary>
/// <param name="shiftViewModels">شیفت هت</param>
/// <param name="customizeWorkshopSettingsId">آیدی تنظیمات کارگاه</param>
/// <param name="workshopShiftStatus"></param>
/// <param name="holidayWork"></param>
/// <param name="weeklyOffDays"></param>
/// <param name="replaceChangedGroups"></param>
/// <returns></returns>
OperationResult EditWorkshopSettingShifts(List<CustomizeWorkshopShiftViewModel> shiftViewModels,
long customizeWorkshopSettingsId, WorkshopShiftStatus workshopShiftStatus,
HolidayWork holidayWork, List<DayOfWeek> weeklyOffDays);
// It will Get the Workshop Settings with its groups and the employees of groups.
CustomizeWorkshopSettingsViewModel GetWorkshopSettingsByWorkshopId(long workshopId, AuthViewModel auth);
List<CustomizeWorkshopEmployeeSettingsViewModel> GetChangedEmployeeSettingsByGroupSettingsId(long groupSettingsId);
List<EmployeeViewModel> GetEmployeesWithoutGroup(long customizeWorkshopSettingId);
CustomizeWorkshopEmployeeSettingsViewModel GetByEmployeeIdAndWorkshopIdIncludeGroupSettings(long workshopId, long employeeId);
List<CustomizeWorkshopEmployeeSettingsViewModel> GetEmployeeSettingsByGroupSettingsId(long groupSettingsId);
EditCustomizeWorkshopSettings GetWorkshopSettingsDetails(long workshopId);
/// <summary>
/// این متد فقط شیفت و مشخصات ساده را برمیگردانید
/// </summary>
/// <param name="workshopId"></param>
/// <returns></returns>
EditCustomizeWorkshopSettings GetSimpleWorkshopSettings(long workshopId);
CustomizeWorkshopSettingsViewModel GetWorkshopIncludeGroupsByWorkshopId(long workshopId);
EditCustomizeWorkshopGroupSettings GetCustomizeWorkshopGroupSettingsDetails(long groupId);
EditCustomizeEmployeeSettings GetCustomizeEmployeeSettingsDetails(long customizeEmployeeId);
List<EmployeeViewModel> GetEmployeesWithoutGroupByWorkshopId(long workshopId);
List<ChangedGroupedViewModel> GetShiftChangesGroupAndEmployees(long customizeWorkshopSettingsId);
List<CustomizeWorkshopEmployeeSettingsViewModel> GetEmployeeSettingsByWorkshopId(long workshopId);
CustomizeWorkshopGroupSettingsViewModel GetEmployeesGroupSettingsByEmployeeId(long employeeId, long workshopId);
/// <summary>
/// این متد برای قبل از ویرایش گروهی و محاسبه مجدد گروهی استفاده میشود برای اینکه پرسنل هایی که دارای فیش هستند رو فرانت نمایش بده
/// </summary>
/// <param name="command"></param>
/// <param name="workshopId"></param>
/// <returns></returns>
OperationResult<List<long>> ValidateReCalculateValueForGroupEdit(List<ReCalculateRollCallValues> command, long workshopId);
bool HasAnyEmployeeWithoutGroup(long workshopId);
/// <summary>
/// این متد چک میکند که آیا شیفت پرسنل تغییر کرده است یا نه
/// </summary>
/// <returns></returns>
bool CheckEmployeeShiftHasChanged(EditCustomizeEmployeeSettings command);
}