Professional Documents
Culture Documents
RPT-00054 : FI_LD_RPT_LOAN_OUTSTANDING
RPT-00182 : FI_RPT_DAILY_CASH_BOOK
RPT-00117 : FI_LD_RPT_INTEREST_INCOME_COLLECT_FEE
RPT-00149 : FI_LD_LOANFEE
==========================
-- fi_ld_loanFee '006','2022.10.01', '2022.10.31', 'KHR' CREATE PROC [dbo].
[fi_ld_loanFee] @pBranchCode NVARCHAR(6), @pDateFrm DATE, @pDateTo DATE,
@pCurrencyCode NVARCHAR(3) AS BEGIN Declare @vBranchName nvarchar(50) IF
@pBranchCode='ALL' BEGIN SET @pBranchCode='%' SET @vBranchName='ALL' END
ELSE BEGIN sET @vBranchName=isnull((select top 1 BranchName from sysBranches
where BranchCode =@pBranchCode),'') END Declare @varRpt nvarchar(150)
Declare @varCcy nvarchar(100) SET @varRpt='Selected Period From: ' +
upper(CONVERT(nvarchar(20),@pDateFrm,106)) +' To '+
upper(CONVERT(nvarchar(20),@pDateTo,106)) SET @varCcy='Selected Currency: ' +
ISNULL((select top 1 ShortName from tblCurrencies where CurrencyID =
@pCurrencyCode),'') --------------------------active client----------------
select c.LDID,MRID,c.CustomerID,r.local_surname+' '+r.local_Lastname as
ClientName ,c.AccountID ,l.category_id ,l.disburse ,l.branchCode ,c.class_id,
l.currency_id CCY , c.inactive, c.principal , isnull(c.class_name,'') WO,
c.flag into #tblActClient from tbLLDLoans l inner join tblLDClients c on
l.LDID =c.LDID inner join tblCustomers r on c.CustomerID=r.CustomerID where
l.disburse <=@pDateTo and l.currency_id like @pCurrencyCode+'%' and
l.branchCode LIKE @pBranchCode+'%' --select * from #tblActClient where
LDID='KCMLR0003291B' delete #tblActClient where flag=3 -----------------
open accrued Income------------- select c.LDID,c.MRID,sum(a.accrfeeNew) as
AccInc into #tblAccInc from #tblActClient c left join tblLDAccruedInterests a
on c.LDID=a.LDID and c.MRID =a.MRID --inner join sysLoanClasses s on
a.status=s.class_name and c.class_id=s.class_id where a.accrued_date < @pDateFrm
---and a.status='STD1' group by c.LDID,c.MRID ----------------- open accrued
Suspend------------- select c.LDID,c.MRID,sum(a.accrfeeNew) as AccSus into
#tblAccSus from #tblActClient c left join tblLDAccruedInterests a on
c.LDID=a.LDID and c.MRID =a.MRID --inner join sysLoanClasses s on
a.status=s.class_name and c.class_id=s.class_id where a.accrued_date < @pDateFrm
and a.status<>'STD1' group by c.LDID,c.MRID
----------------------------------- select a.LDID,a.MRID, isnull(i.AccInc,0) as
AccInc,ISNULL(s.AccSus,0) as AccSus into #tblAccure from #tblActClient a left
join #tblAccInc i on a.ldid=i.ldid and a.mrid=i.mrid left join #tblAccSus s on
a.ldid=s.ldid and a.mrid=s.mrid ----------------Open Collect------------- --
select c.LDID,c.MRID,isnull(sum(p.income),0) as IncCollect,isnull(sum(p.suspend),0)
as SusCollect --into #tblOpenCollect --from #tblActClient c left join
tblLDPayments p on c.LDID =p.LDID and c.MRID =p.MRID --where p.rcpt_date <
@pDateFrm and p.flag='0' --group by c.LDID,c.MRID ;with tmp_a as( select
LDID, MRID, SUM(Amount) as IncCollect from tblLDCollectByClass where TXN_TYPE ='N'
and date < @pDateFrm group by LDID, MRID ) select a.LDID, a.MRID,
isnull(b.IncCollect, 0) as IncCollect, 0 as SusCollect into #tblOpenCollect
from #tblActClient a left join tmp_a b on a.LDID = b.LDID and a.MRID = b.MRID
-----------------get Open Accrue-------------- select a.LDID,a.mrid,A.AccInc-
isnull(c.IncCollect,0) AS OpenInc,a.AccSus-ISNULL(c.SusCollect,0) as OpenSus into
#tblOpenAcrue from #tblAccure a left join #tblOpenCollect c on a.ldid=c.ldid and
a.mrid=c.mrid -------------------Current Accrued inc-------------- select
c.LDID,c.MRID ,sum(a.accrfeeNew) as CurAccInc into #tblCurInc from
#tblActClient c left join tblLDAccruedInterests a on c.LDID=a.LDID and c.MRID
=a.MRID --inner join sysLoanClasses s on a.status=s.class_name and
c.class_id=s.class_id where a.accrued_date>= @pDateFrm and a.accrued_date
<=@pDateTo --and a.status='STD1' group by c.LDID,c.MRID
-------------------Current Accrued susp-------------- select
c.LDID,c.MRID ,sum(a.accrfeeNew) as CurAccSus into #tblCurSus from
#tblActClient c left join tblLDAccruedInterests a on c.LDID=a.LDID and c.MRID
=a.MRID --inner join sysLoanClasses s on a.status=s.class_name and
c.class_id=s.class_id where a.accrued_date>=@pDateFrm and
a.accrued_date<=@pDateTo and a.status<>'STD1' group by c.LDID,c.MRID
-------------------Current Collect-------------- --select
c.LDID,c.MRID,isnull(sum(p.income),0) as ColInc,isnull(sum(p.suspend),0) as ColSus
--into #tblIncCollect --from #tblActClient c left join tblLDPayments p on c.LDID
=p.LDID and c.MRID =p.MRID --where p.rcpt_date>=@pDateFrm and
p.rcpt_date<=@pDateTo and p.flag=0 --group by c.LDID,c.MRID ;with tmp_a as(
select LDID, MRID, SUM(Amount) as ColInc from tblLDCollectByClass where TXN_TYPE
='N' and date >= @pDateFrm and date <= @pDateTo group by LDID, MRID ) select
a.LDID, a.MRID, isnull(b.ColInc, 0) as ColInc, 0 as ColSus into #tblIncCollect
from #tblActClient a left join tmp_a b on a.LDID = b.LDID and a.MRID = b.MRID
-----------------Write OFF---------------------- select
c.LDID,c.MRID,isnull(sum(p.interest),0) OpenWoInc ,isnull(sum(p.suspend),0) as
OpenWoSus ,isnull(sum(p.colfee),0) OpenWoColFee ,isnull(sum(p.newfee),0) as
OpenWonewfee , 'WO' StatusWO into #tblOpenWriteOff from #tblActClient c
left join tblLDWriteOffs p on c.LDID =p.LDID and c.MRID =p.MRID where
p.trans_date<=@pDateFrm ---and p.LDID not in ('KCMLR0003291B') group by
c.LDID,c.MRID --select * from #tblOpenWriteOff where LDID='KCMLR0003291B' --
select * from tblLDWriteOffs where LDID='KCMLR0003291B' --select * from
#tblActClient where LDID='KCMLR0003291B' select
c.LDID,c.MRID,isnull(sum(p.interest),0) WoInc ,isnull(sum(p.suspend),0) as WoSus
,isnull(sum(p.colfee),0) CurWoColFee ,isnull(sum(p.newfee),0) as CurWonewfee ,
'WO' StatusWO into #tblCurrWriteOff from #tblActClient c left join
tblLDWriteOffs p on c.LDID =p.LDID and c.MRID =p.MRID where p.trans_date>=
@pDateFrm and p.trans_date<=@pDateTo group by c.LDID,c.MRID
------------------------------------------- CREATE TABLE #tblIncomes([Branch]
[nvarchar](100) NULL,[LDID] [nvarchar](26) NULL,[MRID] [nvarchar](10) NULL,
[disburse] [nvarchar](20) NULL,[OpenInc] [nvarchar](50) NULL, [OpenSus]
[nvarchar](50) NULL,[AcrInc] [nvarchar](50) NULL,[AcrSus] [nvarchar](50) NULL,
[ColInc] [nvarchar](50) NULL,[ColSus] [nvarchar](50) NULL, [WoInc] [nvarchar](50)
NULL,[WoSus] [nvarchar](50) NULL,[EndInc] [nvarchar](50) NULL,[EndSus] [nvarchar]
(50) NULL,[Ord] [varchar](1) NULL,[Branchcode] [varchar](50) NULL, CCY
nvarchar(50), StatusWO nvarchar(50),PAYOFF nvarchar(50),Principal nvarchar(50) ,
WO nvarchar(50)) --CREATE TABLE #tblIncomes([Branch] [nvarchar](100) NULL,
[CustomerID] [nvarchar](15) NULL,[AccountID] [nvarchar](20) NULL,[ClientName]
[nvarchar](101) NULL, --[LDID] [nvarchar](26) NULL,[disburse] [nvarchar](20)
NULL,[OpenInt] [nvarchar](50) NULL,[OpenSus] [nvarchar](50) NULL,[AcrInt]
[nvarchar](50) NULL, --[AcrSus] [nvarchar](50) NULL,[ColInt] [nvarchar](50)
NULL,[ColSus] [nvarchar](50) NULL,[WoInt] [nvarchar](50) NULL,[WoSus] [nvarchar]
(50) NULL, --[EndInt] [nvarchar](50) NULL,[EndSus] [nvarchar](50) NULL,[Ord]
[varchar](1) NOT NULL) -------------------- insert into #tblIncomes ([Branch],
[Ord]) Values ('CALAMITY LOAN FEE','B') insert into #tblIncomes ([Branch],[Ord])
Values ('Branch Name: ' +@vBranchName,'D') insert into #tblIncomes ([Branch],
[Ord]) Values (@varRpt,'E') insert into #tblIncomes ([Branch],[Ord]) Values
(@varCcy,'G') insert into #tblIncomes ([Branch],[Ord]) Values (NULL,'I') insert
into #tblIncomes Values ('No','LD Number','Member ID','Disburse','Open Fee','Open
Suspen','Accrue Fee','Accrue Suspend','Collect Fee','Collect Suspend','WO Fee','WO
Suspend','End Fee','End Suspend','J','Branch Code','CCY','StatusWO', 'Inactive
Date','Principal','Status WO') --insert into #tblIncomes Values ('No','CIF','Acc
ID', 'Customer Name','LD Number','Disburse','Open Income','Open Suspen','Accrue
Income','Accrue Suspend','Collect Income','Collect Suspend','WO income','WO
Suspend','End Income','End Suspend','J') -------------------- select
dbo.GBL_Format_String( ROW_NUMBER() OVER(ORDER BY
c.branchcode,c.LDID,c.mrid),6,'0') as Branch,c.LDID ,c.MRID,
upper(CONVERT(nvarchar(20),c.disburse,13)) as disburse , isnull(o.OpenInc,0) as
OpenInc,isnull(o.OpenSus,0) as OpenSus, isnull(a.CurAccInc,0) as
AcrInc,isnull(s.CurAccSus,0) as AcrSus, ISNULL(l.ColInc,0) as
ColInc,ISNULL(l.ColSus,0) as ColSus, ISNULL(w.OpenWoInc,0) as
OpenWoInc,ISNULL(w.OpenWoSus,0) as OpenWoSus, ISNULL(m.WoInc,0) as
WoInc,ISNULL(m.WoSus,0) as WoSus, isnull(o.OpenInc,0) +isnull(a.CurAccInc,0)-
ISNULL(l.ColInc,0) as EndInc, isnull(o.OpenSus,0)+isnull(s.CurAccSus,0)-
ISNULL(l.ColSus,0)-ISNULL(w.OpenWoSus,0)-ISNULL(m.WoSus,0) as EndSus,'R' as
Ord , c.Branchcode,c.CCY ,case when isnull(m.StatusWO,'')='' then
isnull(w.StatusWO,'') else m.StatusWO end StatusWO ,
isnull(P.TRANS_DATE,c.inactive) TRANS_DATE , c.inactive, c.principal , case
when isnull(m.StatusWO,'')='' then isnull(w.StatusWO,'') else m.StatusWO end WO
into #tblint from #tblActClient c left join #tblOpenAcrue O on c.ldid=o.ldid
and c.mrid=o.mrid left join #tblCurInc a on c.ldid=a.ldid and a.mrid=c.mrid
left join #tblCurSus s on c.ldid=s.ldid and s.mrid=c.mrid left join
#tblIncCollect l on c.ldid=l.ldid and l.mrid=c.mrid left join #tblOpenWriteOff
w on c.ldid=w.ldid and c.mrid=w.mrid left join #tblCurrWriteOff m on
c.ldid=m.ldid and c.mrid=m.mrid LEFT JOIN tblLDPayOffs P on c.ldid=P.ldid and
P.mrid=c.mrid inner join sysBranches b on c.branchcode=b.BranchCode order by
c.LDID,c.MRID ------------------- --select * from #tblint where
LDID='KCMLR0003291B' --select * from #tblint where LDID='KCMLR0003291B' --
delete #tblint
where inactive is null --delete #tblint where EndInc=0 --select * from #tblint
where LDID='LD00037800703' SELECT LDID,MAX(MRID) MRID INTO #tmpGroup FROM
#tblint WHERE MRID>1 GROUP BY LDID --UPDATE #tblint SET LDID = LDID + '/' + MRID
WHERE LDID IN (SELECT LDID FROM #tmpGroup) insert into #tblIncomes
(Branch,disburse,OpenInc,OpenSus ,AcrInc ,AcrSus,ColInc ,ColSus ,WoInc ,WoSus ,EndI
nc ,EndSus,Ord) select
'999999','Total',SUM(OpenInc),SUM(OpenSus),SUM(AcrInc),SUM(AcrSus),SUM(ColInc),SUM(
ColSus),SUM(WoInc),SUM(WoSus), SUM(EndInc),SUM(EndSus),'X' from #tblint --
where OpenInc+AcrInc+ColInc+EndInc<>0 insert into #tblIncomes select
Branch,LDID,MRID,disburse,OpenInc,OpenSus ,AcrInc ,AcrSus,ColInc ,ColSus ,WoInc ,Wo
Sus ,EndInc ,EndSus,Ord,Branchcode,CCY,StatusWO,TRANS_DATE,Principal, WO from
#tblint where OpenInc+AcrInc+ColInc+OpenWoInc+EndInc<>0 select
c.Branch,c.LDID,c.MRID,c.disburse,c.Principal,c.OpenInc OpenFee,c.AcrInc AcrFee,
c.ColInc ColFee, c.EndInc EndFee,Branchcode,CCY,PAYOFF [Inactive Date], WO [Status
WO] from #tblIncomes c order by Ord,Branch --select
OrdNo,LDID,MRID,Disburse,Principal,OpenFee,FeeAccrued,FeeCollect,EndFee,CCY,Inactiv
eDate --from #LoanFee --ORDER BY ORD END
===============
====================
==========================
CREATE FUNCTION [dbo].[GBL_CCY_Convert_2Based]( @CCY nvarchar(10), @Amount
float, @ExRate float )RETURNS money --FI--WITH ENCRYPTION AS BEGIN DECLARE
@ConvertType nvarchar(1), @AmtReturn money, @BCCY nvarchar(10); SET @ConvertType
= (SELECT ConvertType FROM tblCurrencies WHERE CCY = @CCY); SET @BCCY = (SELECT
CCY FROM tblCurrencies WHERE BaseCurrency =1); IF @ConvertType ='M' BEGIN
IF @ExRate = 0 BEGIN SET @AmtReturn = 0; END ELSE BEGIN SET @AmtReturn =
@Amount * @ExRate; END; END ELSE IF @ConvertType ='D' BEGIN SET @AmtReturn
= @Amount / @ExRate; END; SET @AmtReturn =
dbo.GBL_CCY_Round(@BCCY,@AmtReturn); RETURN @AmtReturn; END;
=============================
==================================
======================================
CREATE PROCedure [dbo].[fi_sv_auth_trans] @pfrm_no nvarchar(20), @pTransID
nvarchar(30), @pRecNo nvarchar(20), @pInputter nvarchar(50), @pCheckUser
bit=0, @pAmt money=0, @pCCY nvarchar(10)='', @IsAutoAuth bit=0 as BEGIN
TRANSACTION OpenTill BEGIN TRY Declare @pAccoID nvarchar(20),@RefAccoID
nvarchar(20),@RefCate nvarchar(20),@RefCycle nvarchar(3) Declare @pSysDocNum
nvarchar(30) Declare @pValueDate Date Declare @varBaseAmt money Declare
@Varreverse_id nvarchar(30),@cheque_no nvarchar(50) declare @authNum
smallint,@num smallint,@TranAmt money,@Interst money declare @IsTheSameInputter
nvarchar(50),@ld_trans_type nvarchar(1) declare @CloseCode
nvarchar(4),@customerID nvarchar(10),@TxnCode nvarchar(10),@vTxnCode nvarchar(20)
declare @vAmount1 money SET @Interst=0 SET @RefAccoID='' SET
@num=ISNULL((SELECT TOP (1) r.num FROM dbo.tblAuthorizeFunc AS f
INNER JOIN dbo.tblRangeAuths AS r ON f.frm_no = r.frm_no WHERE
(f.frm_no = @pfrm_no) AND (f.is_auth = 1) AND (f.is_non_amt = 0) AND (@pAmt between
r.StartAmt and r.EndAmt) and (CurrencyCode =@pCCY)),0) if @IsAutoAuth=1 BEGIn
--goto en set @num=0 END IF @num >0 begin SET
@IsTheSameInputter=ISNULL((SELECT top 1 'Y' from tblBookings where RefCode=@pRecNo
and UserName=@pInputter),'N') SET @authNum=ISNULL((SELECT count(InputType) from
tblBookings where RefCode=@pRecNo and InputType='A' ),0)+1 if
@IsTheSameInputter ='Y' and @pCheckUser =1 begin SELECT 'You have no privilage
to authorize the transaction.','NoPrivilage' end else begin IF
@authNum>=@num and @pCheckUser =1 begin DECLARE v_cur1 CURSOR FOR
SELECT a.accountid,a.sysdocnum,a.value_date,isnull(a.reverse_id,'') as
reverse_id,a.trans_code,a.customerid,a.trans_amount,isnull(a.cheque_no,''),a.ld_tra
ns_type FROM tblTransactions_unauth a where trans_pair=@pTransID ORDER
BY a.sysdocnum OPEN v_cur1 FETCH NEXT FROM v_cur1 INTO
@pAccoID,@pSysDocNum,@pValueDate,@Varreverse_id,@CloseCode,@customerID,@TranAmt,@ch
eque_no,@ld_trans_type WHILE @@FETCH_STATUS = 0 BEGIN IF
@ld_trans_type='F' BEGIN IF @RefAccoID='' BEGIN select
@RefAccoID=b.AccountID,@RefCate=b.category_id,@RefCycle=b.fixed_cycle from
tblTransactions_unauth a inner join tblAccounts b on a.accountid=b.Accountid
where a.sysdocnum=@pTransID and b.acc_type='F'; END END
INSERT INTO [tblTransactions]([sysdocnum],[customerid],[accountid],[trans_date],
[value_date],[trans_code],[trans_amount],[online_bal],[is_print],[cheque_no],
[comment],[narrative],[trans_pair],[reversed],[trans_time],[branchCode],[LDID],
[ld_trans_type],[ex_buy_rate],[sell_rate],[mid_rate],[fcy_position],[lcy_position],
[gain_lost],[rec_no],[BaseAmt],[IntBranchCode],[IsNoNCash],[ref_acc_id],
[ref_cat_code],[FixedCycle],receipt_no,Referent,c_Account,d_Account) SELECT
[sysdocnum],[customerid],[accountid],[trans_date],[value_date],[trans_code],
[trans_amount],[online_bal],[is_print],[cheque_no],[comment],[narrative],
[trans_pair],[reversed],[trans_time],[branchCode],[LDID],[ld_trans_type],
[ex_buy_rate],[sell_rate],[mid_rate],[fcy_position],[lcy_position],[gain_lost],
[rec_no],[BaseAmt],[IntBranchCode],
[IsNoNCash],@RefAccoID,@RefCate,@RefCycle,receipt_no,Referent,c_Account,d_Account
FROM tblTransactions_unauth WHERE [sysdocnum]=@pSysDocNum
IF @Varreverse_id<>'' BEGIN SET @TxnCode=isnull((select top 1
trans_code from tblTransactions WHERE sysdocnum=@Varreverse_id ),0)
UPDATE tblTransactions SET reversed=1 where trans_pair =@Varreverse_id
END IF @CloseCode='19' BEGIN set @Interst=@TranAmt END
IF @CloseCode='30' BEGIN EXEC [fi_sv_set_capitalize_close_acc]
@pAccoID,@customerID,@pValueDate,@Interst END EXEC
[fi_sv_Refresh_Bal] @pAccoID,@pValueDate FETCH NEXT FROM v_cur1 INTO
@pAccoID,@pSysDocNum,@pValueDate,@Varreverse_id,@CloseCode,@customerID,@TranAmt,@ch
eque_no,@ld_trans_type END CLOSE v_cur1 DEALLOCATE v_cur1
Delete from tblTransactions_unauth where trans_pair=@pTransID SELECT
'Authorize completed.' ,'' end else begin IF @pCheckUser=0 BEGIN
SELECT 'Authorize required.','' END ELSE BEGIN SELECT 'Need another user
to authorize this transaction.','' eND end end end else begin
DECLARE v_cur2 CURSOR FOR SELECT
a.accountid,a.sysdocnum,a.value_date,isnull(a.reverse_id,'') as
reverse_id,a.trans_code,a.customerid,a.trans_amount,isnull(a.cheque_no,'') as
Cheque,a.ld_trans_type FROM tblTransactions_unauth a where trans_pair=@pTransID
ORDER BY a.sysdocnum OPEN v_cur2 FETCH NEXT FROM v_cur2 INTO
@pAccoID,@pSysDocNum,@pValueDate,@Varreverse_id,@CloseCode,@customerID,@TranAmt,@ch
eque_no,@ld_trans_type WHILE @@FETCH_STATUS = 0 BEGIN IF
@ld_trans_type='F' BEGIN IF @RefAccoID='' BEGIN select
@RefAccoID=b.AccountID,@RefCate=b.category_id,@RefCycle=b.fixed_cycle from
tblTransactions_unauth a inner join tblAccounts b on a.accountid=b.Accountid
where a.sysdocnum=@pTransID and b.acc_type='F'; END END INSERT
INTO [tblTransactions]([sysdocnum],[customerid],[accountid],[trans_date],
[value_date],[trans_code],[trans_amount],[online_bal],[is_print],[cheque_no],
[comment],[narrative],[trans_pair],[reversed],[trans_time],[branchCode],[LDID],
[ld_trans_type],[ex_buy_rate],[sell_rate],[mid_rate],[fcy_position],[lcy_position],
[gain_lost],[rec_no],[BaseAmt],[IntBranchCode],[IsNoNCash],[ref_acc_id],
[ref_cat_code],[FixedCycle],receipt_no,Referent,c_Account,d_Account) SELECT
[sysdocnum],[customerid],[accountid],[trans_date],[value_date],[trans_code],
[trans_amount],[online_bal],[is_print],[cheque_no],[comment],[narrative],
[trans_pair],[reversed],[trans_time],[branchCode],[LDID],[ld_trans_type],
[ex_buy_rate],[sell_rate],[mid_rate],[fcy_position],[lcy_position],[gain_lost],
[rec_no],[BaseAmt],[IntBranchCode],
[IsNoNCash],@RefAccoID,@RefCate,@RefCycle,receipt_no,Referent,c_Account,d_Account
FROM tblTransactions_unauth WHERE [sysdocnum]=@pSysDocNum IF
@Varreverse_id<>'' BEGIN SET @TxnCode=isnull((select top 1 trans_code from
tblTransactions WHERE sysdocnum=@Varreverse_id ),0) UPDATE tblTransactions SET
reversed=1 where trans_pair =@Varreverse_id END EXEC
[fi_sv_Refresh_Bal] @pAccoID,@pValueDate IF @CloseCode='19' BEGIN set
@Interst=@TranAmt END IF @CloseCode='30' BEGIN EXEC
[fi_sv_set_capitalize_close_acc] @pAccoID,@customerID,@pValueDate,@Interst END
FETCH NEXT FROM v_cur2 INTO
@pAccoID,@pSysDocNum,@pValueDate,@Varreverse_id,@CloseCode,@customerID,@TranAmt,@ch
eque_no,@ld_trans_type END CLOSE v_cur2 DEALLOCATE v_cur2 Delete
from tblTransactions_unauth where trans_pair=@pTransID end en: COMMIT
TRAN OpenTill; END TRY BEGIN CATCH ROLLBACK TRAN OpenTill; DECLARE
@ErrorMessage nvarchar(4000), @ErrorSeverity int, @ErrorState int; SELECT
@ErrorMessage = ERROR_MESSAGE(), @ErrorSeverity = ERROR_SEVERITY(), @ErrorState =
ERROR_STATE(); RAISERROR (@ErrorMessage, @ErrorSeverity, @ErrorState); Delete
from tblTransactions_unauth where trans_pair=@pTransID END CATCH;
====================
========================
CREATE PROCEDURE [dbo].[REPORT_TRACK_LOAN_DAILY_AREA_PRINT] @pBranchCode
nvarchar(10), @pCOID nvarchar(10), @pLdid nvarchar(250), @pDateFrom DateTime,
@pDateTo DateTime, @pCurrencyCode nvarchar(3) AS BEGIN IF
@pBranchCode='ALL' BEGIN SET @pBranchCode='%' END IF @pCurrencyCode='ALL'
BEGIN SET @pCurrencyCode='%' END IF @pCOID='ALL' BEGIN SET @pCOID='%'
END DECLARE @exchange_usd VARCHAR(100) DECLARE @exchange_thb VARCHAR(100)
SET @exchange_usd = isnull((SELECT rate FROM exchange WHERE exchange_type = 'M'
AND currency_id = 'USD'), 0); SET @exchange_thb = isnull((SELECT rate FROM
exchange WHERE exchange_type = 'M' AND currency_id = 'THB'), 0); SELECT no,
branch_code, ld_number, accountid, name, default_day, total_arrear,
currency, due_date, location, phone, co_name, CASE WHEN prin_os = 0
THEN '-' ELSE REPLACE(CONVERT(varchar(20), ROUND(prin_os, 0) , 1), '.00', '') END
prin_os, meet, customer_status, customer_rating, promise_payment_date,
number_of_repayments, action, promise_term, next_note, settle,
description FROM( SELECT ROW_NUMBER() OVER(ORDER BY a.branch_code, a.co_name)
no, a.branch_code, a.ld_number, a.accountid, a.name, a.default_day,
a.total_arrear, a.currency, a.due_date, a.location, a.phone, a.co_name,
CASE WHEN a.currency = 'KHR' THEN PARSE(a.os_prin AS MONEY) / PARSE(@exchange_usd
AS MONEY) WHEN a.currency = 'THB' THEN (PARSE(a.os_prin AS MONEY) *
PARSE(@exchange_thb AS MONEY)) / PARSE(@exchange_usd AS MONEY) WHEN
a.currency = 'USD' THEN PARSE(a.os_prin AS MONEY) END prin_os,
mm.name meet, cs.name customer_status, cr.name customer_rating,
tl.promise_payment_date, tl.number_of_repayments, aa.name [action], pt.name
promise_term, nn.name next_note, ss.name settle, tl.description FROM arrear a
LEFT JOIN track_loans tl ON a.ld_number = tl.ld_number and tl.inactive
is null LEFT JOIN meet mm ON tl.meet = mm.id and
mm.inactive is null LEFT JOIN customer_status cs ON tl.customer_status = cs.id
and cs.inactive is null LEFT JOIN customer_rating cr ON tl.customer_rating =
cr.id and cr.inactive is null LEFT JOIN [action] aa ON tl.action
= aa.id and aa.inactive is null LEFT JOIN promise_terms pt ON tl.promise_term
= pt.id and pt.inactive is null LEFT JOIN next_note nn ON tl.next_note
= nn.id and nn.inactive is null LEFT JOIN settle ss ON tl.settle
= ss.id and ss.inactive is null WHERE a.branch_code like @pBranchCode + '%' and
a.co_id like @pCOID + '%' ) T END --GO --EXEC
REPORT_TRACK_LOAN_DAILY_AREA_PRINT '', '', '', '', '', ''
=======================
========================
===============================