using JiepeiWMS.Common.Config;
using JiepeiWMS.Common.Enums;
using JiepeiWMS.Common.Helper;
using JiepeiWMS.Common.HttpContextUser;
using JiepeiWMS.Extends;
using JiepeiWMS.IRepository.UnitOfWork;
using JiepeiWMS.IServices;
using JiepeiWMS.Model;
using JiepeiWMS.Model.Models;
using JiepeiWMS.Model.ViewModels;
using JiepeiWMS.Services;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using SqlSugar;
using StackExchange.Profiling.Internal;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Security.Claims;
using System.Threading.Tasks;
namespace JiepeiWMS.Api.Controllers
{
[Route("api/[controller]/[action]")]
[ApiController]
[Authorize(Permissions.Name)]
public class WMPurchaseInfoController : ControllerBase
{
///
/// 服务器接口,因为是模板生成,所以首字母是大写的,自己可以重构下
///
private readonly IWMPurchaseInfoServices _wMPurchaseInfoServices;
private readonly IUser _user;
private readonly IWMWareHouseServices _WMWareHouseServices;
private readonly IDepartmentServices _DepartmentServices;
private readonly ISysUserInfoServices _sysUserInfoServices;
private readonly ILogger _logger;
private readonly IWMPurchaseQuoteDetailServices _WMPurchaseQuoteDetailServices;
private readonly IWMProductListServices _WMProductListServices;
private readonly IWMCheckInfoServices _BllCheckInfo;
private readonly IRoleServices _roleServices;
private readonly IWMProductInfoServices _WMProductInfoServices;
private readonly IWMStockLogServices _WMStockLogServices;
private readonly IWMProductSpecServices _WMProductSpecServices;
private readonly IUnitOfWork _unitOfWork;
private readonly IWMPurchaseInfoLogServices _WMPurchaseInfoLogServices;
private readonly IWMProductUnitServices _WMProductUnitServices;
#region 视图
public WMPurchaseInfoController(IWMPurchaseInfoServices WMPurchaseInfoServices
, IUser user
, ISysUserInfoServices sysUserInfoServices
, IDepartmentServices DepartmentServices
, ILogger logger
, IWMPurchaseQuoteDetailServices WMPurchaseQuoteDetailServices
, IWMProductListServices WMProductListServices
, IWMCheckInfoServices BllCheckInfo
, IRoleServices roleServices
, IWMProductInfoServices WMProductInfoServices
, IWMStockLogServices WMStockLogServices
, IWMWareHouseServices WMWareHouseServices
, IWMProductSpecServices WMProductSpecServices
, IUnitOfWork unitOfWork
, IWMPurchaseInfoLogServices WMPurchaseInfoLogServices
, IWMProductUnitServices WMProductUnitServices)
{
_wMPurchaseInfoServices = WMPurchaseInfoServices;
_user = user;
_sysUserInfoServices = sysUserInfoServices;
_DepartmentServices = DepartmentServices;
_logger = logger;
_WMPurchaseQuoteDetailServices = WMPurchaseQuoteDetailServices;
_WMProductListServices = WMProductListServices;
_BllCheckInfo = BllCheckInfo;
_roleServices = roleServices;
_WMProductInfoServices = WMProductInfoServices;
_WMStockLogServices = WMStockLogServices;
_WMWareHouseServices = WMWareHouseServices;
_WMProductSpecServices = WMProductSpecServices;
_unitOfWork = unitOfWork;
_WMPurchaseInfoLogServices = WMPurchaseInfoLogServices;
_WMProductUnitServices = WMProductUnitServices;
}
///
/// 采购列表
///
/// 默认显示第几页
/// 入库编号
/// 状态查询
/// 开始时间
/// 结束时间
/// 一页多少条数据
///
[HttpGet]
public async Task>> Get(int page = 1, string key = "", string StatusOptions = "", DateTime? startdate = null, DateTime? enddate = null, int intPageSize = 20)
{
Expression> whereExpression = w => w.Id > 0;
//int Status = -1;
if (string.IsNullOrEmpty(key) || string.IsNullOrWhiteSpace(key))
{
key = "";
}
whereExpression = whereExpression.And(w => w.PurchaseCode.Contains(key.Trim()));
//var b = await _sysUserInfoServices.IsUserIdIntoRoleName(_user.ID, RoleConfig.SaleCangKuStaff);
//if (b) { Status = EnumWMPurchaseStatus.CheckedPass.GetHashCode(); }
//状态筛选
if (!string.IsNullOrWhiteSpace(StatusOptions))
{
whereExpression = whereExpression.And(w => w.Status == StatusOptions.ObjToInt());
}
whereExpression = whereExpression.And(w => w.Status != -1);
//开始时间
if (startdate != null)
{
whereExpression = whereExpression.And(w => w.CreateTime >= startdate);
}
//结束时间
if (enddate != null)
{
whereExpression = whereExpression.And(w => w.CreateTime <= enddate);
}
//获取角色信息,判断是否数据展示
var role = string.Join(",", _user.GetClaimValueByType(ClaimTypes.Role));
if (role.Contains("SuperAdmin") || role.Contains("仓库管理员") || role.Contains("超级管理员"))
{
whereExpression = whereExpression.And(w => w.Id > 0);
}
if (role.Contains("审批人员"))
{
//显示对应审批人对应数据
whereExpression = whereExpression.And(w => w.CheckAdminId == _user.ID);
}
if (role.Contains("生产人员"))
{
//根据采购申请人能看到自己发起的采购单
whereExpression = whereExpression.And(w => w.EmployeeId == _user.ID);
}
//显示当前操作人的主体ID
whereExpression = whereExpression.And(w => w.SysOrgId == _user.SysOrgId);
//var data = await _wMPurchaseInfoServices.QueryPage(a => a.Type >= 0 && ((a.PurchaseCode != null && a.PurchaseCode.Contains(key))), page, intPageSize, " Id desc ");
//var a = _wMPurchaseInfoServices.QueryTable("");
//var WmpurchaseUserDeparment = await _wMPurchaseInfoServices.QueryMuchTablePurchaseInfo();
//分页加多表查询
var PageList = await _wMPurchaseInfoServices.QueryTabsPage(
(w, su, su2, dp, wm) => new object[]
{
JoinType.Left,su.uID==w.EmployeeId,
JoinType.Left,su2.uID==w.CheckAdminId,
JoinType.Left,su.DepartmentId==dp.Id,
JoinType.Left,w.WareHouseId==wm.Id,
},
(w, su, su2, dp, wm) => new WMPurchaseInfo()
{
Id = w.Id,
Type = w.Type,
CheckAdminId = w.CheckAdminId,
WareHouseId = w.WareHouseId,
CheckKey = w.CheckKey,
EmployeeId = w.EmployeeId,
CheckRank = w.CheckRank,
CheckRemark = w.CheckRemark,
PurchaseCode = w.PurchaseCode,
Status = w.Status,
CreateTime = w.CreateTime,
UpdateTime = w.UpdateTime,
UName = su.uRealName,
DName = dp.Name,
Remark = w.Remark,
ProductUse = w.ProductUse,
WareHouseName = wm.Name,
CheckName = su2.uRealName,
SysOrgId = w.SysOrgId
},
whereExpression,
page,
intPageSize,
" w.Id desc"
);
//获取审批枚举状态
var dicStatus = typeof(EnumWMPurchaseStatus)._GetValueDescriptionDicFromEnumType();
foreach (var item in PageList.data)
{
string name;
item.StatusName = dicStatus.TryGetValue((EnumWMPurchaseStatus)item.Status, out name) ? name : string.Empty;
}
//获取采购枚举状态
var dicType = typeof(EnumWMPurchaseType)._GetValueDescriptionDicFromEnumType();
foreach (var item in PageList.data)
{
string name;
item.TypeName = dicType.TryGetValue((EnumWMPurchaseType)item.Type, out name) ? name : string.Empty;
item.PurchaseQuoteDetailList = await _WMPurchaseQuoteDetailServices.Query(w => w.PurchaseId == item.Id);
foreach (var item1 in item.PurchaseQuoteDetailList)
{
//商品信息表
var ProductModel = await _WMProductListServices.GetModel(w => w.Id == item1.ProductId);
if (ProductModel != null)
{
item1.ProductName = ProductModel.Name;
//商品单位信息
var ProductSpecModel = await _WMProductSpecServices.GetModel(w => w.Id == ProductModel.SpecIds);
if (ProductSpecModel != null)
{
item1.ProductSpec = ProductSpecModel.Name;
}
}
}
}
//data.data = WmpurchaseUserDeparment;
return new MessageModel>()
{
msg = "获取成功",
success = PageList.dataCount > 0,
response = PageList
};
}
///
/// 采购详情
///
///
///
[HttpGet]
public async Task> Detail(int Id = 0)
{
try
{
var model = await _wMPurchaseInfoServices.GetModel(w => w.Id == Id);
model.PurchaseQuoteDetailList = await _WMPurchaseQuoteDetailServices.Query(w => w.PurchaseId == Id);
//查出仓库模型
var WMWareHouseModel = await _WMWareHouseServices.GetModel(w => w.Id == model.WareHouseId);
//查出用户模型
var UserModel = await _sysUserInfoServices.GetModel(u => u.uID == model.EmployeeId);
if (UserModel != null)
model.UName = UserModel.uRealName;
model.CheckName = UserModel.uRealName;
//当前操作人
model.currentID = _user.ID;
//将当前时间赋值给扩展字段在前台展示出来
model.Time = DateTime.Now;
//部门名称
var DepartmentModel = await _DepartmentServices.GetModel(d => d.Id == UserModel.DepartmentId);
if (DepartmentModel != null)
model.DName = DepartmentModel.Name;
if (WMWareHouseModel != null)
model.WareHouseName = WMWareHouseModel.Name;
//获取审批枚举状态
var dicStatus = typeof(EnumWMPurchaseStatus)._GetValueDescriptionDicFromEnumType();
string name;
model.StatusName = dicStatus.TryGetValue((EnumWMPurchaseStatus)model.Status, out name) ? name : string.Empty;
//获取采购枚举状态
var dicType = typeof(EnumWMPurchaseType)._GetValueDescriptionDicFromEnumType();
model.TypeName = dicType.TryGetValue((EnumWMPurchaseType)model.Type, out name) ? name : string.Empty;
//获取审批流
var checkModel = await _BllCheckInfo.GetModel(w => w.SysOrgId == _user.SysOrgId && w.Key == model.CheckKey);
if (checkModel != null)
{
var rankList = JsonHelper.DeserializeObject(checkModel.Json);
var checkarr = rankList.checkRankList.Select(w => w.AdminName).ToArray();
model.CheckStrStep = checkarr.ToList();
model.CheckRankStep = model.CheckRank == 0 ? checkarr.Count() : (model.CheckRank - 1);
}
else
{
model.CheckStrStep = new List();
model.CheckRankStep = 0;
}
foreach (var item in model.PurchaseQuoteDetailList)
{
//商品信息表
var ProductModel = await _WMProductListServices.GetModel(w => w.Id == item.ProductId);
if (ProductModel != null)
{
item.ProductName = ProductModel.Name;
item.ProductCode = ProductModel.Code;
//计算总价
item.ActualAmount = item.ActualAmount + (item.Quantity * ProductModel.Price);
}
else
{
item.ActualAmount = item.ActualAmount + item.Amount.Value;
}
//商品关联表
var _productInfo = await _WMProductInfoServices.GetModel(w => w.ProductListId == item.ProductId && w.WareHouseId == item.WareHouseId);
if (_productInfo != null)
{
item.StockNum = _productInfo.Quantity != null ? _productInfo.Quantity.Value : 0;
item.WeekNum = await _WMStockLogServices.GetStockNumByDateDay(item.ProductId, _productInfo.Id, 7, 1);
item.MonthNum = await _WMStockLogServices.GetStockNumByDateDay(item.ProductId, _productInfo.Id, 30, 1);
//商品单位信息
var ProductSpecModel = await _WMProductSpecServices.GetModel(w => w.Id == _productInfo.ProductSpecId);
if (ProductSpecModel != null)
{
item.ProductSpec = ProductSpecModel.Name;
}
}
if (model.Type == 1)
{
item.ActualAmount = item.ActualAmount + item.Amount.Value;
}
item.Quantity = item.Quantity;
item.CheckNum = item.Quantity;
item.PurchaseQUoteDetailRemark = item.Remark;
item.Checked = 1;
var dicQUoteDetailStatus = typeof(EnumWMPurchaseDetailStatus)._GetValueDescriptionDicFromEnumType();
string Qname;
item.PurchaseQUoteDetailStatusName = dicQUoteDetailStatus.TryGetValue((EnumWMPurchaseDetailStatus)item.Status, out Qname) ? Qname : string.Empty;
}
return new MessageModel()
{
msg = "获取成功",
success = true,
response = model
};
}
catch (Exception e)
{
_logger.LogError(e, e.Message);
return new MessageModel()
{
msg = e.Message,
success = false
};
}
}
///
/// 采购申请操作日志
///
///
///
///
///
[HttpGet]
public async Task>> GetPurchaseInfoLog(int page = 1, int intPageSize = 20, int Id = 0)
{
Expression> whereExpression = wlog => wlog.OrderId == Id;
whereExpression = whereExpression.And(wlog => wlog.OrderId == Id);
var PageList = await _WMPurchaseInfoLogServices.QueryTabsPage
(
(wlog, s, w) => new object[]
{
JoinType.Left,wlog.AdminId==s.uID,
JoinType.Left,wlog.OrderId==w.Id,
},
(wlog, s, w) => new WMPurchaseInfoLog
{
AdminId = wlog.AdminId,
Content = wlog.Content,
CreateTime = wlog.CreateTime,
OrderId = wlog.OrderId,
Type = wlog.Type,
UName = s.uRealName,
},
whereExpression,
page,
intPageSize,
"wlog.Id desc"
);
return new MessageModel>()
{
msg = "获取成功",
success = PageList.dataCount > 0,
response = PageList
};
}
#endregion
#region 操作
///
/// 添加
///
///
///
[HttpPost]
public async Task> Post([FromBody] WMPurchaseInfo Model)
{
var msg = string.Empty;
var data = new MessageModel();
try
{
//创建事务
_unitOfWork.BeginTran();
int PurchaseId = 0;
//根据当前操作人查出用户的model
var UserModel = await _sysUserInfoServices.GetModel(u => u.uID == _user.ID);
//查出审批流
var checkModel = await _BllCheckInfo.GetModel(w => w.SysOrgId == _user.SysOrgId && w.Key == "CGB");
if (checkModel != null)
{
Model.CheckKey = checkModel.Key;
}
else
{
data.msg = "无法获取审批流,请联系管理员!";
throw new Exception("无法获取审批流,请联系管理员!");
}
if (string.IsNullOrEmpty(checkModel.Json))
{
data.msg = "审批流为空,请联系管理员!";
throw new Exception("审批流为空,请联系管理员!");
}
var rankList = JsonHelper.DeserializeObject(checkModel.Json);
var CheckRankModel = rankList.checkRankList.Where(w => w.CheckRank == 1).FirstOrDefault();
if (CheckRankModel == null)
{
data.msg = "无法获取审批人员信息,请联系管理员!";
throw new Exception("无法获取审批人员信息,请联系管理员!");
}
Model.CheckAdminId = CheckRankModel.AdminId;
Model.CheckRank = 1;
if (Model.Type == 1)
Model.Status = EnumWMPurchaseStatus.WaitCheck.GetHashCode();
else
{
var rolemodel = await _roleServices.GetModel(r => r.CreateId == _user.ID);
if (rolemodel != null && rolemodel.Name == RoleConfig.SaleCangKuStaff)
Model.Status = EnumWMPurchaseStatus.Storageing.GetHashCode();
}
Model.EmployeeId = _user.ID;
//赋值主体
Model.SysOrgId = _user.SysOrgId;
int code = await _wMPurchaseInfoServices.GetMaxId();
Model.PurchaseCode = "WIN000" + (code + 1);
if (Model.noMatchData.Count <= 0)
{
data.msg = "请选择商品信息!";
throw new Exception("请选择商品信息!");
}
if (Model.ProductUse == null)
{
data.msg = "请填写产品用途!";
throw new Exception("请填写产品用途!");
}
//获取所有商品
var tablePDData = Model.noMatchData;
foreach (var item in tablePDData)
{
if (item.WNum <= 0)
{
data.msg = "请填写物料数量!";
throw new Exception("请填写物料数量!");
}
WMPurchaseQuoteDetail PurchaseQuoteDetail = new WMPurchaseQuoteDetail();
PurchaseQuoteDetail.PurchaseId = code;
PurchaseQuoteDetail.ProductId = item.Id;
PurchaseQuoteDetail.TypeId = 1;
//添加采购单以当前主体id为主
PurchaseQuoteDetail.SysOrgId = _user.SysOrgId;
//判断表示是否需要审核
var modeProductList = await _WMProductListServices.GetModel(w => w.Id == item.Id);
var ProductUnitModel = await _WMProductUnitServices.GetModel(w => w.Id == modeProductList.Unit);
if (modeProductList != null && modeProductList.IsChecked == false)
{
Model.Status = EnumWMPurchaseStatus.CheckedPass.GetHashCode();
Model.Remark = Model.Remark;
Model.CheckAdminId = 0;
PurchaseQuoteDetail.Status = EnumWMPurchaseDetailStatus.CheckedPass.GetHashCode();
PurchaseQuoteDetail.PurchaseId = 0;
PurchaseQuoteDetail.CheckNum = item.WNum;
PurchaseQuoteDetail.Price = 0;
PurchaseQuoteDetail.Amount = 0;
PurchaseQuoteDetail.CreateTime = DateTime.Now;
PurchaseQuoteDetail.Remark = Model.Remark;
PurchaseQuoteDetail.PurchaseUnit = ProductUnitModel.Unit;
PurchaseQuoteDetail.WareHouseId = Model.WareHouseId;
PurchaseQuoteDetail.DepartmentId = UserModel.DepartmentId.Value;
}
else
{
PurchaseQuoteDetail.Status = EnumWMPurchaseDetailStatus.WaitCheck.GetHashCode();
PurchaseQuoteDetail.PurchaseId = 0;
PurchaseQuoteDetail.Price = 0;
PurchaseQuoteDetail.Amount = 0;
PurchaseQuoteDetail.CreateTime = DateTime.Now;
PurchaseQuoteDetail.Quantity = item.WNum;
PurchaseQuoteDetail.WareHouseId = Model.WareHouseId;
PurchaseQuoteDetail.DepartmentId = UserModel.DepartmentId.Value;
if (ProductUnitModel != null)
{
PurchaseQuoteDetail.PurchaseUnit = ProductUnitModel.Unit;
}
else
{
PurchaseQuoteDetail.PurchaseUnit = "";
}
}
PurchaseQuoteDetail.WareHouseId = Model.WareHouseId;
PurchaseQuoteDetail.DepartmentId = UserModel.DepartmentId.Value;
PurchaseQuoteDetail.CreateTime = DateTime.Now;
PurchaseQuoteDetail.PurchaseId = code + 1;
PurchaseQuoteDetail.ProductId = item.Id;
var pid = await _WMPurchaseQuoteDetailServices.Add(PurchaseQuoteDetail);
}
//添加操作日志
_wMPurchaseInfoServices.AddLog(1, _user.ID, code + 1, "【添加采购】设置状态为" + ((EnumWMPurchaseStatus)Model.Status)._GetDescriptionByEnumValue());
var id = await _wMPurchaseInfoServices.Add(Model);
data.success = id > 0;
_unitOfWork.CommitTran();
if (data.success)
{
data.response = id.ObjToString();
data.msg = "采购单添加成功!";
}
}
catch (Exception e)
{
_unitOfWork.RollbackTran();
_logger.LogError(e, e.Message);
return data;
}
return data;
}
///
/// 审核
///
///
///
[HttpPut]
public async Task> Put([FromBody] WMPurchaseInfo request)
{
bool flag = false;
var NewPurchaseQuoteDetailList = new List();
var data = new MessageModel();
try
{
_unitOfWork.BeginTran();
if (request.Id > 0)
{
var model = await _wMPurchaseInfoServices.GetModel(w => w.Id == request.Id);
if (model.Status == EnumWMPurchaseStatus.CheckedNoPass.GetHashCode())
{
data.msg = "当前订单已审核,为审核不通过!";
throw new Exception("当前订单已审核,为审核不通过!");
}
if (model != null)
{
var checkModel = await _BllCheckInfo.GetModel(w => w.SysOrgId == _user.SysOrgId && w.Key == model.CheckKey);
if (checkModel == null)
{
data.msg = "暂无该部门审批流,请先申请配置";
throw new Exception("暂无该部门审批流,请先申请配置");
}
if (_user.ID != model.CheckAdminId)
{
data.msg = "非审批人,审批失败!";
throw new Exception("非审批人,审批失败!");
}
//审批数量判断
var rankList = JsonHelper.DeserializeObject(checkModel.Json);
foreach (var item in rankList.checkRankList)
{
//审批人跟审批级别是否一一对应
if (!flag)
{
if (model.CheckRank == item.CheckRank)
{
flag = true;
//设置下次审批
int index = rankList.checkRankList.IndexOf(item) + 1; //index为索引值
if (rankList.checkRankList.Count > 1 && rankList.checkRankList.Count > index)
{
model.CheckRank = rankList.checkRankList[index].CheckRank;
model.CheckAdminId = rankList.checkRankList[index].AdminId;
}
//获取所有商品
var tablePDData = request.PurchaseQuoteDetailList;
if (tablePDData.Count <= 0)
{
data.msg = "暂无待审核得商品";
throw new Exception("暂无待审核得商品");
}
foreach (var _tableItem in tablePDData)
{
if (_tableItem.Checked == 0)
{
data.msg = "请选择审核状态";
throw new Exception("请选择审核状态");
}
if (_tableItem.CheckNum <= 0)
{
data.msg = "审批数量不能小于0";
throw new Exception("审批数量不能小于0");
}
var ProductListMdoel = await _WMProductListServices.QueryById(_tableItem.ProductId);
var PurchaseQuoteDetailInfo = await _WMPurchaseQuoteDetailServices.GetModel(w => w.Id == _tableItem.Id);
if (PurchaseQuoteDetailInfo == null || PurchaseQuoteDetailInfo.Status == EnumWMPurchaseDetailStatus.CheckedNoPass.GetHashCode())
continue;
#region 采购数量审批
if (_tableItem.Checked == 2 || ProductListMdoel.IsUse == false)
{
PurchaseQuoteDetailInfo.Remark = _tableItem.PurchaseQUoteDetailRemark;
PurchaseQuoteDetailInfo.Status = EnumWMPurchaseDetailStatus.CheckedNoPass.GetHashCode();
model.CheckAdminId = 0;//审核不通过将审批id设置为0
}
else
{
if (rankList.checkRankList.Count > 1 && rankList.checkRankList.Count > index)
PurchaseQuoteDetailInfo.Status = EnumWMPurchaseDetailStatus.Checking.GetHashCode();
else
PurchaseQuoteDetailInfo.Status = EnumWMPurchaseDetailStatus.CheckedPass.GetHashCode();
PurchaseQuoteDetailInfo.Quantity = _tableItem.CheckNum.Value;
PurchaseQuoteDetailInfo.CheckNum = _tableItem.CheckNum.Value;
PurchaseQuoteDetailInfo.Remark += _tableItem.PurchaseQUoteDetailRemark;
}
#endregion
NewPurchaseQuoteDetailList.Add(PurchaseQuoteDetailInfo);
var pid = await _WMPurchaseQuoteDetailServices.Update(PurchaseQuoteDetailInfo);
}
#region 修改审批订单状态
//审核中
var CheckingList = NewPurchaseQuoteDetailList.Where(p => p.Status == EnumWMPurchaseDetailStatus.Checking.GetHashCode()).ToList();
//审核不通过
var CheckedNoPassList = NewPurchaseQuoteDetailList.Where(p => p.Status == EnumWMPurchaseDetailStatus.CheckedNoPass.GetHashCode()).ToList();
//审核通过
var CheckedPassList = NewPurchaseQuoteDetailList.Where(p => p.Status == EnumWMPurchaseDetailStatus.CheckedPass.GetHashCode()).ToList();
var listCount = CheckingList.Count + CheckedNoPassList.Count + CheckedPassList.Count;
if (CheckingList.Count > 0)
model.Status = EnumWMPurchaseStatus.Checking.GetHashCode();
else
{
if ((listCount == NewPurchaseQuoteDetailList.Count) && CheckedPassList.Count > 0)
{
model.Status = EnumWMPurchaseStatus.CheckedPass.GetHashCode();
model.CheckAdminId = 0;
model.CheckRank = 0;
}
else
{
if (listCount == NewPurchaseQuoteDetailList.Count)
{
model.Status = EnumWMPurchaseStatus.CheckedNoPass.GetHashCode();
model.CheckAdminId = 0;
//model.CheckRank = 0;
}
}
}
#endregion
}
}
}
}
_wMPurchaseInfoServices.AddLog(1, _user.ID, model.Id, "【采购审批】设置状态为" + ((EnumWMPurchaseStatus)model.Status)._GetDescriptionByEnumValue());
data.success = await _wMPurchaseInfoServices.Update(model);
_unitOfWork.CommitTran();
if (data.success)
{
data.msg = "审核成功";
data.response = model?.Id.ObjToString();
}
}
}
catch (Exception e)
{
_unitOfWork.RollbackTran();
_logger.LogError(e, e.Message);
return data;
}
return data;
}
[HttpDelete("{id}")]
public async Task> Delete(int id = 0)
{
var data = new MessageModel();
if (id > 0)
{
var detail = await _wMPurchaseInfoServices.QueryById(id);
//detail.IsDeleted = true;
if (detail != null)
{
data.success = await _wMPurchaseInfoServices.Update(detail);
if (data.success)
{
data.msg = "删除成功";
data.response = detail?.Id.ObjToString();
}
}
}
return data;
}
///
/// 删除商品
///
///
///
[HttpDelete]
[AllowAnonymous]
public async Task> DeleteProductList(int id = 0)
{
var data = new MessageModel();
if (id > 0)
{
var PurchaseQuoteDetailModel = await _WMPurchaseQuoteDetailServices.QueryById(id);
if (PurchaseQuoteDetailModel == null)
{
data.msg = "未获取到该出库商品";
return data;
}
data.success = await _WMPurchaseQuoteDetailServices.DeleteById(id);
if (data.success)
{
var PurchaseInfoModel = await _wMPurchaseInfoServices.QueryById(PurchaseQuoteDetailModel.PurchaseId);
if (PurchaseInfoModel.EmployeeId != _user.ID)
{
data.msg = "不是当前采购人将无法删除商品";
return data;
}
var SaleDetailList = await _WMPurchaseQuoteDetailServices.Query(x => x.PurchaseId == PurchaseInfoModel.Id);
if (SaleDetailList.Count() == 0)
{
PurchaseInfoModel.Status = EnumWMPurchaseStatus.Cancellation.GetHashCode();
await _wMPurchaseInfoServices.Update(PurchaseInfoModel);
}
data.msg = "删除商品成功";
data.response = PurchaseQuoteDetailModel?.Id.ObjToString();
}
}
return data;
}
#endregion
}
}