public void GetShopCheckRefundInfoTest() { var refundId = new Guid("0CE38518-754C-4408-8BC4-55965C4BF2F8"); CheckRefundInfo actual = _target.GetShopCheckRefundInfo(refundId); Assert.AreEqual(refundId, actual.RefundId); //Assert.Inconclusive("验证此测试方法的正确性。"); }
/// <summary> /// 供前台使用修改退换检查物流信息 /// </summary> /// <param name="checkRefund"></param> /// <returns></returns> public int ModifyCheckRefundExpress(CheckRefundInfo checkRefund) { const string SQL = @"UPDATE lmShop_CheckRefund SET ExpressNo=@ExpressNo,ExpressName=@ExpressName WHERE RefundId=@RefundId "; using (SqlConnection conn = Databases.GetSqlConnection(GlobalConfig.ERP_DB_NAME, false)) { return conn.Execute(SQL, new { ExpressNo = checkRefund.ExpressNo ?? string.Empty, ExpressName = checkRefund.ExpressName ?? string.Empty, RefundId = checkRefund.RefundId }); } }
/// <summary> /// 修改退换货检查信息 /// </summary> /// <param name="refundInfo">退换货检查信息</param> /// <returns></returns> public bool UpdateCheckRefund_Server(CheckRefundInfo refundInfo) { const string SQL = @"UPDATE lmShop_CheckRefund SET CheckState=@CheckState,ReStartReason=@ReStartReason WHERE RefundId=@RefundId"; using (SqlConnection conn = Databases.GetSqlConnection(GlobalConfig.ERP_DB_NAME, false)) { return conn.Execute(SQL, new { CheckState = refundInfo.CheckState, ReStartReason = refundInfo.ReStartReason ?? string.Empty, RefundId = refundInfo.RefundId }) > 0; } }
/// <summary> /// 总后台修改退换货检查记录检查状态,不通过原因,退货仓库,重启原因(分后台编辑) /// </summary> /// <param name="refundInfo"></param> /// <returns></returns> public bool UpdateCheckRefund(CheckRefundInfo refundInfo) { using (SqlConnection conn = Databases.GetSqlConnection(GlobalConfig.ERP_DB_NAME, false)) { return conn.Execute(SQL_UPDATE_CHECKREFUND, new { RefundId = refundInfo.RefundId, CheckState = refundInfo.CheckState, Remark = refundInfo.Remark, WarehouseId = refundInfo.WarehouseId, ReStartReason = refundInfo.ReStartReason, CheckFilialeId = refundInfo.CheckFilialeId, }) > 0; } }
/// <summary> /// 获取退换货检查信息 /// </summary> /// <param name="refundId"></param> /// <returns></returns> public CheckRefundInfo GetCheckRefundInfo(Guid refundId) { var checkRefund = new CheckRefundInfo(); try { var strbSql = new StringBuilder(SQL_SELECT_CHECKREFUND); strbSql.Append(string.Format(" AND RefundId='{0}'", refundId)); using (SqlConnection conn = Databases.GetSqlConnection(GlobalConfig.ERP_DB_NAME, false)) { return conn.QueryFirstOrDefault<CheckRefundInfo>(strbSql.ToString()); } } catch (Exception ex) { throw new ApplicationException("获取退换货检查信息失败!", ex); } }
/// <summary> /// 添加退换货检查记录 /// </summary> /// <param name="refundInfo"></param> /// <returns></returns> public bool InsertCheckRefund(CheckRefundInfo refundInfo) { using (SqlConnection conn = Databases.GetSqlConnection(GlobalConfig.ERP_DB_NAME, false)) { return conn.Execute(SQL_INSERT_CHECKREFUND_SERVER, new { RefundId = refundInfo.RefundId, RefundNo = refundInfo.RefundNo, OrderId = refundInfo.OrderId, ExpressNo = refundInfo.ExpressNo, ExpressName = refundInfo.ExpressName, CreateDate = refundInfo.CreateTime, CheckState = refundInfo.CheckState, Remark = refundInfo.Remark, WarehouseId = refundInfo.WarehouseId, ReStartReason = refundInfo.ReStartReason, }) > 0; } }
/// <summary> /// 修改退货检查明细(for 联盟店退货检查) /// </summary> /// <param name="checkRefundInfo"></param> /// <param name="checkRefundDetailInfos"></param> /// <param name="msg"></param> /// <returns></returns> public bool UpdateCheckRefund(CheckRefundInfo checkRefundInfo, IList <CheckRefundDetailInfo> checkRefundDetailInfos, out string msg) { try { using (var scope = new TransactionScope()) { _refundDal.InsertCheckRefund(checkRefundInfo); foreach (var item in checkRefundDetailInfos) { _refundDal.InsertCheckDetails(item); } scope.Complete(); } } catch (Exception e) { msg = e.Message; return(false); } msg = string.Empty; return(true); }
private CheckRefundInfo ShopReaderCheckRefund(SqlDataReader rdr) { var checkRefundInfo = new CheckRefundInfo { RefundId = rdr["RefundId"] == DBNull.Value ? Guid.Empty : new Guid(rdr["RefundId"].ToString()), RefundNo = rdr["RefundNo"] == DBNull.Value ? string.Empty : rdr["RefundNo"].ToString(), OrderId = rdr["OrderId"] == DBNull.Value ? Guid.Empty : new Guid(rdr["OrderId"].ToString()), OrderNo = rdr["ApplyNo"] == DBNull.Value ? string.Empty : rdr["ApplyNo"].ToString(), Consignee = rdr["ShopName"] == DBNull.Value ? string.Empty : rdr["ShopName"].ToString(), ExpressNo = rdr["ExpressNo"] == DBNull.Value ? string.Empty : rdr["ExpressNo"].ToString(), ExpressName = rdr["ExpressName"] == DBNull.Value ? string.Empty : rdr["ExpressName"].ToString(), CreateTime = rdr["CreateDate"] == DBNull.Value ? DateTime.MinValue : DateTime.Parse(rdr["CreateDate"].ToString()), CheckState = rdr["CheckState"] == DBNull.Value ? 0 : int.Parse(rdr["CheckState"].ToString()), Remark = rdr["Remark"] == DBNull.Value ? string.Empty : rdr["Remark"].ToString(), WarehouseId = rdr["WarehouseId"] == DBNull.Value ? Guid.Empty : new Guid(rdr["WarehouseId"].ToString()), Amount = rdr["Amount"] == DBNull.Value ? 0 : decimal.Parse(rdr["Amount"].ToString()), ReStartReason = rdr["ReStartReason"] == DBNull.Value ? string.Empty : rdr["ReStartReason"].ToString(), CheckFilialeId = rdr["CheckFilialeId"] == DBNull.Value ? Guid.Empty : new Guid(rdr["CheckFilialeId"].ToString()), IsTransfer = rdr["IsTransfer"] != DBNull.Value && bool.Parse(rdr["IsTransfer"].ToString()), SaleFilialeId = rdr["SaleFilialeId"] == DBNull.Value ? Guid.Empty : new Guid(rdr["SaleFilialeId"].ToString()) }; return checkRefundInfo; }
/// <summary> /// 修改退货检查 /// </summary> /// <param name="checkRefundInfo"></param> /// <param name="checkRefundDetailInfos"></param> /// <returns></returns> public bool UpdateCheckRefundList(CheckRefundInfo checkRefundInfo, IList <CheckRefundDetailInfo> checkRefundDetailInfos) { string msg; return(_refundDalWrite.UpdateCheckRefund(checkRefundInfo, checkRefundDetailInfos, out msg)); }
/// <summary> /// 添加退换货信息以及清单信息 /// </summary> /// <param name="refundInfo">退换货信息</param> /// <param name="refundDetailList">清单信息</param> /// <returns></returns> public bool InsertCheckRefundAndDetailList(CheckRefundInfo refundInfo, IList<CheckRefundDetailInfo> refundDetailList) { bool flag; try { using (SqlConnection conn = Databases.GetSqlConnection(GlobalConfig.ERP_DB_NAME, false)) { conn.Open(); using (SqlTransaction trans = conn.BeginTransaction()) { flag = conn.Execute(SQL_INSERT_CHECKREFUND_SERVER, new { RefundId = refundInfo.RefundId, RefundNo = refundInfo.RefundNo, OrderId = refundInfo.OrderId, ExpressNo = refundInfo.ExpressNo, ExpressName = refundInfo.ExpressName, CreateDate = refundInfo.CreateTime, CheckState = refundInfo.CheckState, Remark = refundInfo.Remark, WarehouseId = refundInfo.WarehouseId, ReStartReason = refundInfo.ReStartReason, OrderNo = refundInfo.OrderNo, Consignee = refundInfo.Consignee, SaleFilialeId = refundInfo.SaleFilialeId, SalePlatformId = refundInfo.SalePlatformId, }, trans) > 0; if (flag) { foreach (var detailInfo in refundDetailList) { if (!flag) continue; flag = conn.Execute(SQL_INSERT_CHECKREFUNDDETAIL_SERVER, new { Id = detailInfo.Id, RefundId = detailInfo.RefundId, GoodsId = detailInfo.GoodsId, RealGoodsId = detailInfo.RealGoodsId, GoodsCode = detailInfo.GoodsCode ?? string.Empty, GoodsName = detailInfo.GoodsName ?? string.Empty, Specification = detailInfo.Specification ?? string.Empty, Quantity = detailInfo.Quantity, SellPrice = detailInfo.SellPrice, ReturnCount = detailInfo.ReturnCount, ReturnType = detailInfo.ReturnType, ReturnReason = detailInfo.ReturnReason ?? string.Empty, }, trans) > 0; } if (flag) trans.Commit(); else trans.Rollback(); } } } } catch (Exception ex) { throw new ApplicationException("添加退换货商品检查失败!", ex); } return flag; }
/// <summary> /// 是否成功生成退货商品检查 /// </summary> /// <param name="applyId"></param> /// <param name="expressNo"> </param> /// <param name="expressName"> </param> /// <returns></returns> public bool IsSuccessCreateCheck(Guid applyId, Guid warehouseId, string expressNo, string expressName) { //退换货原商品明细 var applyInfo = _shopRefund.GetShopExchangedApplyInfo(applyId); if (applyInfo == null) { return(false); } var shopApplyDetailInfos = _shopApplyDetail.GetShopApplyDetailList(applyId).ToList(); var flag = false; //门店传递仓库 var info = WarehouseManager.Get(warehouseId); if (info == null) { return(false); } if (shopApplyDetailInfos != null && shopApplyDetailInfos.Count > 0) { var checkRefund = new CheckRefundInfo { RefundId = Guid.NewGuid(), RefundNo = applyInfo.ApplyNo, OrderId = applyId, ExpressNo = expressNo, ExpressName = expressName, CreateTime = DateTime.Now, CheckState = (int)CheckState.Checking, Remark = string.Empty, WarehouseId = warehouseId, Amount = shopApplyDetailInfos.Sum(act => act.Quantity * act.Price), ReStartReason = "", CheckFilialeId = info.LogisticFilialeId, IsTransfer = false }; IList <CheckRefundDetailInfo> checkRefundDetailInfos = (from item in shopApplyDetailInfos select new CheckRefundDetailInfo { RefundId = checkRefund.RefundId, Id = item.ID, GoodsId = item.GoodsID, RealGoodsId = item.RealGoodsID, GoodsName = item.GoodsName, GoodsCode = item.GoodsCode, DamageCount = 0, Quantity = item.Quantity, ReturnCount = item.Quantity, ReturnReason = "", ReturnType = applyInfo.IsBarter ? 1 : 0, SellPrice = item.Price, Specification = item.Specification }).ToList(); using (var tran = new TransactionScope(TransactionScopeOption.Required)) { try { var list = _checkRefund.GetShopCheckRefundList(applyInfo.ShopID, applyId, string.Empty); if (list != null && list.Count > 0) { #region 门店采购退货增加了修改功能,需要二次检查信息;解决方案:删除老的“售后检查表”及“售后检查表明细”的数据,重新插入新的相应的信息;需求号1970(此操作跟伟哥确认过) zal 2016-03-23 var isSuccess = _checkRefund.DeleteCheckRefundInfo(list.First().RefundId); if (!isSuccess) { return(false); } #endregion } var result = _checkRefund.InsertCheckRefundAndDetailList(checkRefund, checkRefundDetailInfos); if (result) { var row = _shopRefund.UpdateExchangeState(applyId, (int)ExchangedState.Checking, "退回商品检查"); if (row > 0) { flag = true; tran.Complete(); } } } catch (Exception) { flag = false; } } } return(flag); }