public ResultModel GetDetailBySubId(UserModel user, int subId) { ResultModel result = new ResultModel(); if (subId < 1) { result.Message = "合约序号不能小于1"; return result; } List<SqlParameter> paras = new List<SqlParameter>(); SqlParameter para = new SqlParameter("@subId", SqlDbType.Int, 4); para.Value = subId; paras.Add(para); SqlDataReader dr = null; try { string cmdText = "select * from dbo.Con_SubDetail where SubId =@subId"; dr = SqlHelper.ExecuteReader(this.ConnectString, CommandType.Text, cmdText, paras.ToArray()); SubDetail subdetail = new SubDetail(); if (dr.Read()) { int indexSubDetailId = dr.GetOrdinal("SubDetailId"); subdetail.SubDetailId = Convert.ToInt32(dr[indexSubDetailId]); int indexSubId = dr.GetOrdinal("SubId"); if (dr["SubId"] != DBNull.Value) { subdetail.SubId = Convert.ToInt32(dr[indexSubId]); } int indexDiscountBase = dr.GetOrdinal("DiscountBase"); if (dr["DiscountBase"] != DBNull.Value) { subdetail.DiscountBase = Convert.ToInt32(dr[indexDiscountBase]); } int indexDiscountType = dr.GetOrdinal("DiscountType"); if (dr["DiscountType"] != DBNull.Value) { subdetail.DiscountType = Convert.ToInt32(dr[indexDiscountType]); } int indexDiscountRate = dr.GetOrdinal("DiscountRate"); if (dr["DiscountRate"] != DBNull.Value) { subdetail.DiscountRate = Convert.ToDecimal(dr[indexDiscountRate]); } int indexDelayType = dr.GetOrdinal("DelayType"); if (dr["DelayType"] != DBNull.Value) { subdetail.DelayType = Convert.ToInt32(dr[indexDelayType]); } int indexDelayRate = dr.GetOrdinal("DelayRate"); if (dr["DelayRate"] != DBNull.Value) { subdetail.DelayRate = Convert.ToDecimal(dr[indexDelayRate]); } int indexMoreOrLess = dr.GetOrdinal("MoreOrLess"); if (dr["MoreOrLess"] != DBNull.Value) { subdetail.MoreOrLess = Convert.ToDecimal(dr[indexMoreOrLess]); } int indexCreatorId = dr.GetOrdinal("CreatorId"); if (dr["CreatorId"] != DBNull.Value) { subdetail.CreatorId = Convert.ToInt32(dr[indexCreatorId]); } int indexCreateTime = dr.GetOrdinal("CreateTime"); if (dr["CreateTime"] != DBNull.Value) { subdetail.CreateTime = Convert.ToDateTime(dr[indexCreateTime]); } int indexLastModifyId = dr.GetOrdinal("LastModifyId"); if (dr["LastModifyId"] != DBNull.Value) { subdetail.LastModifyId = Convert.ToInt32(dr[indexLastModifyId]); } int indexLastModifyTime = dr.GetOrdinal("LastModifyTime"); if (dr["LastModifyTime"] != DBNull.Value) { subdetail.LastModifyTime = Convert.ToDateTime(dr[indexLastModifyTime]); } result.AffectCount = 1; result.Message = "读取成功"; result.ResultStatus = 0; result.ReturnValue = subdetail; } else { result.Message = "读取失败或无数据"; result.AffectCount = 0; } } catch (Exception ex) { result.Message = ex.Message; } finally { if (dr != null) dr.Dispose(); } return result; }
public ResultModel ContractOutCreate(NFMT.Common.UserModel user, Contract.Model.Contract contract, Model.ContractDetail contractDetail, Model.ContractPrice contractPrice, List<Model.ContractCorporationDetail> outCorps, List<Model.ContractCorporationDetail> inCorps, List<Model.ContractDept> depts, List<NFMT.Contract.Model.ContractClause> contractClauses, Model.ContractSub sub, List<Model.ContractTypeDetail> contractTypes) { ResultModel result = new ResultModel(); try { BLL.ContractSubBLL subBLL = new ContractSubBLL(); //新增主合约 contract.CreateFrom = (int)NFMT.Common.CreateFromEnum.销售合约库存创建; result = this.Create(user, contract, contractDetail, contractPrice, outCorps, inCorps, depts, contractClauses, contractTypes); if (result.ResultStatus != 0) return result; Model.Contract resultContract = result.ReturnValue as Model.Contract; if (resultContract == null || resultContract.ContractId <= 0) { result.ResultStatus = -1; result.Message = "新增主合约失败"; return result; } //新增子合约 sub.AssetId = resultContract.AssetId; sub.ContractDate = resultContract.ContractDate; sub.ContractId = resultContract.ContractId; sub.ContractLimit = resultContract.ContractLimit; sub.ContractSide = resultContract.ContractSide; sub.CreateFrom = resultContract.CreateFrom; sub.DeliveryDate = resultContract.DeliveryDate; sub.DeliveryStyle = resultContract.DeliveryStyle; sub.InitQP = resultContract.InitQP; sub.Memo = resultContract.Memo; sub.OutContractNo = resultContract.OutContractNo; sub.Premium = resultContract.Premium; sub.PriceMode = resultContract.PriceMode; sub.SettleCurrency = resultContract.SettleCurrency; sub.SubStatus = StatusEnum.已录入; sub.TradeBorder = resultContract.TradeBorder; sub.TradeDirection = resultContract.TradeDirection; sub.UnitId = resultContract.UnitId; //子合约明细 Model.SubDetail detail = new SubDetail(); detail.DelayRate = contractDetail.DelayRate; detail.DelayType = contractDetail.DelayType; detail.DiscountBase = contractDetail.DiscountBase; detail.DiscountRate = contractDetail.DiscountRate; detail.DiscountType = contractDetail.DiscountType; detail.MoreOrLess = contractDetail.MoreOrLess; detail.Status = StatusEnum.已生效; //子合约价格明细 Model.SubPrice price = new SubPrice(); price.DoPriceBeginDate = contractPrice.DoPriceBeginDate; price.DoPriceEndDate = contractPrice.DoPriceEndDate; price.FixedPrice = contractPrice.FixedPrice; price.FixedPriceMemo = contractPrice.FixedPriceMemo; price.IsQP = contractPrice.IsQP; price.MarginAmount = contractPrice.MarginAmount; price.MarginMemo = contractPrice.MarginMemo; price.MarginMode = contractPrice.MarginMode; price.PriceFrom = contractPrice.PriceFrom; price.PriceStyle1 = contractPrice.PriceStyle1; price.PriceStyle2 = contractPrice.PriceStyle2; price.Status = StatusEnum.已生效; price.WhoDoPrice = contractPrice.WhoDoPrice; price.AlmostPrice = contractPrice.AlmostPrice; //子合约抬头 List<Model.SubCorporationDetail> outSubCorps = new List<SubCorporationDetail>(); List<Model.SubCorporationDetail> inSubCorps = new List<SubCorporationDetail>(); foreach (Model.ContractCorporationDetail corp in outCorps) { Model.SubCorporationDetail subCorp = new SubCorporationDetail(); subCorp.ContractId = resultContract.ContractId; subCorp.CorpId = corp.CorpId; subCorp.CorpName = corp.CorpName; subCorp.DetailStatus = StatusEnum.已生效; subCorp.IsDefaultCorp = corp.IsDefaultCorp; subCorp.IsInnerCorp = corp.IsInnerCorp; outSubCorps.Add(subCorp); } foreach (Model.ContractCorporationDetail corp in inCorps) { Model.SubCorporationDetail subCorp = new SubCorporationDetail(); subCorp.ContractId = resultContract.ContractId; subCorp.CorpId = corp.CorpId; subCorp.CorpName = corp.CorpName; subCorp.DetailStatus = StatusEnum.已生效; subCorp.IsDefaultCorp = corp.IsDefaultCorp; subCorp.IsInnerCorp = corp.IsInnerCorp; inSubCorps.Add(subCorp); } //子合约类型明细 List<Model.SubTypeDetail> subTypes = new List<SubTypeDetail>(); foreach (Model.ContractTypeDetail contractType in contractTypes) { Model.SubTypeDetail subType = new SubTypeDetail(); subType.ContractId = resultContract.ContractId; subType.ContractType = contractType.ContractType; subType.DetailStatus = StatusEnum.已生效; subTypes.Add(subType); } result = subBLL.Create(user, sub, detail, price, outSubCorps, inSubCorps, subTypes); if (result.ResultStatus != 0) return result; Model.ContractSub resultSub = result.ReturnValue as Model.ContractSub; if (resultSub == null || resultSub.SubId <= 0) { result.ResultStatus = -1; result.Message = "新增子合约失败"; return result; } result.ReturnValue = resultContract; result.AffectCount = resultSub.SubId; } catch (Exception ex) { result.ResultStatus = -1; result.Message = ex.Message; } return result; }
public override IModel CreateModel(SqlDataReader dr) { SubDetail subdetail = new SubDetail(); int indexSubDetailId = dr.GetOrdinal("SubDetailId"); subdetail.SubDetailId = Convert.ToInt32(dr[indexSubDetailId]); int indexSubId = dr.GetOrdinal("SubId"); if (dr["SubId"] != DBNull.Value) { subdetail.SubId = Convert.ToInt32(dr[indexSubId]); } int indexDiscountBase = dr.GetOrdinal("DiscountBase"); if (dr["DiscountBase"] != DBNull.Value) { subdetail.DiscountBase = Convert.ToInt32(dr[indexDiscountBase]); } int indexDiscountType = dr.GetOrdinal("DiscountType"); if (dr["DiscountType"] != DBNull.Value) { subdetail.DiscountType = Convert.ToInt32(dr[indexDiscountType]); } int indexDiscountRate = dr.GetOrdinal("DiscountRate"); if (dr["DiscountRate"] != DBNull.Value) { subdetail.DiscountRate = Convert.ToDecimal(dr[indexDiscountRate]); } int indexDelayType = dr.GetOrdinal("DelayType"); if (dr["DelayType"] != DBNull.Value) { subdetail.DelayType = Convert.ToInt32(dr[indexDelayType]); } int indexDelayRate = dr.GetOrdinal("DelayRate"); if (dr["DelayRate"] != DBNull.Value) { subdetail.DelayRate = Convert.ToDecimal(dr[indexDelayRate]); } int indexMoreOrLess = dr.GetOrdinal("MoreOrLess"); if (dr["MoreOrLess"] != DBNull.Value) { subdetail.MoreOrLess = Convert.ToDecimal(dr[indexMoreOrLess]); } int indexCreatorId = dr.GetOrdinal("CreatorId"); if (dr["CreatorId"] != DBNull.Value) { subdetail.CreatorId = Convert.ToInt32(dr[indexCreatorId]); } int indexCreateTime = dr.GetOrdinal("CreateTime"); if (dr["CreateTime"] != DBNull.Value) { subdetail.CreateTime = Convert.ToDateTime(dr[indexCreateTime]); } int indexLastModifyId = dr.GetOrdinal("LastModifyId"); if (dr["LastModifyId"] != DBNull.Value) { subdetail.LastModifyId = Convert.ToInt32(dr[indexLastModifyId]); } int indexLastModifyTime = dr.GetOrdinal("LastModifyTime"); if (dr["LastModifyTime"] != DBNull.Value) { subdetail.LastModifyTime = Convert.ToDateTime(dr[indexLastModifyTime]); } return subdetail; }
public ResultModel ContractInUpdate(NFMT.Common.UserModel user, Contract.Model.Contract contract, Model.ContractDetail contractDetail, Model.ContractPrice contractPrice, List<Model.ContractCorporationDetail> outCorps, List<Model.ContractCorporationDetail> inCorps, List<Model.ContractDept> depts, List<NFMT.Contract.Model.ContractClause> contractClauses, Model.ContractSub sub, List<Model.ContractTypeDetail> contractTypes) { ResultModel result = new ResultModel(); try { if (contract == null) { result.ResultStatus = -1; result.Message = "合约不存在"; return result; } BLL.ContractSubBLL subBLL = new ContractSubBLL(); using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required)) { result = this.Update(user, contract, contractDetail, contractPrice, outCorps, inCorps, depts, contractClauses, contractTypes); //子合约 sub.ContractId = contract.ContractId; sub.AssetId = contract.AssetId; sub.ContractDate = contract.ContractDate; sub.ContractId = contract.ContractId; sub.ContractLimit = contract.ContractLimit; sub.ContractSide = contract.ContractSide; sub.DeliveryDate = contract.DeliveryDate; sub.DeliveryStyle = contract.DeliveryStyle; sub.InitQP = contract.InitQP; sub.Memo = contract.Memo; sub.OutContractNo = contract.OutContractNo; sub.Premium = contract.Premium; sub.PriceMode = contract.PriceMode; sub.SettleCurrency = contract.SettleCurrency; sub.TradeBorder = contract.TradeBorder; sub.TradeDirection = contract.TradeDirection; sub.UnitId = contract.UnitId; //子合约明细 Model.SubDetail detail = new SubDetail(); detail.DelayRate = contractDetail.DelayRate; detail.DelayType = contractDetail.DelayType; detail.DiscountBase = contractDetail.DiscountBase; detail.DiscountRate = contractDetail.DiscountRate; detail.DiscountType = contractDetail.DiscountType; detail.MoreOrLess = contractDetail.MoreOrLess; detail.Status = StatusEnum.已生效; //子合约价格明细 Model.SubPrice price = new SubPrice(); price.DoPriceBeginDate = contractPrice.DoPriceBeginDate; price.DoPriceEndDate = contractPrice.DoPriceEndDate; price.FixedPrice = contractPrice.FixedPrice; price.FixedPriceMemo = contractPrice.FixedPriceMemo; price.IsQP = contractPrice.IsQP; price.MarginAmount = contractPrice.MarginAmount; price.MarginMemo = contractPrice.MarginMemo; price.MarginMode = contractPrice.MarginMode; price.PriceFrom = contractPrice.PriceFrom; price.PriceStyle1 = contractPrice.PriceStyle1; price.PriceStyle2 = contractPrice.PriceStyle2; price.Status = StatusEnum.已生效; price.WhoDoPrice = contractPrice.WhoDoPrice; price.AlmostPrice = contractPrice.AlmostPrice; //子合约抬头 List<Model.SubCorporationDetail> outSubCorps = new List<SubCorporationDetail>(); List<Model.SubCorporationDetail> inSubCorps = new List<SubCorporationDetail>(); foreach (Model.ContractCorporationDetail corp in outCorps) { Model.SubCorporationDetail subCorp = new SubCorporationDetail(); subCorp.ContractId = contract.ContractId; subCorp.CorpId = corp.CorpId; subCorp.CorpName = corp.CorpName; subCorp.DetailStatus = StatusEnum.已生效; subCorp.IsDefaultCorp = corp.IsDefaultCorp; subCorp.IsInnerCorp = corp.IsInnerCorp; outSubCorps.Add(subCorp); } foreach (Model.ContractCorporationDetail corp in inCorps) { Model.SubCorporationDetail subCorp = new SubCorporationDetail(); subCorp.ContractId = contract.ContractId; subCorp.CorpId = corp.CorpId; subCorp.CorpName = corp.CorpName; subCorp.DetailStatus = StatusEnum.已生效; subCorp.IsDefaultCorp = corp.IsDefaultCorp; subCorp.IsInnerCorp = corp.IsInnerCorp; inSubCorps.Add(subCorp); } //子合约类型明细 List<Model.SubTypeDetail> subTypes = new List<SubTypeDetail>(); foreach (Model.ContractTypeDetail contractType in contractTypes) { Model.SubTypeDetail subType = new SubTypeDetail(); subType.ContractId = contract.ContractId; subType.ContractType = contractType.ContractType; subType.DetailStatus = StatusEnum.已生效; subTypes.Add(subType); } result = subBLL.Update(user, sub, detail, price, outSubCorps, inSubCorps, subTypes); scope.Complete(); } } catch (Exception ex) { result.ResultStatus = -1; result.Message = ex.Message; } return result; }