Просмотр исходного кода

过期机具回仓退款
注释创客账户冻结功能

DuGuYang 3 лет назад
Родитель
Сommit
2cf0bdc95d

+ 3 - 0
AppStart/RelationClassForConst.cs

@@ -129,6 +129,9 @@ namespace MySystem
                 case 125:
                     result = "软件服务费";
                     break;
+                case 126:
+                    result = "机具货款退还";
+                    break;
             }
             return result;
         }

+ 1 - 0
Areas/Admin/Controllers/MainServer/StoreChangeHistoryController.cs

@@ -132,6 +132,7 @@ namespace MySystem.Areas.Admin.Controllers
                 if (TransType == 2) dic["TransType"] = "出货";
                 if (TransType == 3) dic["TransType"] = "退货";
                 if (TransType == 4) dic["TransType"] = "驳回";
+                if (TransType == 5) dic["TransType"] = "回仓退款";
                 if (TransType == 0) dic["TransType"] = "采购";
                 //SN机具类型
                 int SnType = int.Parse(dic["SnType"].ToString());

+ 2 - 0
Areas/Admin/Controllers/MainServer/StoreStockChangeController.cs

@@ -141,6 +141,8 @@ namespace MySystem.Areas.Admin.Controllers
                 if (TransType == 2) dic["TransType"] = "出货";
                 if (TransType == 3) dic["TransType"] = "退货";
                 if (TransType == 0) dic["TransType"] = "采购";
+                if (TransType == 4) dic["TransType"] = "驳回";
+                if (TransType == 5) dic["TransType"] = "回仓退款";
                 //库存操作方向
                 int StockOpDirect = int.Parse(dic["StockOpDirect"].ToString());
                 if (StockOpDirect == 0) dic["StockOpDirect"] = "入库";

+ 191 - 0
Areas/Admin/Controllers/MainServer/SysToolsController.cs

@@ -4204,5 +4204,196 @@ namespace MySystem.Areas.Admin.Controllers
         #endregion
 
 
