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

namespace OASystem.Domain.Dtos.Financial
{
    /// <summary>
    /// 日付申请 dto
    /// </summary>
    public class DailyFeePaymentDto
    {}

    /// <summary>
    /// 日付申请 分页 dto
    /// </summary>
    public class PageDailyFeePaymentDto : DtoBase
    {
        /// <summary>
        /// 费用所属公司
        /// -1 全部/未选择
        /// 其他Id 公司Id
        /// </summary>
        public int CompanyId { get; set; }

        /// <summary>
        /// 财务审核状态
        /// -1 全部/未选择
        /// 0  未审核
        /// 1  已审核
        /// 2  审核未通过
        /// </summary>
        public int FinancialAuditStatus { get; set; }

        /// <summary>
        /// 总经理审核状态
        /// -1 全部/未选择
        /// 0  未审核
        /// 1  已审核
        /// 2  审核未通过
        /// </summary>
        public int ManagerAuditStatus { get; set; }

        /// <summary>
        /// 费用类型 
        /// -1 全部/未选择
        /// 其他Id 费用类型Id
        /// </summary>
        public int FeeTypeId { get; set; }

        /// <summary>
        /// 费用子类
        /// -1 全部/未选择
        /// 其他Id 费用子类Id
        /// </summary>
        public int FeeSubTypeId { get; set; }

        /// <summary>
        /// 费用说明
        /// </summary>
        public string? FeeDesc { get; set; }

        /// <summary>
        /// 申请人Id
        /// -1 全部/未选择
        /// 其他Id 员工Id
        /// </summary>
        public int CreateUserId { get; set; }

        /// <summary>
        /// 支付标识 -1:全部 0:未支付 1:已支付
        /// </summary>
        public int IsPaySign { get; set; } = -1;

    }

    /// <summary>
    /// 日付申请 Single Search
    /// </summary>
    public class SearchDailyFeePaymentDto : DtoBase
    {
        /// <summary>
        /// Id
        /// </summary>
        public int Id { get; set; }
    }

    /// <summary>
    /// 日付申请 Add Dto
    /// </summary>
    public class AddDailyFeePaymentDto : DtoBase
    {
        /// <summary>
        /// 员工Id
        /// </summary>
        public int UserId { get; set; }

        /// <summary>
        /// 申请说明
        /// </summary>
        public string? Instructions { get; set; }

        /// <summary>
        /// 合计
        /// </summary>
        public decimal SumPrice { get; set; }

        /// <summary>
        /// 转账表识Id  存储SetDataId
        /// </summary>
        public int TransferTypeId { get; set; }

        /// <summary>
        /// 费用类型Id  存储SetDataId
        /// </summary>
        public int PriceTypeId { get; set; }

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

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

        /// <summary>
        /// 费用明细
        /// </summary>
        public List<AddDailyFeePaymentContentDto> FeeContents { get; set; }
    }

    /// <summary>
    /// 日付申请内容 Add Dto
    /// </summary>
    public class AddDailyFeePaymentContentDto
    {
        /// <summary>
        /// 费用名称
        /// </summary>
        public string? PriceName { get; set; }

        /// <summary>
        /// 数量
        /// </summary>
        public decimal Quantity { get; set; }

        /// <summary>
        /// 单价
        /// </summary>
        public decimal Price { get; set; }

        /// <summary>
        /// 单项费用合计
        /// </summary>
        public decimal ItemTotal { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string Remark { get; set; }
    }

    /// <summary>
    /// 日付申请 Edit Dto
    /// </summary>
    public class EditDailyFeePaymentDto 
    {
        /// <summary>
        /// Id
        /// </summary>
        public int Id { get; set; }
        /// <summary>
        /// 员工Id
        /// </summary>
        public int UserId { get; set; }

        /// <summary>
        /// 申请说明
        /// </summary>
        public string? Instructions { get; set; }

        /// <summary>
        /// 合计
        /// </summary>
        public decimal SumPrice { get; set; }

        /// <summary>
        /// 转账表识Id  存储SetDataId
        /// </summary>
        public int TransferTypeId { get; set; }

        /// <summary>
        /// 费用类型Id  存储SetDataId
        /// </summary>
        public int PriceTypeId { get; set; }

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


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

        /// <summary>
        /// 费用明细
        /// </summary>
        public List<EditDailyFeePaymentContentDto> FeeContents { get; set; }
    }

    public class EditDailyFeePaymentContentDto : AddDailyFeePaymentContentDto
    {
        /// <summary>
        /// Id
        /// </summary>
        public int Id { get; set; }
    }

    /// <summary>
    /// 日付申请 Del Dto
    /// </summary>
    public class DelDailyFeePaymentDto
    {
        /// <summary>
        /// Id
        /// </summary>
        public int Id { get; set; }
        /// <summary>
        /// 员工Id
        /// </summary>
        public int UserId { get; set; }

    }

    public class DP_AuditStatusDto
    {
        public int Id { get; set; }

        /// <summary>
        /// 审核类型
        /// 1 财务审核
        /// 2 总经理审核
        /// </summary>
        public int AuditType { get; set; }

        /// <summary>
        /// 审核 状态
        /// 0 未审核 1 已通过 2 未通过
        /// </summary>
        public int AuditStatus { get; set; }
    }
}