USP_REMOVECARESTRICTEDPAYMENTS_DIRECTDEBITPROCESS
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@BATCHID | uniqueidentifier | IN | |
@BATCHTYPE | tinyint | IN | |
@EXCEPTIONTABLENAME | nvarchar(max) | IN |
Definition
Copy
CREATE procedure dbo.USP_REMOVECARESTRICTEDPAYMENTS_DIRECTDEBITPROCESS
(
@BATCHID uniqueidentifier,
@BATCHTYPE tinyint,
@EXCEPTIONTABLENAME nvarchar(max)
)
as
begin
declare @SQL nvarchar(max)='',@ERRORMESSAGE nvarchar(max)='';
Create table #RESTRICTEDPAYMENTS
(
Id int identity(1,1),
PAYMENTID uniqueidentifier,
RECORDTYPE nvarchar(200),
BATCHREVENUEID uniqueidentifier,
REASON nvarchar(max)
)
begin transaction;
begin try
if(@BATCHTYPE=1)
begin
insert into #RESTRICTEDPAYMENTS(BATCHREVENUEID,PAYMENTID,RECORDTYPE,REASON)
select FTLI.FINANCIALTRANSACTIONID,BATCHMEMBERSHIPDUES.ID,'MEMBERSHIPBATCH','California state law prohibits this transaction'
from dbo.BATCHMEMBERSHIPDUES
inner join dbo.CONSTITUENT on CONSTITUENT.ID = BATCHMEMBERSHIPDUES.BILLTOCONSTITUENTID
left join dbo.ADDRESS on ADDRESS.CONSTITUENTID= BATCHMEMBERSHIPDUES.BILLTOCONSTITUENTID and ADDRESS.ISPRIMARY = 1
left join dbo.COUNTRY on COUNTRY.ID = ADDRESS.COUNTRYID
left join dbo.STATE on ADDRESS.STATEID=STATE.ID
left join MEMBERSHIPTRANSACTION MT on BATCHMEMBERSHIPDUES.EXISTINGMEMBERSHIPID=MT.MEMBERSHIPID
left join FINANCIALTRANSACTIONLINEITEM FTLI on FTLI.ID = MT.REVENUESPLITID
where BATCHMEMBERSHIPDUES.BATCHID=@BATCHID
and ((isnull(COUNTRY.ISO3166,'')='US' and isnull(STATE.ABBREVIATION,'')='CA')
or (isnull(COUNTRY.ISO3166,'')='US' and isnull(STATE.ABBREVIATION,'')='' and CAST(LEFT(ADDRESS.POSTCODE,3) as int) between 900 and 961)
or (isnull(COUNTRY.ISO3166,'')='' and isnull(STATE.ABBREVIATION,'')='' and CAST(LEFT(ADDRESS.POSTCODE,3) as int) between 900 and 961)
or (isnull(COUNTRY.ISO3166,'')='' and isnull(STATE.ABBREVIATION,'')='' and isnull(ADDRESS.POSTCODE,'')='')
or (isnull(COUNTRY.ISO3166,'')='US' and isnull(STATE.ABBREVIATION,'')='' and isnull(ADDRESS.POSTCODE,'')=''));
insert into dbo.BATCHMEMBERSHIPDUESRESTRICTED(BATCHMEMBERSHIPDUESID,TOTALAMOUNT,[DATE],TRANSACTIONCURRENCYID,BILLTOCONSTITUENTID)
select BATCHMEMBERSHIPDUES.ID,BATCHMEMBERSHIPDUES.TOTALAMOUNT,BATCHMEMBERSHIPDUES.DATE,BATCHMEMBERSHIPDUES.TRANSACTIONCURRENCYID,BATCHMEMBERSHIPDUES.BILLTOCONSTITUENTID
from dbo.BATCHMEMBERSHIPDUES inner join #RESTRICTEDPAYMENTS on BATCHMEMBERSHIPDUES.ID=#RESTRICTEDPAYMENTS.PAYMENTID;
if(@@rowcount>0)
delete BATCHMEMBERSHIPDUES from
dbo.BATCHMEMBERSHIPDUES inner join #RESTRICTEDPAYMENTS on BATCHMEMBERSHIPDUES.ID=#RESTRICTEDPAYMENTS.PAYMENTID
where BATCHID=@BATCHID ;
update REVENUESCHEDULE
set REVENUESCHEDULE.ISPENDING = 0
from dbo.REVENUESCHEDULE inner join #RESTRICTEDPAYMENTS on REVENUESCHEDULE.id=#RESTRICTEDPAYMENTS.BATCHREVENUEID;
end
else
begin
insert into #RESTRICTEDPAYMENTS(BATCHREVENUEID,PAYMENTID,RECORDTYPE,REASON)
select BATCHREVENUE.ID,case when BATCHREVENUE.REVENUEID IS NULL then BATCHREVENUE.PAYINGPENDINGREVENUEID else BATCHREVENUE.REVENUEID end As PAYMENTID,
'FINANCIALTRANSACTION','California state law prohibits this transaction'
from dbo.BATCHREVENUE
inner join dbo.CONSTITUENT on CONSTITUENT.ID = BATCHREVENUE.CONSTITUENTID
left join dbo.ADDRESS on ADDRESS.CONSTITUENTID= BATCHREVENUE.CONSTITUENTID and ADDRESS.ISPRIMARY = 1
left join dbo.COUNTRY on COUNTRY.ID = ADDRESS.COUNTRYID
left join dbo.STATE on ADDRESS.STATEID=STATE.ID
where BATCHID=@BATCHID
and ((isnull(COUNTRY.ISO3166,'')='US' and isnull(STATE.ABBREVIATION,'')='CA')
or (isnull(COUNTRY.ISO3166,'')='US' and isnull(STATE.ABBREVIATION,'')='' and CAST(LEFT(ADDRESS.POSTCODE,3) as int) between 900 and 961)
or (isnull(COUNTRY.ISO3166,'')='' and isnull(STATE.ABBREVIATION,'')='' and CAST(LEFT(ADDRESS.POSTCODE,3) as int) between 900 and 961)
or (isnull(COUNTRY.ISO3166,'')='' and isnull(STATE.ABBREVIATION,'')='' and isnull(ADDRESS.POSTCODE,'')='')
or (isnull(COUNTRY.ISO3166,'')='US' and isnull(STATE.ABBREVIATION,'')='' and isnull(ADDRESS.POSTCODE,'')=''));
if(@@rowcount>0)
delete BATCHREVENUE from dbo.BATCHREVENUE inner join #RESTRICTEDPAYMENTS on BATCHREVENUE.ID=#RESTRICTEDPAYMENTS.BATCHREVENUEID
where BATCHID=@BATCHID;
update REVENUESCHEDULE
set REVENUESCHEDULE.ISPENDING = 0
from dbo.REVENUESCHEDULE inner join #RESTRICTEDPAYMENTS on REVENUESCHEDULE.id=#RESTRICTEDPAYMENTS.PAYMENTID;
end
set @SQL='Insert into dbo.'+@EXCEPTIONTABLENAME+'(RECORDTYPE,RECORDID,REASON) select RECORDTYPE, PAYMENTID, REASON from dbo.#RESTRICTEDPAYMENTS'
exec sp_executesql @SQL
commit transaction;
end try
begin catch
set @ERRORMESSAGE=ERROR_MESSAGE()
rollback transaction;
raiserror('%s', 13, 1, @ERRORMESSAGE);
end catch
drop table if exists #RESTRICTEDPAYMENTS
end