+
+        #region 更换机具
+
+        public IActionResult RefundPosFee(string right)
+        {
+            ViewBag.RightInfo = RightInfo;
+            ViewBag.right = right;
+
+            return View();
+        }
+
+        [HttpPost]
+        public string RefundPosFeeDo(string PosSn, string BackStoreNo)
+        {
+            if (string.IsNullOrEmpty(PosSn))
+            {
+                return "请输入机具SN";
+            }
+            string[] PosSnList = PosSn.Split('\n');
+            WebCMSEntities db = new WebCMSEntities();
+            DateTime time = DateTime.Parse(DateTime.Now.ToString(("yyyy-MM-dd") + " 00:00:00"));
+            var endTime = time.AddDays(20 - time.Day).AddDays(-60);
+            foreach (var item in PosSnList)
+            {
+                MachineForSnNo machineForSnNo = db.MachineForSnNo.FirstOrDefault(m => m.SnNo == item) ?? new MachineForSnNo();
+                if (machineForSnNo.SnId == 0)
+                {
+                    return "未找到机具" + item + "关联数据";
+                }
+                PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == machineForSnNo.SnId && m.Status > -1 && m.RecycEndDate < endTime && m.BindingState == 0) ?? new PosMachinesTwo();
+                if (pos.Id == 0)
+                {
+                    return "机具" + item + "不存在或者不满足条件";
+                }
+                StoreForCode storeForBack = db.StoreForCode.FirstOrDefault(m => m.Code == BackStoreNo) ?? new StoreForCode();
+                if (storeForBack.StoreId == 0)
+                {
+                    return "未找到" + BackStoreNo + "关联数据";
+                }
+                StoreHouse BackStore = db.StoreHouse.FirstOrDefault(m => m.Status > -1 && m.Id == storeForBack.StoreId && m.BrandId == pos.BrandId.ToString()) ?? new StoreHouse();
+                if (BackStore.Id == 0)
+                {
+                    return "仓库" + BackStoreNo + "不存在或与机具品牌不符";
+                }
+                var userAccount = db.UserAccount.FirstOrDefault(m => m.Id == BackStore.UserId) ?? new UserAccount();
+                var refundUserAccount = db.UserAccount.FirstOrDefault(m => m.Id == pos.BuyUserId) ?? new UserAccount();
+                var brandInfo = db.KqProducts.FirstOrDefault(m => m.Id == pos.BrandId) ?? new KqProducts();
+                var amount = 0;
+                if (brandInfo.Name.Contains("电签"))
+                {
+                    amount = 200;
+                }
+                if (brandInfo.Name.Contains("大POS"))
+                {
+                    amount = 300;
+                }
+                userAccount.ValidAmount -= amount;//扣减分仓可用额度
+                if (pos.ScanQrTrade > 0 && pos.ScanQrTrade != 999)
+                {
+                    var BeforeBalanceAmount = refundUserAccount.BalanceAmount;
+                    var AfterBalanceAmount = refundUserAccount.BalanceAmount + pos.ScanQrTrade;
+                    refundUserAccount.BalanceAmount += pos.ScanQrTrade;//退还创客机具货款
+                    db.UserAccountRecord.Add(new UserAccountRecord()
+                    {
+                        CreateDate = DateTime.Now,
+                        UpdateDate = DateTime.Now,
+                        UserId = pos.BuyUserId, //创客
+                        ChangeType = 126, //变动类型(机具货款退还)
+                        ProductType = 0, //产品类型
+                        ChangeAmount = pos.ScanQrTrade, //变更金额
+                        BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
+                        AfterBalanceAmount = AfterBalanceAmount, //变更后余额
+                    });
+                }
+                // if (userAccount.ValidAmount - amount > 0)
+                // {
+                //     userAccount.ValidAmount -= amount;//扣减分仓可用额度
+                // }
+                // else
+                // {
+                //     return "仓库" + BackStoreNo + "可用额度不足";
+                // }
+                StoreStockChange stockchange = db.StoreStockChange.Add(new StoreStockChange()
+                {
+                    CreateDate = DateTime.Now,
+                    CreateMan = SysUserName,
+                    StoreId = pos.StoreId, //出货仓库
+                    BrandId = pos.BrandId, //产品类型
+                    ProductName = RelationClass.GetKqProductBrandInfo(pos.BrandId), //产品名称
+                    TransType = 5, //交易类型
+                    SnNo = item, //SN编号
+                    StockOpDirect = 0, //库存操作方向
+                    SnStatus = 1, //SN状态
+                    DeviceVendor = pos.DeviceName, //设备厂商
+                    DeviceModel = pos.DeviceKind, //设备型号
+                    DeviceType = pos.DeviceType, //设备类型
+                    FromUserId = pos.BuyUserId, //来源创客
+                    ToRemark = "过期机具回仓退款", //入库备注
+                    ToStoreId = BackStore.Id, //退货收货仓库                        
+                    SourceStoreId = pos.SourceStoreId, //源仓库编号
+                    BrandType = pos.DeviceType, //品牌类型
+                }).Entity;
+
+                string ChangeNo = "HCTK";
+                int StoreStockChangeId = stockchange.Id;
+                string StoreStockChangeIdString = StoreStockChangeId.ToString();
+                for (int j = 0; j < 18 - StoreStockChangeId.ToString().Length; j++)
+                {
+                    StoreStockChangeIdString = "0" + StoreStockChangeIdString;
+                }
+                ChangeNo += StoreStockChangeIdString;
+                stockchange.ChangeNo = ChangeNo; //交易流水编号
+                db.StoreChangeHistory.Add(new StoreChangeHistory()
+                {
+                    CreateDate = DateTime.Now,
+                    BrandId = pos.BrandId, //产品类型
+                    ChangeRecordNo = ChangeNo, //变更记录单号
+                    TransType = 5, //交易类型
+                    SnNo = item, //SN编号
+                    SnType = pos.PosSnType, //SN机具类型
+                    StockOpDirect = 0, //库存操作方向
+                    DeviceVendor = pos.DeviceName, //设备厂商
+                    DeviceModel = pos.DeviceKind, //设备型号
+                    DeviceType = pos.DeviceType, //设备类型
+                    FromUserId = pos.BuyUserId, //来源创客
+                    ToRemark = "过期机具回仓退款", //入库备注
+                    SourceStoreId = pos.SourceStoreId, //源仓库
+                    StoreId = pos.StoreId, //出货仓库
+                });
+                db.MachineReturn.Add(new MachineReturn()
+                {
+                    CreateDate = DateTime.Now,
+                    Operator= SysUserName + "_" + SysRealName,//操作人
+                    BrandId = pos.BrandId, //产品类型
+                    DeviceSnNos = pos.PosSn,
+                    ToStoreId = BackStore.Id,
+                    ApplyNo = ChangeNo, //变更记录单号
+                    UserId = pos.BuyUserId, //来源创客
+                    Remark = "过期机具回仓退款", //入库备注
+                });
+
+                pos.StoreId = BackStore.Id;//变更机具所属仓库,重置为仓库机
+                pos.Status = 1;
+                pos.QueryCount = 0;
+                pos.UpdateDate = null;
+                pos.ActivityList = null;
+                pos.SeoKeyword = null;
+                pos.SeoDescription = null;
+                pos.OrderId = 0;
+                pos.RecycEndDate = null;
+                pos.RecycBackCount = 0;
+                pos.PrizeParams = null;
+                pos.ScanQrTrade = 0;
+                pos.BindMerchantId = 0;
+                pos.CreditTrade = 0;
+                pos.DebitCardTrade = 0;
+                pos.IsVip = 0;
+                pos.UserNav = null;
+                pos.TransferTime = null;
+                pos.IsPurchase = 0;
+                pos.Detail = null;
+                pos.BindingTime = null;
+                pos.BindingState = 0;
+                pos.ActivationTime = null;
+                pos.ActivationState = 0;
+                pos.LeaderUserId = 0;
+                pos.PreUserId = 0;
+                pos.IsFirst = 0;
+                pos.DownFeeMan = null;
+                pos.DownFeeFlag = 0;
+                pos.DownFeeDate = null;
+                pos.UpFeeMan = null;
+                pos.UpFeeFlag = 0;
+                pos.UpFeeDate = null;
+                pos.OpReserve1 = 0;
+                pos.OpReserve2 = 0;
+                pos.OpReserve3 = 0;
+                pos.OpId = 0;
+                pos.RecycStartDate = null;
+                pos.SourcePosSn = null;
+                pos.BuyUserId = 0;
+                pos.UserId = 0;
+
+                db.SaveChanges();
+                db.Dispose();
+            }
+            return "success";
+        }
+        #endregion
+
+
     }
 }

