USP_REPORT_FEES

Parameters

Parameter Parameter Type Mode Description
@SALESMETHODID uniqueidentifier IN
@FEEID uniqueidentifier IN
@FEESELECTIONID uniqueidentifier IN
@FROMDATE datetime IN
@TODATE datetime IN

Definition

Copy

create procedure dbo.USP_REPORT_FEES
(
    @SALESMETHODID uniqueidentifier = null,
    @FEEID uniqueidentifier = null,
    @FEESELECTIONID uniqueidentifier = null,
    @FROMDATE datetime = null
    @TODATE datetime = null
)
as
    set nocount on;

    set @FROMDATE = cast(@FROMDATE as date)
    set @TODATE = dbo.UFN_DATE_GETLATESTTIME(@TODATE)

    declare @SALESMETHODTYPECODE tinyint = (select TYPECODE from dbo.SALESMETHOD where ID = @SALESMETHODID);

    with FEE_CTE as
        select 
            SOIF.FEEID ID, 
            sum(SOI.TOTAL) TOTAL 
        from
            dbo.UFN_SALESORDER_BETWEENDATES(@FROMDATE, @TODATE) as FILTEREDSALESORDERS
        inner join
            dbo.SALESORDER on SALESORDER.ID = FILTEREDSALESORDERS.ID
        inner join
            dbo.SALESORDERITEM as SOI on SOI.SALESORDERID = SALESORDER.ID
        inner join
            dbo.SALESORDERITEMFEE as SOIF on SOIF.ID = SOI.ID
        where
            (@SALESMETHODTYPECODE is null or SALESORDER.SALESMETHODTYPECODE = @SALESMETHODTYPECODE)
            and (@FEEID is null or SOIF.FEEID = @FEEID)
            and (@FEESELECTIONID is null or SOIF.FEEID in (select [ID] from dbo.UFN_IDSETREADER_GETRESULTS_GUID(@FEESELECTIONID)))
            and SALESORDER.STATUSCODE in (1,3,4)
            and not exists(select * from dbo.CREDITITEM_EXT where CREDITITEM_EXT.SALESORDERITEMID = SOI.ID)
        group by
            SOIF.FEEID
    )
    select 
        F.NAME NAME,
        F.TYPECODE TYPECODE,
        case F.TYPECODE
            when 0 then F.AMOUNT
            when 1 then F.[PERCENT]
        end AMOUNT,
        F.APPLIESTO,
        FEE_CTE.TOTAL
    from dbo.FEE F
    inner join FEE_CTE on FEE_CTE.ID = F.ID
    option (recompile);

    return 0;