/// <summary> /// 添加飞机购买订单行 /// </summary> /// <param name="price">单价</param> /// <param name="amount">数量</param> /// <param name="discount">折扣</param> /// <param name="delivery">预计交付日期</param> /// <returns>飞机购买订单行</returns> public AircraftPurchaseOrderLine AddNewAircraftPurchaseOrderLine(decimal price, int amount, decimal discount, DateTime delivery) { var aircraftPurchaseOrderLine = new AircraftPurchaseOrderLine { OrderId = Id, UnitPrice = price, Amount = amount, Discount = discount, EstimateDeliveryDate = delivery }; OrderLines.Add(aircraftPurchaseOrderLine); aircraftPurchaseOrderLine.GenerateNewIdentity(); return aircraftPurchaseOrderLine; }
/// <summary> /// 更新订单行 /// </summary> /// <param name="line">订单行DTO</param> /// <param name="orderLine">订单行</param> private void UpdateOrderLine(AircraftPurchaseOrderLineDTO line, AircraftPurchaseOrderLine orderLine) { // 获取飞机物料机型 var material = _materialRepository.GetFiltered(m => m.Id == line.AircraftMaterialId) .OfType<AircraftMaterial>() .FirstOrDefault(); if (material == null) { throw new ArgumentException("未能获取飞机物料!"); } var aircraftTypeId = material.AircraftTypeId; // 更新订单行 orderLine.UpdateOrderLine(line.UnitPrice, line.Amount, line.Discount, line.EstimateDeliveryDate); orderLine.SetCost(line.AirframePrice, line.RefitCost, line.EnginePrice); orderLine.SetAircraftMaterial(line.AircraftMaterialId); // 更新合同飞机 var contractAircraft = _contractAircraftRepository.Get(orderLine.ContractAircraftId); contractAircraft.SetAircraftType(aircraftTypeId); contractAircraft.SetRankNumber(line.RankNumber); contractAircraft.SetCSCNumber(line.CSCNumber); contractAircraft.SetSerialNumber(line.SerialNumber); contractAircraft.SetPlanAircraft(line.PlanAircraftID); }