using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CY.IDAL.Inquiry;
using CY.Infrastructure.Common;
using System.Transactions;
using CY.Model;
using System.Data.SqlClient;
using System.Data;
using CY.Model.Inquiry;
namespace CY.SQLDAL
{
public class TaxationCostDAL : ITaxationCostDAL
{
private Database _dataBase = null;
public TaxationCostDAL()
{
_dataBase = new Database();
}
///
/// 获取税费设置
///
///
///
///
public IList GetTaxationCostList(Guid inquiryId)
{
string selectTarget = " KeyId,TaxType,TaxVale ";
string fromSouce = " Inquiry_TaxationCost";
string condition = " FirmId='" + inquiryId.ToString() + "'";
IList result = _dataBase.SelectModel(selectTarget, fromSouce, condition);
return result;
}
///
/// 获取系统设置的税费
///
///
private IList GetTaxationCostListByAdmin()
{
string selectTarget = " KeyId,TaxType,TaxVale ";
string fromSouce = " Inquiry_TaxationCost";
string condition = " FirmId='" + UtilConst.AdminFirmId + "'";
IList result = _dataBase.SelectModel(selectTarget, fromSouce, condition);
return result;
}
///
/// 获取厂商设置的税费
///
///
private IList GetTaxationCostListByFirm(Guid firmId)
{
string selectTarget = " KeyId,TaxType,TaxVale ";
string fromSouce = " Inquiry_TaxationCost";
string condition = " FirmId='" + firmId.ToString() + "' and CostomerId=null";
IList result = _dataBase.SelectModel(selectTarget, fromSouce, condition);
return result;
}
///
/// 获取厂商的客户设置的税费
///
///
private IList GetTaxationCostListByCustomer(Guid firmId, Guid customerId)
{
string selectTarget = " KeyId,TaxType,TaxVale ";
string fromSouce = " Inquiry_TaxationCost";
string condition = " FirmId='" + firmId.ToString() + "' and CostomerId='" + customerId.ToString() + "'";
IList result = _dataBase.SelectModel(selectTarget, fromSouce, condition);
return result;
}
///
/// 保存税费
///
///
///
public bool SaveTaxationCost(IList list, InquiryCondition inquiryCondition)
{
bool isSuccess = true;
using (TransactionScope scope = new TransactionScope())
{
if (inquiryCondition.ActualFirmId != Guid.Parse(UtilConst.AdminFirmId))
{
//执行复制全部询价参数数据
if (inquiryCondition.IsFirstSave())
{
new CommonInquiryHelper(_dataBase).CopyALLInquiryParameter(inquiryCondition);
}
foreach (Inquiry_TaxationCost model in list)
{
isSuccess = UpdateModel(model);
if (!isSuccess)
break;
}
}
else
{
foreach (Inquiry_TaxationCost model in list)
{
isSuccess = SaveTaxationCostBySingle(model,model.FirmId);
if (!isSuccess)
break;
}
}
if (isSuccess)
scope.Complete();
}
return isSuccess;
}
///
/// 保存一条税费
///
///
///
///
///
private bool SaveTaxationCostBySingle(Inquiry_TaxationCost model, Guid firmId)
{
if (IsExitsTaxationCost(firmId, model.TaxType))
{
return UpdateModel(model);
}
else
{
return InserModel(model);
}
}
///
/// 判断是否存在税费设置
///
///
///
///
///
public bool IsExitsTaxationCost(Guid firmId, int taxType)
{
string selectTarget = " KeyId ";
string fromSouce = " Inquiry_TaxationCost ";
string condition = string.Empty;
condition = " FirmId='" + firmId.ToString() + "' and TaxType="+taxType;
IList result = _dataBase.SelectModel(selectTarget, fromSouce, condition);
if (result == null || result.Count == 0)
return false;
else
return true;
}
///
/// 新增一条税费
///
///
///
public bool InserModel(Infrastructure.Domain.IAggregateRoot model)
{
Model.Inquiry_TaxationCost trueModel = model as Model.Inquiry_TaxationCost;
if (trueModel == null)
{
return false;
}
SqlParameter[] parameters = {
new SqlParameter("@FirmId", SqlDbType.UniqueIdentifier,16),
new SqlParameter("@TaxType", SqlDbType.Int,4),
new SqlParameter("@TaxVale", SqlDbType.Float,8),
new SqlParameter("@Operater", SqlDbType.VarChar,20),
new SqlParameter("@OperateTime", SqlDbType.DateTime),
new SqlParameter("@LastUpdateTime", SqlDbType.DateTime)
};
parameters[0].Value = trueModel.FirmId;
parameters[1].Value = trueModel.TaxType;
parameters[2].Value = trueModel.TaxVale;
parameters[3].Value = trueModel.Operater;
parameters[4].Value = trueModel.OperateTime;
parameters[5].Value = trueModel.LastUpdateTime;
try
{
_dataBase.Query("Inquiry_TaxationCost_ADD", CommandType.StoredProcedure, parameters);
}
catch (Exception ex)
{
throw ex;
}
return true;
}
///
/// 修改一条税费
///
///
///
public bool UpdateModel(Infrastructure.Domain.IAggregateRoot model)
{
Model.Inquiry_TaxationCost trueModel = model as Model.Inquiry_TaxationCost;
if (trueModel == null)
{
return false;
}
SqlParameter[] parameters = {
new SqlParameter("@FirmId", SqlDbType.UniqueIdentifier,16),
new SqlParameter("@TaxType", SqlDbType.Int,4),
new SqlParameter("@TaxVale", SqlDbType.Float,8),
new SqlParameter("@Operater", SqlDbType.VarChar,20),
new SqlParameter("@LastUpdateTime", SqlDbType.DateTime)
};
parameters[0].Value = trueModel.FirmId;
parameters[1].Value = trueModel.TaxType;
parameters[2].Value = trueModel.TaxVale;
parameters[3].Value = trueModel.Operater;
parameters[4].Value = trueModel.LastUpdateTime;
try
{
_dataBase.Query("Inquiry_TaxationCost_Update", CommandType.StoredProcedure, parameters);
}
catch (Exception ex)
{
throw ex;
}
return true;
}
public bool DeleteModel(Infrastructure.Domain.IAggregateRoot model)
{
throw new NotImplementedException();
}
}
}