using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace OASystem.Domain.Dtos.PersonnelModule
{
    /// <summary>
    /// 人事模块
    /// 工资表单 Dto
    /// </summary>
    public class WageSheetDto
    {
    }

    public class WageYearDto
    {
        /// <summary>
        /// 年
        /// </summary>
        public int Year { get; set; }
    }

    /// <summary>
    /// 工资表单List Dto
    /// </summary>
    public class WageSheetListDto : PortDtoBase
    {
        /// <summary>
        /// 年月
        /// </summary>
        public string? YearMonth { get; set; }

        ///// <summary>
        ///// 开始日期
        ///// </summary>
        //public string? StartDt { get; set; }

        ///// <summary>
        ///// 结束日期
        ///// </summary>
        //public string? EndDt { get; set; }
    }

    /// <summary>
    /// 工资表单Info Dto
    /// </summary>
    public class WageSheetInfoDto : PortDtoBase
    {
        /// <summary>
        /// id
        /// </summary>
        public int Id { get; set; }

    }


    /// <summary>
    /// 添加或者修改
    /// </summary>
    public class WageAddOrEditDto : OpBaseDto
    {
        /// <summary>
        /// 用户Id
        /// </summary>
        public int UserId { get; set; }

        /// <summary>
        /// 年月
        /// </summary>
        public string? YearMonth { get; set; }

        /// <summary>
        /// 工资日期 起
        /// </summary>
        public string? StartDate { get; set; }

        /// <summary>
        /// 工资日期 止
        /// </summary>
        public string? EndDate { get; set; }

        /// <summary>
        /// 应出勤天数
        /// </summary>
        public int WorkDays { get; set; }

        /// <summary>
        /// 正常出勤天数
        /// </summary>
        public int RegularDays { get; set; }

        /// <summary>
        /// 基本工资
        /// </summary>
        public decimal Basic { get; set; }

        /// <summary>
        /// 绩效工资
        /// </summary>
        public decimal Floats { get; set; }

        /// <summary>
        /// 岗位津贴
        /// </summary>
        public decimal PostAllowance { get; set; }

        /// <summary>
        /// 保密费
        /// </summary>
        public decimal InformationSecurityFee { get; set; }

        /// <summary>
        /// 其他应发
        /// </summary>
        public decimal OtherHandle { get; set; }

        /// <summary>
        /// 月度补贴/其他补贴
        /// </summary>
        public decimal OtherSubsidies { get; set; }

        /// <summary>
        /// 餐补
        /// </summary>
        public decimal Mealsupplement { get; set; }

        /// <summary>
        /// 代扣保险
        /// </summary>
        public decimal WithholdingInsurance { get; set; }

        /// <summary>
        /// 代扣公积金
        /// </summary>
        public decimal ReservedFunds { get; set; }

        /// <summary>
        /// 代扣个税
        /// </summary>                                     
        public decimal WithholdingTax { get; set; }

        /// <summary>
        /// 病假
        /// </summary>
        public decimal SickLeave { get; set; }

        /// <summary>
        /// 事假
        /// </summary>
        public decimal SomethingFalse { get; set; }

        /// <summary>
        /// 迟到 
        /// 计算次数
        /// </summary>
        public decimal LateTo { get; set; }

        /// <summary>
        /// 早退 
        /// 计算次数
        /// </summary>
        public decimal LeaveEarly { get; set; }

        /// <summary>
        /// 旷工 
        /// 小时计算 7.5小时一天
        /// </summary>
        public decimal Absenteeism { get; set; }

        /// <summary>
        /// 未打卡
        /// </summary>
        public decimal NotPunch { get; set; }

        /// <summary>
        /// 其他扣款
        /// </summary>
        public decimal OtherDeductions { get; set; }

        /// <summary>
        /// 假勤 / 打卡补卡 明细
        /// </summary>
        public string? Ex_ItemsRemark { get; set; }

    }

    /// <summary>
    /// 删除
    /// </summary>
    public class WageDelDto
    {
        /// <summary>
        /// 用户Id
        /// </summary>
        public int UserId { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public int Id { get; set; }
    }

    /// <summary>
    /// 计算工资 Dto
    /// </summary>
    public class SalaryCalculatorDto
    {
        /// <summary>
        /// 员工Id
        /// </summary>
        public int UserId { get; set; }

        /// <summary>
        /// 年月
        /// eg 2023-10
        /// </summary>
        public string? yearMonth { get; set; }

        /// <summary>
        ///开始日期
        /// eg 2023-10-01
        /// </summary>
        public string? startDt { get; set; }

        /// <summary>
        /// 结束日期
        /// eg 2023-10-01
        /// </summary>
        public string? endDt { get; set; }
    }

    /// <summary>
    /// 计算工资 单个 Dto
    /// </summary>
    public class SalaryCalculatorSingleDto
    {
        /// <summary>
        /// 用户Id
        /// </summary>
        public int UserId { get; set; }

        /// <summary>
        /// 年月
        /// </summary>
        public string? YearMonth { get; set; }

        /// <summary>
        /// 工资日期 起
        /// </summary>
        public string? StartDate { get; set; }

        /// <summary>
        /// 工资日期 止
        /// </summary>
        public string? EndDate { get; set; }

        /// <summary>
        /// 基本工资
        /// </summary>
        public decimal Basic { get; set; }

        /// <summary>
        /// 绩效工资
        /// </summary>
        public decimal Floats { get; set; }

        /// <summary>
        /// 岗位津贴
        /// </summary>
        public decimal PostAllowance { get; set; }

        /// <summary>
        /// 保密费
        /// </summary>
        public decimal InformationSecurityFee { get; set; }

        /// <summary>
        /// 其他应付
        /// 主要用来填比如补发工资之类
        /// </summary>
        public decimal otherHandle { get; set; }

        /// <summary>
        /// 月度补贴/其他补贴
        /// </summary>
        public decimal OtherSubsidies { get; set; }

        /// <summary>
        /// 餐补
        /// </summary>
        public decimal Mealsupplement { get; set; }

        /// <summary>
        /// 个税
        /// </summary>
        public decimal WithholdingTax { get; set; }

        /// <summary>
        /// 代扣公积金
        /// </summary>                                     
        public decimal ReservedFunds { get; set; }

        /// <summary>
        /// 代扣保险
        /// </summary>                            
        public decimal WithholdingInsurance { get; set; }

        /// <summary>
        /// 其他扣款
        /// </summary>                                 
        public decimal OtherDeductions { get; set; }

    }
}