Commit cf6700d4 authored by 黄奎's avatar 黄奎

新增报价单

parent 3a344a6b
......@@ -209,7 +209,7 @@ namespace Edu.Common.Data
}
catch (Exception ex)
{
throw new Exception();
Common.Plugin.LogHelper.Write(ex, "AnalysisQuestionTitle");
}
}
}
......
......@@ -52,10 +52,15 @@ namespace Edu.Model.ViewModel.Course
public string CustomerSourceName { get { return Common.Plugin.EnumHelper.ToName(this.CustomerSource); } }
/// <summary>
/// 创建开始
/// 创建时间--开始
/// </summary>
public string QStart { get; set; }
/// <summary>
/// 创建时间--结束
/// </summary>
public string QEnd { get; set; }
/// <summary>
/// 报价单详情列表
/// </summary>
......
using Edu.Model.ViewModel.Course;
using Edu.AOP.CustomerAttribute;
using Edu.Model.ViewModel.Course;
using Edu.Repository.Course;
using System.Collections.Generic;
using System.Linq;
using VT.FW.DB;
namespace Edu.Module.Course
......@@ -58,7 +60,8 @@ namespace Edu.Module.Course
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public bool SetCourseOfferModule(RB_Course_Offer_ViewModel model)
[TransactionCallHandler]
public virtual bool SetCourseOfferModule(RB_Course_Offer_ViewModel model)
{
bool flag = false;
......@@ -86,6 +89,52 @@ namespace Edu.Module.Course
model.Id = newId;
flag = newId > 0;
}
#region 报价单详情
var oldOfferDetailsList = GetCourseOfferDetailsListModule(new RB_Course_OfferDetails_ViewModel() { OfferId = model.Id });
//以前没有报价单信息【直接新增】
if (oldOfferDetailsList == null || (oldOfferDetailsList != null && oldOfferDetailsList.Count == 0))
{
if (model.OfferDetails != null && model.OfferDetails.Count > 0)
{
foreach (var item in model.OfferDetails)
{
item.OfferId = model.Id;
flag = course_OfferDetailsRepository.Insert(item) > 0;
}
}
}
else//以前有报价单详情
{
//现在没有报价单详情【直接删除以前的报价报价单详情】
if (model.OfferDetails == null || (model.OfferDetails != null && model.OfferDetails.Count == 0))
{
course_OfferDetailsRepository.DeleteCourseOfferDetailsRepository(model.Id);
}
//找出差异的数据
var deleteList = oldOfferDetailsList.Where(qitem => !model.OfferDetails.Any(oldItem => qitem.DetailsId == oldItem.DetailsId)).ToList();
foreach (var dItem in deleteList)
{
if (dItem.DetailsId > 0)
{
course_OfferDetailsRepository.Delete(dItem.DetailsId);
}
}
foreach (var offerItem in model.OfferDetails)
{
offerItem.OfferId = model.Id;
if (offerItem.DetailsId == 0)
{
course_OfferDetailsRepository.Insert(offerItem);
}
else
{
course_OfferDetailsRepository.Update(offerItem);
}
}
}
#endregion
return flag;
}
......@@ -97,10 +146,11 @@ namespace Edu.Module.Course
public RB_Course_Offer_ViewModel GetCourseOfferModule(object Id)
{
var model = course_OfferRepository.GetEntity<RB_Course_Offer_ViewModel>(Id);
if (model == null)
if (model != null)
{
model = new RB_Course_Offer_ViewModel();
model.OfferDetails = GetCourseOfferDetailsListModule(new RB_Course_OfferDetails_ViewModel() { OfferId = model.Id });
}
return model;
}
......
......@@ -48,5 +48,17 @@ WHERE 1=1
}
return Get<RB_Course_OfferDetails_ViewModel>(builder.ToString(), parameters).ToList();
}
/// <summary>
/// 根据报价单编号删除报价单详情
/// </summary>
/// <param name="OfferId"></param>
/// <returns></returns>
public bool DeleteCourseOfferDetailsRepository(int OfferId)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(" DELETE FROM RB_Course_OfferDetails WHERE OfferId IN({0}) ", OfferId);
return base.Execute(builder.ToString()) > 0;
}
}
}
......@@ -52,7 +52,41 @@ WHERE 1=1
builder.AppendFormat(" AND A.{0} LIKE @Name ", nameof(RB_Course_Offer_ViewModel.Name));
parameters.Add("Name", "%" + query.Name.Trim() + "%");
}
if (query.CreateBy > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Course_Offer_ViewModel.CreateBy), query.CreateBy);
}
if (!string.IsNullOrEmpty(query.CustomerInfo))
{
builder.AppendFormat(" AND A.{0} LIKE @CustomerInfo ", nameof(RB_Course_Offer_ViewModel.CustomerInfo));
parameters.Add("CustomerInfo", "%" + query.CustomerInfo.Trim() + "%");
}
if (query.CustomerSource > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Course_Offer_ViewModel.CustomerSource), (int)query.CustomerSource);
}
if (query.CustomerType > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Course_Offer_ViewModel.CustomerType), (int)query.CustomerType);
}
if (query.CustomerStatus > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Course_Offer_ViewModel.CustomerStatus), query.CustomerStatus);
}
if (query.Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Course_Offer_ViewModel.Id), query.Id);
}
if (!string.IsNullOrEmpty(query.QStart))
{
builder.AppendFormat(" AND A.{0}>='{1}' ", nameof(RB_Course_Offer_ViewModel.CreateTime), query.QStart);
}
if (!string.IsNullOrEmpty(query.QEnd))
{
builder.AppendFormat(" AND A.{0}<='{1} 23:59:59' ", nameof(RB_Course_Offer_ViewModel.CreateTime), query.QEnd);
}
}
builder.AppendFormat(" ORDER BY A.{0} DESC ", nameof(RB_Course_Offer_ViewModel.Id));
return GetPage<RB_Course_Offer_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString(), parameters).ToList();
}
......@@ -90,7 +124,27 @@ WHERE 1=1
builder.AppendFormat(" AND A.{0} LIKE @Name ", nameof(RB_Course_Offer_ViewModel.Name));
parameters.Add("Name", "%" + query.Name.Trim() + "%");
}
if (query.CreateBy > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Course_Offer_ViewModel.CreateBy), query.CreateBy);
}
if (!string.IsNullOrEmpty(query.CustomerInfo))
{
builder.AppendFormat(" AND A.{0} LIKE @CustomerInfo ", nameof(RB_Course_Offer_ViewModel.CustomerInfo));
parameters.Add("CustomerInfo", "%" + query.CustomerInfo.Trim() + "%");
}
if (query.CustomerSource > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Course_Offer_ViewModel.CustomerSource), (int)query.CustomerSource);
}
if (query.CustomerType > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Course_Offer_ViewModel.CustomerType), (int)query.CustomerType);
}
if (query.CustomerStatus > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Course_Offer_ViewModel.CustomerStatus), query.CustomerStatus);
}
}
return Get<RB_Course_Offer_ViewModel>(builder.ToString(), parameters).ToList();
}
......
......@@ -8,6 +8,7 @@ using Edu.WebApi.Filter;
using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
namespace Edu.WebApi.Controllers.Course
{
......@@ -37,6 +38,13 @@ namespace Edu.WebApi.Controllers.Course
var query = new RB_Course_Offer_ViewModel()
{
Name = base.ParmJObj.GetStringValue("Name"),
CreateBy = base.ParmJObj.GetInt("CreateBy"),
QStart = base.ParmJObj.GetStringValue("QStart"),
QEnd = base.ParmJObj.GetStringValue("QEnd"),
CustomerInfo = base.ParmJObj.GetStringValue("CustomerInfo"),
CustomerSource = (CustomerSourceEnum)base.ParmJObj.GetInt("CustomerSource"),
CustomerType = (CustomerTypeEnum)base.ParmJObj.GetInt("CustomerType"),
CustomerStatus=base.ParmJObj.GetInt("CustomerStatus")
};
query.Group_Id = base.UserInfo.Group_Id;
query.School_Id = base.UserInfo.School_Id;
......@@ -79,7 +87,7 @@ namespace Edu.WebApi.Controllers.Course
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetCourseCategory()
public ApiResult SetCourseOffer()
{
var extModel = new RB_Course_Offer_ViewModel()
{
......@@ -94,6 +102,14 @@ namespace Edu.WebApi.Controllers.Course
TotalDiscountPrice=base.ParmJObj.GetDecimal("TotalDiscountPrice"),
CustomerInfo=base.ParmJObj.GetStringValue("CustomerInfo"),
};
try
{
extModel.OfferDetails = Common.Plugin.JsonHelper.DeserializeObject<List<RB_Course_OfferDetails_ViewModel>>(base.ParmJObj.GetStringValue("OfferDetails"));
}
catch(Exception ex)
{
Common.Plugin.LogHelper.Write(ex, "SetCourseCategory");
}
extModel.CustomerStatus = 1;
extModel.CreateTime = DateTime.Now;
extModel.CreateBy = UserInfo.Id;
......@@ -115,7 +131,24 @@ namespace Edu.WebApi.Controllers.Course
{
var Id = base.ParmJObj.GetInt("Id", 0);
var extModel = courseOfferModule.GetCourseOfferModule(Id);
return ApiResult.Success(data: extModel);
var obj = new
{
extModel?.Id,
extModel?.Name,
EffectiveStart = extModel?.EffectiveStartStr,
EffectiveEnd = extModel?.EffectiveEndStr,
extModel?.CustomerType,
extModel?.CustomerSource,
extModel?.TotalOriginalPrice,
extModel?.TotalPrice,
extModel?.TotalDiscountPrice,
extModel?.CustomerInfo,
extModel?.CustomerStatus,
extModel?.CreateBy,
extModel?.CreateByName,
OfferDetails = extModel?.OfferDetails ?? new List<RB_Course_OfferDetails_ViewModel>()
};
return ApiResult.Success(data: obj);
}
/// <summary>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment