166 lines
7.4 KiB
C#
166 lines
7.4 KiB
C#
using System;
|
|
using Payroll.BO;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using Ease.CoreV35.Model;
|
|
using System.Data.SqlClient;
|
|
using Ease.CoreV35.DataAccess;
|
|
using System.Collections.Generic;
|
|
using Ease.CoreV35.DataAccess.SQL;
|
|
|
|
|
|
namespace Payroll.Service
|
|
{
|
|
#region LoanScheduleDA
|
|
|
|
internal class LoanScheduleDA
|
|
{
|
|
#region Constructor
|
|
|
|
private LoanScheduleDA() { }
|
|
|
|
#endregion
|
|
|
|
#region Insert function
|
|
|
|
internal static void Insert(TransactionContext tc, LoanSchedule item)
|
|
{
|
|
tc.ExecuteNonQuery("INSERT INTO LoanSchedule(LoanScheduleID, LoanIssueID, ScheduleNo, OpeningBalance,"+
|
|
" INSTALLMENTPRINCIPAL, INSTALLMENTINTEREST, DUEINSTALLMENTDATE, PAYMENTDATE, DAYS, "+
|
|
" CALCULATEDDATE, ACTUALINTEREST, ClosingBalance, PaymentMode, EmployeeID,InterestRate)" +
|
|
" VALUES(%n, %n, %n, %n, %n, %n, %d, %d, %n, %d, %n, %n,%n,%n,%n)", item.ID.Integer,
|
|
item.LoanIssueID.Integer, item.ScheduleNo, item.OpeningBalance,
|
|
item.InstallmentPrincipal, item.InstallmentInterest,
|
|
item.DueInstallmentDate, DataReader.GetNullValue(item.PaymentDate),
|
|
item.Days, item.CalculatedDate, item.ActualInterest,
|
|
item.ClosingBalance, item.PaymentMode, item.EmployeeID.Integer,item.InterestRate);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Update function
|
|
|
|
internal static void Update(TransactionContext tc, LoanSchedule item)
|
|
{
|
|
tc.ExecuteNonQuery("UPDATE LoanSchedule SET LoanIssueID=%n, ScheduleNo=%n, OpeningBalance=%n, "+
|
|
" InstallmentPrincipal=%n, InstallmentInterest=%n, DueInstallmentDate=%d, PaymentDate=%d, Days=%n,"+
|
|
" CalculatedDate=%d, ActualInterest=%n, ClosingBalance=%n, paymentMode=%n,InterestRate=%n" +
|
|
" WHERE LoanScheduleID=%n", item.LoanIssueID.Integer, item.ScheduleNo,
|
|
item.OpeningBalance, item.InstallmentPrincipal, item.InstallmentInterest,
|
|
item.DueInstallmentDate, DataReader.GetNullValue(item.PaymentDate),
|
|
item.Days, item.CalculatedDate, item.ActualInterest,
|
|
item.ClosingBalance, item.PaymentMode ,item.InterestRate, item.ID.Integer);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Get Function
|
|
|
|
internal static IDataReader Get(TransactionContext tc)
|
|
{
|
|
return tc.ExecuteReader("SELECT * FROM LoanSchedule");
|
|
}
|
|
|
|
internal static IDataReader Get(TransactionContext tc, ID nID)
|
|
{
|
|
return tc.ExecuteReader("SELECT * FROM LoanSchedule WHERE LoanScheduleID=%n Order By DUEINSTALLMENTDATE", nID.Integer);
|
|
}
|
|
//internal static IDataReader Get(TransactionContext tc, int EmpID, int LoanID)
|
|
//{
|
|
// return tc.ExecuteReader("SELECT LoanIssueID,sum(InstallmentPrincipal) as total FROM LoanSchedule WHERE LoanIssueID in(select LOANISSUEID from LOANISSUE where EMPLOYEEID=%n and LoanID=%n) AND PaymentDate is null group by LoanIssueID", EmpID,LoanID);
|
|
//}
|
|
|
|
internal static DataSet GetByEmpIDANDLoanID(TransactionContext tc, int EmpID, int LoanID)
|
|
{
|
|
DataSet oLoanAmounts = new DataSet();
|
|
try
|
|
{
|
|
oLoanAmounts = tc.ExecuteDataSet("SELECT LoanIssueID,sum(InstallmentPrincipal) as total FROM LoanSchedule WHERE LoanIssueID in(select LOANISSUEID from LOANISSUE where EMPLOYEEID=%n and LoanID=%n) AND PaymentDate is null group by LoanIssueID", EmpID, LoanID);
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception(ex.Message);
|
|
}
|
|
return oLoanAmounts;
|
|
}
|
|
|
|
internal static IDataReader GetByIssueID(TransactionContext tc, ID nIssueID)
|
|
{
|
|
return tc.ExecuteReader("SELECT * FROM LoanSchedule WHERE LOANISSUEID=%n Order By DUEINSTALLMENTDATE", nIssueID.Integer);
|
|
}
|
|
|
|
internal static IDataReader GetByIssueIDAndMonth(TransactionContext tc, ID nIssueID, DateTime dateTime)
|
|
{
|
|
return tc.ExecuteReader("SELECT * FROM LoanSchedule WHERE LOANISSUEID=%n AND DUEINSTALLMENTDATE = %d Order By DUEINSTALLMENTDATE", nIssueID.Integer, dateTime);
|
|
}
|
|
internal static DataSet GetScheduleForSalary(TransactionContext tc, DateTime monthDate, ID payrollTypeID)
|
|
{
|
|
DataSet oLoanPayments = new DataSet();
|
|
try
|
|
{
|
|
oLoanPayments = tc.ExecuteDataSet(@"
|
|
SELECT li.LOANISSUEID, li.EMPLOYEEID, l.loanid, l.DESCRIPTION, ls.* FROM LoanSchedule ls,LoanIssue li, LOANBASIC l,Employee e WHERE PaymentDate IS NULL
|
|
AND ls.LOANISSUEID =li.LOANISSUEID AND l.LOANID = li.LOANID AND DUEINSTALLMENTDATE BETWEEN %d AND %d and e.EmployeeID =li.EmployeeID and e.status =1
|
|
and e.PayrollTypeId=%n order by li.EmployeeID, ScheduleNo
|
|
", GlobalFunctions.FirstDateOfMonth(monthDate), GlobalFunctions.LastDateOfMonth(monthDate), payrollTypeID.Integer);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception(ex.Message);
|
|
}
|
|
return oLoanPayments;
|
|
}
|
|
internal static DataSet GetLoanPaymentDue(TransactionContext tc, DateTime dFromDate, DateTime dToDate)
|
|
{
|
|
DataSet oLoanPayments = new DataSet();
|
|
try
|
|
{
|
|
oLoanPayments = tc.ExecuteDataSet("SELECT DISTINCT E.EmployeeNo,E.NAME,LB.DESCRIPTION,LI.LOANAMOUNT,LS.INSTALLMENTPRINCIPAL,LS.INSTALLMENTINTEREST,Ls.ClosingBalance"
|
|
+ " FROM LoanIssue LI,LoanBasic LB, LoanSchedule LS, Employee E"
|
|
+ " WHERE LB.LOANID=LI.LOANID"
|
|
+ " AND LI.LoanIssueID= LS.LoanIssueID"
|
|
+ " AND E.EmployeeID = LI.EmployeeID"
|
|
+ " AND LS.DueInstallmentDate BETWEEN %d AND %d"
|
|
+ " AND LS.PAYMENTDATE=%d"
|
|
+ " ORDER BY E.EmployeeNo", dFromDate, dToDate,dToDate);
|
|
}
|
|
catch(Exception ex)
|
|
{
|
|
throw new Exception(ex.Message);
|
|
}
|
|
return oLoanPayments;
|
|
}
|
|
#endregion
|
|
|
|
#region Delete function
|
|
|
|
internal static void Delete(TransactionContext tc, ID nIssueID)
|
|
{
|
|
tc.ExecuteNonQuery("DELETE FROM LoanSchedule WHERE LOANISSUEID=%n", nIssueID.Integer);
|
|
}
|
|
internal static void Delete2(TransactionContext tc, ID nIssueID)
|
|
{
|
|
tc.ExecuteNonQuery("DELETE FROM LoanSchedule WHERE LOANISSUEID=%n AND paymentdate is null", nIssueID.Integer);
|
|
}
|
|
|
|
internal static void UpdatePaymentDate(TransactionContext tc,
|
|
ID loanSheduleId, DateTime paymentDate, EnumLoanPaymentMode mode)
|
|
{
|
|
|
|
tc.ExecuteNonQuery("Update LoanSchedule SET paymentDate=%d, PaymentMode=%n"
|
|
+ " WHERE LoanScheduleID=%n", paymentDate, mode, loanSheduleId.Integer);
|
|
}
|
|
|
|
public static int GetNewID(TransactionContext tc, string tableName, string columnName)
|
|
{
|
|
return tc.GenerateID(tableName, columnName);
|
|
}
|
|
#endregion
|
|
|
|
|
|
}
|
|
|
|
#endregion
|
|
}
|