narsil/Tanshu.Accounts.SqlDAO/PaymentDAO.cs
Amritanshu b6498a7b1c Feature: Sale analysis printout changed.
Feature: Sale analysis detail printing built
2013-11-16 11:31:58 +05:30

58 lines
2.5 KiB
C#

using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using Tanshu.Accounts.Contracts;
using Tanshu.Data.DAO;
namespace Tanshu.Accounts.SqlDAO
{
public class PaymentDAO : BaseDAO
{
public PaymentDAO(IConnectionDAO connection)
: base(connection)
{ }
public void Insert(PaymentBO payment)
{
using (SqlCommand cmd = new SqlCommand(@"
SELECT @PaymentID = NEWID(), @Date = getdate();
INSERT INTO Payments (PaymentID, Date, Type, CashierID, Amount, Narration)
VALUES (@PaymentID, @Date, @Type, @CashierID, @Amount, @Narration)
"))
{
cmd.Parameters.Add("@PaymentID", System.Data.SqlDbType.UniqueIdentifier);
cmd.Parameters["@PaymentID"].Direction = System.Data.ParameterDirection.Output;
cmd.Parameters.Add("@Date", System.Data.SqlDbType.DateTime);
cmd.Parameters["@Date"].Direction = System.Data.ParameterDirection.Output;
cmd.Parameters.AddWithValue("@Type", payment.Type);
cmd.Parameters.AddWithValue("@CashierID", payment.CashierID);
cmd.Parameters.AddWithValue("@Amount", payment.Amount);
cmd.Parameters.AddWithValue("@Narration", payment.Narration);
connection.ExecuteNonQuery(cmd);
payment.PaymentID = (Guid)cmd.Parameters["@PaymentID"].Value;
}
}
public List<PaymentDisplayBO> GetPayments(Guid? userID, DateTime fromDate, DateTime toDate)
{
string query = "SELECT p.*, u.Name AS Cashier FROM Payments p INNER JOIN Users u ON p.CashierID = u.UserID WHERE Date BETWEEN @StartDate AND @FinishDate";
if (userID.HasValue)
query += " AND CashierID = @CashierID";
SqlCommand cmd = new SqlCommand(query);
cmd.Parameters.AddWithValue("@StartDate", fromDate);
cmd.Parameters.AddWithValue("@FinishDate", toDate);
if (userID.HasValue)
cmd.Parameters.AddWithValue("@CashierID", userID.Value);
return BusinessObjectDAO<PaymentDisplayBO>.GetBusinessObjects(connection.ExecuteReader(cmd));
}
public void Delete(Guid paymentID)
{
using (SqlCommand cmd = new SqlCommand("DELETE FROM Payments WHERE PaymentID = @PaymentID"))
{
cmd.Parameters.AddWithValue("@PaymentID", paymentID);
connection.ExecuteNonQuery(cmd);
}
}
}
}