+ 1 - 0
Areas/Admin/Views/MainServer/StoreChangeHistory/Index.cshtml

@@ -98,6 +98,7 @@
                                 <option value="3">退货</option>
                                 <option value="0">采购</option>
                                 <option value="4">驳回</option>
+                                <option value="5">回仓退款</option>
                             </select>
                         </div>
                     </div>

+ 2 - 0
Areas/Admin/Views/MainServer/StoreStockChange/Index.cshtml

@@ -96,6 +96,8 @@
                                 <option value="10">领取</option>
                                 <option value="11">划拨</option>
                                 <option value="13">退货</option>
+                                <option value="4">驳回</option>
+                                <option value="5">回仓退款</option>
                             </select>
                         </div>
                     </div>

+ 244 - 0
Areas/Admin/Views/MainServer/SysTools/RefundPosFee.cshtml

@@ -0,0 +1,244 @@
+@{
+    string RightInfo = ViewBag.RightInfo as string;
+    string right = ViewBag.right as string;
+
+}
+<!DOCTYPE html>
+<html>
+
+<head>
+    <meta charset="utf-8">
+    <title>过期机具回仓退款</title>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport"
+        content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+    <link rel="stylesheet" href="/layuiadmin/layui/css/layui.css" media="all">
+    <script src="/admin/js/jquery-1.10.1.min.js"></script>
+    <script src="/admin/js/LAreaData2.js"></script>
+</head>
+
+<body>
+
+    <div class="layui-form" lay-filter="layuiadmin-form-useradmin" id="layuiadmin-form-useradmin">
+        <form class="layui-form" id="confirmFrm">
+            <div class="layui-card">
+                <div class="layui-card-body">
+                    <div class="layui-tab" lay-filter="mytabbar">
+                        <ul class="layui-tab-title">
+                            <li class="layui-this" lay-id="1">基本信息</li>
+                        </ul>
+                        <div class="layui-tab-content mt20">
+                            <div class="layui-tab-item layui-show">
+                                <div class="layui-form-item">
+                                    <label class="layui-form-label">机具SN</label>
+                                    <div class="layui-input-block">
+                                        <textarea class="layui-textarea" lay-verify="required|" name="PosSn" id="PosSn"
+                                            placeholder="请输入机具SN,多个SN用回车隔开"></textarea>
+                                    </div>
+                                </div>
+                                <div class="layui-form-item">
+                                    <label class="layui-form-label">退回仓库编号</label>
+                                    <div class="layui-input-inline">
+                                        <input class="layui-input" type="text" id="BackStoreNo" name="BackStoreNo"
+                                            maxlength="50" lay-verify="required|" autocomplete="off"
+                                            placeholder="请输入退回仓库编号">
+                                    </div>
+                                </div>
+                            </div>
+
+                        </div>
+                    </div>
+                    <div class="layui-form-item ml10">
+                        <div class="layui-input-block">
+                            <button type="button" class="layui-btn" onclick="save()">提交</button>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </form>
+    </div>
+
+    <script src="/layuiadmin/layui/layui.js"></script>
+    <script src="/other/oss/upload-min@(MySystem.OssHelper.Instance.OssStatus ? "-oss" : "").js?r=@DateTime.Now.ToString("yyyyMMddHHmmss")"></script>
+    <script src="/other/mybjq/kindeditor-min.js"></script>
+    <script src="/other/mybjq/lang/zh_CN.js"></script>
+    <script>
+        function save() {
+            var index = layer.load(1, {
+                shade: [0.5, '#000']
+            });
+            var userdata = $("#confirmFrm").serialize();
+            $.ajax({
+                type: "POST",
+                url: "/Admin/SysTools/RefundPosFeeDo?r=" + Math.random(1),
+                data: userdata,
+                dataType: "text",
+                success: function (data) {
+                    layer.close(index); //关闭弹层
+                    if (data == "success") {
+                        layer.msg("退还成功");
+                    } else {
+                        layer.msg(data);
+                    }
+                }
+            });
+        }
+
+
+        //编辑器
+        KindEditor.ready(function (K) {
+
+        });
+
+        var ids = "";
+        function getChildren(obj) {
+            $.each(obj, function (index, value) {
+                var id = obj[index].id;
+                ids += id + ",";
+                var children = obj[index].children;
+                if (children) {
+                    getChildren(children);
+                }
+            });
+        }
+
+        function AreasProvinceInit(tagId, areasVal, form) {
+            for (var i = 0; i < provs_data.length; i++) {
+                var sel = "";
+                if (areasVal.indexOf(provs_data[i].text) > -1) {
+                    sel = " selected=selected";
+                }
+                $("#" + tagId + "Province").append('<option value="' + provs_data[i].value + '"' + sel + '>' + provs_data[i].text + '</option>');
+            }
+            form.render();
+        }
+
+        function AreasProvinceSelected(tagId, areasVal, form, value) {
+            $("#" + tagId + "City").html('<option value="">市</option>');
+            var list = citys_data[value];
+            for (var i = 0; i < list.length; i++) {
+                var sel = "";
+                if (areasVal.indexOf(list[i].text) > -1) {
+                    sel = " selected=selected";
+                }
+                $("#" + tagId + "City").append('<option value="' + list[i].value + '"' + sel + '>' + list[i].text + '</option>');
+            }
+            $("#" + tagId + "Area").html('<option value="">县/区</option>');
+            form.render();
+            $("#" + tagId + "").val($("#" + tagId + "Province option:selected").text() + "," + $("#" + tagId + "City option:selected").text() + "," + $("#" + tagId + "Area option:selected").text());
+        }
+
+        function AreasCitySelected(tagId, areasVal, form, value) {
+            $("#" + tagId + "Area").html('<option value="">县/区</option>');
+            var list = dists_data[value];
+            for (var i = 0; i < list.length; i++) {
+                var sel = "";
+                if (areasVal.indexOf(list[i].text) > -1) {
+                    sel = " selected=selected";
+                }
+                $("#" + tagId + "Area").append('<option value="' + list[i].value + '"' + sel + '>' + list[i].text + '</option>');
+            }
+            form.render();
+            $("#" + tagId + "").val($("#" + tagId + "Province option:selected").text() + "," + $("#" + tagId + "City option:selected").text() + "," + $("#" + tagId + "Area option:selected").text());
+        }
+
+        function AreasAreaSelected(tagId, form) {
+            form.render();
+            $("#" + tagId + "").val($("#" + tagId + "Province option:selected").text() + "," + $("#" + tagId + "City option:selected").text() + "," + $("#" + tagId + "Area option:selected").text());
+        }
+        function movePrev(obj, tagId) {
+            $(obj).parent().prev().insertAfter($(obj).parent());
+            checkPics(tagId);
+        }
+        function moveNext(obj, tagId) {
+            $(obj).parent().next().insertBefore($(obj).parent());
+            checkPics(tagId);
+        }
+        function deletePic(obj, tagId) {
+            $(obj).parent().remove();
+            checkPics(tagId);
+        }
+        function checkPics(tagId) {
+            var pics = "";
+            var texts = "";
+            $("#" + tagId + "Image div img").each(function (i) {
+                pics += $(this).attr("src").replace(osshost, '') + "|";
+            });
+            $("#" + tagId + "Image div input").each(function (i) {
+                texts += $(this).val() + "|";
+            });
+            if (pics == "") {
+                $("#" + tagId).val("");
+            } else {
+                pics = pics.substring(0, pics.length - 1);
+                texts = texts.substring(0, pics.length - 1);
+                $("#" + tagId).val(pics + "#cut#" + texts);
+            }
+        }
+        function checkBox(tagId) {
+            var text = "";
+            $("input[type=checkbox][name=" + tagId + "List]:checked").each(function (i) {
+                text += $(this).val() + ",";
+            });
+            $("#" + tagId).val(text);
+        }
+        function showBigPic(picpath) {
+            parent.layer.open({
+                type: 1,
+                title: false,
+                closeBtn: 0,
+                shadeClose: true,
+                area: ['auto', 'auto'],
+                content: '<img src="' + picpath + '" style="max-width:800px; max-height:800px;" />'
+            });
+        }
+
+
+        var tree;
+        var element;
+        var upload;
+        layui.config({
+            base: '/layuiadmin/' //静态资源所在路径
+        }).extend({
+            index: 'lib/index' //主入口模块
+        }).use(['index', 'form', 'upload', 'layedit', 'laydate', 'element', 'croppers', 'transfer', 'tree', 'util'], function () {
+            var $ = layui.$
+                , form = layui.form
+                , layer = layui.layer
+                , layedit = layui.layedit
+                , laydate = layui.laydate
+                , croppers = layui.croppers
+                , transfer = layui.transfer
+                , util = layui.util;
+            tree = layui.tree;
+            element = layui.element;
+            upload = layui.upload;
+
+            //Hash地址的定位
+            var layid = location.hash.replace(/^#test=/, '');
+            element.tabChange('test', layid);
+            element.on('tab(test)', function (elem) {
+                location.hash = 'test=' + $(this).attr('lay-id');
+            });
+
+            //日期
+
+
+            //上传文件
+
+
+            //穿梭框
+
+
+            //TreeView,比如权限管理
+
+
+            //省市区
+
+        })
+
+    </script>
+</body>
+
+</html>

+ 1 - 1
Areas/Admin/Views/MainServer/UserAccount/Index.cshtml

@@ -117,7 +117,7 @@
                     {
                         <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="closeRemark"><i class="layui-icon layui-icon-edit"></i>冻结备注</a>
                     @("{{#if (d.AccountStatus == 0){ }}")
-                    <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="Close"><i class="layui-icon layui-icon-edit"></i>冻结</a>
+                    @* <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="Close"><i class="layui-icon layui-icon-edit"></i>冻结</a> *@
                     @("{{#}else{ }}")
                     <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="Open"><i class="layui-icon layui-icon-edit"></i>解冻</a>
                     @("{{#} }}")