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 { /// /// 货运费接口--SQL实现 /// public class CargageDAL:ICargageDAL { private Database _dataBase = null; public CargageDAL() { _dataBase = new Database(); } /// /// 获取货运费实体 /// /// /// /// public Model.Inquiry_Cargage GetModel(Guid inquiryId,int cargateTypeId) { string selectTarget = " * "; string fromSouce = " Inquiry_Cargage "; string condition = " FirmId='" + inquiryId.ToString() + "' and cargateTypeId=" + cargateTypeId; IList result = _dataBase.SelectModel(selectTarget, fromSouce, condition); if (result != null && result.Count > 0) { return result[0]; } else { return null; } } /// /// 获取系统设置的税费 /// /// private Model.Inquiry_Cargage GetCargageByAdmin() { string selectTarget = " * "; string fromSouce = " Inquiry_Cargage "; string condition = " FirmId='" + UtilConst.AdminFirmId + "'"; IList result = _dataBase.SelectModel(selectTarget, fromSouce, condition); if (result != null && result.Count > 0) { return result[0]; } else { return null; } } /// /// 获取厂商设置的税费 /// /// private Model.Inquiry_Cargage GetCargageByFirm(Guid firmId) { string selectTarget = " * "; string fromSouce = " Inquiry_Cargage "; string condition = " FirmId='" + firmId.ToString() + "' and CostomerId=null"; IList result = _dataBase.SelectModel(selectTarget, fromSouce, condition); if (result != null && result.Count > 0) { return result[0]; } else { return null; } } /// /// 获取厂商的客户设置的税费 /// /// 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 result = _dataBase.SelectModel(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(); } /// /// 保存货运费设置 /// /// /// 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; } /// /// 判断是否存在货运费设置 /// /// /// /// /// 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 result = _dataBase.SelectModel(selectTarget, fromSouce, condition); if (result == null || result.Count == 0) return false; else return true; } } }