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; }
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) { SubPrice subprice = new SubPrice(); int indexSubPriceId = dr.GetOrdinal("SubPriceId"); subprice.SubPriceId = Convert.ToInt32(dr[indexSubPriceId]); int indexSubId = dr.GetOrdinal("SubId"); if (dr["SubId"] != DBNull.Value) { subprice.SubId = Convert.ToInt32(dr[indexSubId]); } int indexFixedPrice = dr.GetOrdinal("FixedPrice"); if (dr["FixedPrice"] != DBNull.Value) { subprice.FixedPrice = Convert.ToDecimal(dr[indexFixedPrice]); } int indexFixedPriceMemo = dr.GetOrdinal("FixedPriceMemo"); if (dr["FixedPriceMemo"] != DBNull.Value) { subprice.FixedPriceMemo = Convert.ToString(dr[indexFixedPriceMemo]); } int indexWhoDoPrice = dr.GetOrdinal("WhoDoPrice"); if (dr["WhoDoPrice"] != DBNull.Value) { subprice.WhoDoPrice = Convert.ToInt32(dr[indexWhoDoPrice]); } int indexAlmostPrice = dr.GetOrdinal("AlmostPrice"); if (dr["AlmostPrice"] != DBNull.Value) { subprice.AlmostPrice = Convert.ToDecimal(dr[indexAlmostPrice]); } int indexDoPriceBeginDate = dr.GetOrdinal("DoPriceBeginDate"); if (dr["DoPriceBeginDate"] != DBNull.Value) { subprice.DoPriceBeginDate = Convert.ToDateTime(dr[indexDoPriceBeginDate]); } int indexDoPriceEndDate = dr.GetOrdinal("DoPriceEndDate"); if (dr["DoPriceEndDate"] != DBNull.Value) { subprice.DoPriceEndDate = Convert.ToDateTime(dr[indexDoPriceEndDate]); } int indexIsQP = dr.GetOrdinal("IsQP"); if (dr["IsQP"] != DBNull.Value) { subprice.IsQP = Convert.ToBoolean(dr[indexIsQP]); } int indexPriceFrom = dr.GetOrdinal("PriceFrom"); if (dr["PriceFrom"] != DBNull.Value) { subprice.PriceFrom = Convert.ToInt32(dr[indexPriceFrom]); } int indexPriceStyle1 = dr.GetOrdinal("PriceStyle1"); if (dr["PriceStyle1"] != DBNull.Value) { subprice.PriceStyle1 = Convert.ToInt32(dr[indexPriceStyle1]); } int indexPriceStyle2 = dr.GetOrdinal("PriceStyle2"); if (dr["PriceStyle2"] != DBNull.Value) { subprice.PriceStyle2 = Convert.ToInt32(dr[indexPriceStyle2]); } int indexMarginMode = dr.GetOrdinal("MarginMode"); if (dr["MarginMode"] != DBNull.Value) { subprice.MarginMode = Convert.ToInt32(dr[indexMarginMode]); } int indexMarginAmount = dr.GetOrdinal("MarginAmount"); if (dr["MarginAmount"] != DBNull.Value) { subprice.MarginAmount = Convert.ToDecimal(dr[indexMarginAmount]); } int indexMarginMemo = dr.GetOrdinal("MarginMemo"); if (dr["MarginMemo"] != DBNull.Value) { subprice.MarginMemo = Convert.ToString(dr[indexMarginMemo]); } int indexCreatorId = dr.GetOrdinal("CreatorId"); if (dr["CreatorId"] != DBNull.Value) { subprice.CreatorId = Convert.ToInt32(dr[indexCreatorId]); } int indexCreateTime = dr.GetOrdinal("CreateTime"); if (dr["CreateTime"] != DBNull.Value) { subprice.CreateTime = Convert.ToDateTime(dr[indexCreateTime]); } int indexLastModifyId = dr.GetOrdinal("LastModifyId"); if (dr["LastModifyId"] != DBNull.Value) { subprice.LastModifyId = Convert.ToInt32(dr[indexLastModifyId]); } int indexLastModifyTime = dr.GetOrdinal("LastModifyTime"); if (dr["LastModifyTime"] != DBNull.Value) { subprice.LastModifyTime = Convert.ToDateTime(dr[indexLastModifyTime]); } return subprice; }