package com.hzs.scm.sale.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hzs.common.domain.sale.ext.SaDeliverExt;
import com.hzs.common.domain.scm.sale.IcDelSaleLog;
import com.hzs.common.domain.scm.sale.IcSaleoutH;
import com.hzs.common.domain.scm.sale.ext.IcSaleoutHExt;
import com.hzs.scm.sale.param.SaleOutParam;

import java.util.List;

/**
 * 销售出库单表头 服务类
 *
 * @author hzs
 * @since 2023-11-29
 */
public interface IIcSaleoutHService extends IService<IcSaleoutH> {

    /*
     * @description: 对发货失败的发货单第二次发货
     * @author: sui q
     * @date: 2024/5/10 13:50
     * @param: null null
     **/
    void againDeliverTransLog(IcDelSaleLog icDelSaleLog);

    /*
     * @description: 将接受到的收货单参数转换为销售出库单
     * @author: sui q
     * @date: 2023/12/1 14:04
     * @param: null null
     **/
    void executeDeliverTransSaleOutByParam(SaDeliverExt deliverExt);

    /*
     * @description: 保存销售出库单
     * @author: sui q
     * @date: 2024/3/4 11:18
     * @param: null null
     **/
    void saveSaleOutBySaDeliver(SaDeliverExt deliverExt);

    /*
     * @description: 退货保存销售退货单
     * @author: sui q
     * @date: 2024/3/4 11:02
     * @param: null null
     **/
    void saveBackSaleOutByParam(IcSaleoutHExt saleOutExt, SaleOutParam saleOutParam);

    /*
     * @description: 查询会员端显示的采购入库单
     * @author: sui q
     * @date: 2023/11/25 9:55
     * @param: null null
     **/
    List<IcSaleoutHExt> queryDisSaleOutExtCondition(SaleOutParam saleOutParam);

    /*
     * @description: 根据主键查询销售出库单
     * @author: sui q
     * @date: 2023/11/24 13:52
     * @param: null null
     **/
    IcSaleoutHExt querySaleOutExtById(SaleOutParam saleOutParam);

    /*
     * @description: 根据订单主键查询销售出库单
     * @author: sui q
     * @date: 2023/11/21 10:47
     * @param: null null
     **/
    IcSaleoutHExt querySaleOutExtId(Long pkId, Integer orderStatus);
}
