using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using CY.IDAL.Inquiry;
|
using CY.Model;
|
using CY.Infrastructure.Common;
|
using System.Data.SqlClient;
|
using System.Data;
|
using CY.Model.Inquiry;
|
using System.Transactions;
|
namespace CY.SQLDAL
|
{
|
/// <summary>
|
/// 货运费接口--SQL实现
|
/// </summary>
|
public class CargageDAL:ICargageDAL
|
{
|
private Database _dataBase = null;
|
public CargageDAL()
|
{
|
_dataBase = new Database();
|
}
|
|
/// <summary>
|
/// 获取货运费实体
|
/// </summary>
|
/// <param name="firmId"></param>
|
/// <param name="customerId"></param>
|
/// <returns></returns>
|
public Model.Inquiry_Cargage GetModel(Guid inquiryId,int cargateTypeId)
|
{
|
string selectTarget = " * ";
|
string fromSouce = " Inquiry_Cargage ";
|
string condition = " FirmId='" + inquiryId.ToString() + "' and cargateTypeId=" + cargateTypeId;
|
IList<Model.Inquiry_Cargage> result = _dataBase.SelectModel<Model.Inquiry_Cargage>(selectTarget, fromSouce, condition);
|
if (result != null && result.Count > 0)
|
{
|
return result[0];
|
}
|
else
|
{
|
return null;
|
}
|
}
|
|
/// <summary>
|
/// 获取系统设置的税费
|
/// </summary>
|
/// <returns></returns>
|
private Model.Inquiry_Cargage GetCargageByAdmin()
|
{
|
string selectTarget = " * ";
|
string fromSouce = " Inquiry_Cargage ";
|
string condition = " FirmId='" + UtilConst.AdminFirmId + "'";
|
IList<Model.Inquiry_Cargage> result = _dataBase.SelectModel<Model.Inquiry_Cargage>(selectTarget, fromSouce, condition);
|
if (result != null && result.Count > 0)
|
{
|
return result[0];
|
}
|
else
|
{
|
return null;
|
}
|
}
|
|
/// <summary>
|
/// 获取厂商设置的税费
|
/// </summary>
|
/// <returns></returns>
|
private Model.Inquiry_Cargage GetCargageByFirm(Guid firmId)
|
{
|
string selectTarget = " * ";
|
string fromSouce = " Inquiry_Cargage ";
|
string condition = " FirmId='" + firmId.ToString() + "' and CostomerId=null";
|
IList<Model.Inquiry_Cargage> result = _dataBase.SelectModel<Model.Inquiry_Cargage>(selectTarget, fromSouce, condition);
|
if (result != null && result.Count > 0)
|
{
|
return result[0];
|
}
|
else
|
{
|
return null;
|
}
|
}
|
|
/// <summary>
|
/// 获取厂商的客户设置的税费
|
/// </summary>
|
/// <returns></returns>
|
private Model.Inquiry_Cargage GetCargageByCustomer(Guid firmId, Guid customerId)
|
{
|
string selectTarget = " * ";
|
string fromSouce = " Inquiry_Cargage ";
|
string condition = " FirmId='" + firmId.ToString() + "' and CostomerId='" + customerId.ToString() + "'";
|
IList<Model.Inquiry_Cargage> result = _dataBase.SelectModel<Model.Inquiry_Cargage>(selectTarget, fromSouce, condition);
|
if (result != null && result.Count > 0)
|
{
|
return result[0];
|
}
|
else
|
{
|
return null;
|
}
|
}
|
|
public bool InserModel(Infrastructure.Domain.IAggregateRoot model)
|
{
|
Model.Inquiry_Cargage trueModel = model as Model.Inquiry_Cargage;
|
if (trueModel == null)
|
{
|
return false;
|
}
|
SqlParameter[] parameters = {
|
new SqlParameter("@FirmId", SqlDbType.UniqueIdentifier,16),
|
new SqlParameter("@CargageValue", SqlDbType.Float,8),
|
new SqlParameter("@StartPrice", SqlDbType.Money,8),
|
new SqlParameter("@Operater", SqlDbType.VarChar,20),
|
new SqlParameter("@OperateTime", SqlDbType.DateTime),
|
new SqlParameter("@LastUpdateTime", SqlDbType.DateTime),
|
new SqlParameter("@CargateTypeId", SqlDbType.Int,4),
|
};
|
parameters[0].Value = trueModel.FirmId;
|
parameters[1].Value = trueModel.CargageValue;
|
parameters[2].Value = trueModel.StartPrice;
|
parameters[3].Value = trueModel.Operater;
|
parameters[4].Value = trueModel.OperateTime;
|
parameters[5].Value = trueModel.LastUpdateTime;
|
parameters[6].Value = trueModel.CargateTypeId;
|
try
|
{
|
_dataBase.Query("Inquiry_Cargage_ADD", CommandType.StoredProcedure, parameters);
|
}
|
catch (Exception ex)
|
{
|
throw ex;
|
}
|
return true;
|
}
|
|
public bool UpdateModel(Infrastructure.Domain.IAggregateRoot model)
|
{
|
Model.Inquiry_Cargage trueModel = model as Model.Inquiry_Cargage;
|
if (trueModel == null)
|
{
|
return false;
|
}
|
SqlParameter[] parameters = {
|
new SqlParameter("@FirmId", SqlDbType.UniqueIdentifier,16),
|
new SqlParameter("@CargageValue", SqlDbType.Float,8),
|
new SqlParameter("@StartPrice", SqlDbType.Money,8),
|
new SqlParameter("@Operater", SqlDbType.VarChar,20),
|
new SqlParameter("@LastUpdateTime", SqlDbType.DateTime),
|
new SqlParameter("@CargateTypeId", SqlDbType.Int,4)
|
};
|
parameters[0].Value = trueModel.FirmId;
|
parameters[1].Value = trueModel.CargageValue;
|
parameters[2].Value = trueModel.StartPrice;
|
parameters[3].Value = trueModel.Operater;
|
parameters[4].Value = trueModel.LastUpdateTime;
|
parameters[5].Value = trueModel.CargateTypeId;
|
try
|
{
|
_dataBase.Query("Inquiry_Cargage_Update", CommandType.StoredProcedure, parameters);
|
}
|
catch (Exception ex)
|
{
|
throw ex;
|
}
|
return true;
|
}
|
|
public bool DeleteModel(Infrastructure.Domain.IAggregateRoot model)
|
{
|
throw new NotImplementedException();
|
}
|
|
/// <summary>
|
/// 保存货运费设置
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
public bool SaveModel(Model.Inquiry_Cargage model, 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);
|
}
|
isSuccess = UpdateModel(model);
|
}
|
else
|
{
|
if(IsExitsCargage(inquiryCondition.ActualFirmId,model.CargateTypeId.Value))
|
{
|
isSuccess=UpdateModel(model);
|
|
}
|
else
|
{
|
isSuccess=InserModel(model);
|
}
|
}
|
if (isSuccess)
|
scope.Complete();
|
}
|
return isSuccess;
|
}
|
|
/// <summary>
|
/// 判断是否存在货运费设置
|
/// </summary>
|
/// <param name="model"></param>
|
/// <param name="firmId"></param>
|
/// <param name="customerId"></param>
|
/// <returns></returns>
|
public bool IsExitsCargage(Guid firmId, int cargateTypeId)
|
{
|
string selectTarget = " KeyId ";
|
string fromSouce = " Inquiry_Cargage ";
|
string condition = string.Empty;
|
condition = " FirmId='" + firmId.ToString() + "' and CargateTypeId=" + cargateTypeId + "";
|
IList<Model.Inquiry_Cargage> result = _dataBase.SelectModel<Model.Inquiry_Cargage>(selectTarget, fromSouce, condition);
|
if (result == null || result.Count == 0)
|
return false;
|
else
|
return true;
|
}
|
}
|
}
|