package com.jwipc.finance.model.query;

import com.jwipc.query.BaseSortQuery;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @author Al
 * @create 2024-02-20 16:33
 */
@Data
public class DeductionQuery extends BaseSortQuery {
    /**
     * 扣款记录ID
     */
    private Long Id;
    /**
     * 扣款记录ID集合
     */
    private List<Long> idList;
    private List<String> idStrList;
    /**
     * 扣款单号
     */
    private String deductionNo;
    private String erpSyncMessage;
    /**
     * 未税扣款金额
     */
    private BigDecimal dntAmount;
    /**
     * 扣款金额
     */
    private BigDecimal deductionAmount;
    /**
     * 供应商编码
     */
    private String supplierCode;
    /**
     * 供应商名称
     */
    private String supplierName;
    private String deductionIds;
    /**
     * 供应商编码/名称
     */
    private String supCodeOrName;
    /**
     * 对账单号
     */
    private String statementNo;
    /**
     * 税率编码
     */
    private String taxCode;
    /**
     * 是否使用 -1:全部 0:未使用 1:对账单使用 2:线下使用
     */
    private Integer whether;
    /**
     * 扣款类型 去数据字典的itemValue
     */
    private Integer deductionType;
    private Integer shareFlag;
    /**
     * 公司编码
     */
    private String companyCode;
    /**
     * 扣款时间(起)
     */
    private String startDate;
    /**
     * 扣款时间(至)
     */
    private String endDate;
    /**
     * 创建时间起
     */
    private String createTimeStart;
    /**
     * 创建时间至
     */
    private String createTimeEnd;
    /**
     * 返利金额范围起始
     */
    private BigDecimal dedRangeStart;
    /**
     * 返利金额范围截止
     */
    private BigDecimal dedRangeEnd;
    /**
     * 临时删除的ID 查询时需要显示出来
     */
    private String tempDelDmId;
    /**
     * 临时删除的ID集合
     */
    private List<Long> tempDelDmIdList;
    /**
     * 查询来源 1:扣款管理 2:对账单关联
     */
    private Integer queryForm;

    /**
     * 待办及提醒标识 1:历史扣款记录
     */
    private Integer dwtHistoryFlag;
    /**
     * 删除标记 0:未删除 1:已删除
     */
    private Integer deleteFlag;

    /**
     * 状态list
     */
    private List<String> statusList;
    /**
     * 单个状态查询， 页面增加
     */
    private String status;

    /**
     * erp扣款凭证号
     */
    private String erpSyncNo;


    public String getDeductionNoLike(){
        return StringUtils.isEmpty(this.deductionNo) ? null : "%" + this.deductionNo + "%";
    }

    public String getErpSyncMessageLike(){
        return StringUtils.isEmpty(this.erpSyncMessage) ? null : "%" + this.erpSyncMessage + "%";
    }

    public String getSupplierNameLike() {
        return StringUtils.isEmpty(this.supplierName) ? null : "%" + this.supplierName + "%";
    }

    public String getSupCodeOrNameLike() {
        return StringUtils.isEmpty(this.supCodeOrName) ? null : "%" + this.supCodeOrName + "%";
    }

    public String getSupCodeLike() {
        return StringUtils.isEmpty(this.supplierCode) ? null : "%" + this.supplierCode + "%";
    }

    public String getCreateTimeStart(){
        if(StringUtils.isNotEmpty(this.createTimeStart)){
            return this.createTimeStart + " 00:00:00";
        }

        return "";
    }

    public String getCreateTimeEnd(){
        if(StringUtils.isNotEmpty(this.createTimeEnd)){
            return this.createTimeEnd + " 23:59:59";
        }

        return "";
    }
}
