zhuyiyi před 10 měsíci
rodič
revize
57f43eba65

+ 24 - 0
BizCom/Dao/CeErpTradeAfterSaleExtend.cs

@@ -203,6 +203,30 @@ namespace BizCom
 
         }
 
+        private string _issueContent = "";
+        /// <summary>
+        /// 反馈问题
+        /// </summary>
+        [Property]
+        public string IssueContent
+        {
+            get { return _issueContent; }
+            set { _issueContent = value; }
+
+        }
+
+        private int _issueState = 0;
+        /// <summary>
+        /// 反馈状态 1提交 2完成
+        /// </summary>
+        [Property]
+        public int IssueState
+        {
+            get { return _issueState; }
+            set { _issueState = value; }
+
+        }
+
         public static CeErpTradeAfterSaleExtend getByTid(string tid)
         {
             return FindFirst(Expression.Sql(string.Format("tid='{0}'", tid)));

+ 96 - 9
SiteCore/Handler/sync.order.cs

@@ -3517,17 +3517,20 @@ namespace SiteCore.Handler
                 dStruct.PageSize = 200;
             }
             DataTable dt = WebCache.GetData("view_Waitorderlist", dStruct);
-            foreach (DataRow dr in dt.Rows)
+            if (dt != null)
             {
-                dr["receiver_address"] = dr["receiver_name"].ToString() + "   " + dr["receiver_mobile"].ToString() + "   " + dr["receiver_state"].ToString() + dr["receiver_city"].ToString() + dr["receiver_district"].ToString() + dr["receiver_address"].ToString();
-                if (Convert.IsDBNull(dr["SupplierId"]) || Convert.ToInt32(dr["SupplierId"]) == 0)
+                foreach (DataRow dr in dt.Rows)
                 {
-                    CeErpTradeCell entity = CeErpTradeCell.GetByCtid(dr["ctid"].ToString());
-                    int suid = commonHelper.autoDistributeToSupplier(entity); //自动分配供应商
-                    entity.SupplierId = suid;
-                    string suname = commonHelper.getSupplierNameById(entity.SupplierId);
-                    LogHelper.addLog(entity.ctid, 0, "匹配供应商:" + suname, entity.OrderState);
-                    entity.Update();
+                    dr["receiver_address"] = dr["receiver_name"].ToString() + "   " + dr["receiver_mobile"].ToString() + "   " + dr["receiver_state"].ToString() + dr["receiver_city"].ToString() + dr["receiver_district"].ToString() + dr["receiver_address"].ToString();
+                    if (Convert.IsDBNull(dr["SupplierId"]) || Convert.ToInt32(dr["SupplierId"]) == 0)
+                    {
+                        CeErpTradeCell entity = CeErpTradeCell.GetByCtid(dr["ctid"].ToString());
+                        int suid = commonHelper.autoDistributeToSupplier(entity); //自动分配供应商
+                        entity.SupplierId = suid;
+                        string suname = commonHelper.getSupplierNameById(entity.SupplierId);
+                        LogHelper.addLog(entity.ctid, 0, "匹配供应商:" + suname, entity.OrderState);
+                        entity.Update();
+                    }
                 }
             }
             writeGridDataTableJson(dStruct.TotalCount, dt);
@@ -12316,7 +12319,91 @@ namespace SiteCore.Handler
             designHelper.api_approveDesign(ctids);     //approveDesign
             returnSuccessMsg("");
         }
+        public void get_issue_list()
+        {
+            DataStruct dStruct = GetPostStruct();
+            List<string> lw = new List<string>();
+            int st = 2;
+            string tid = GetPostString("ctid");
+
+            if (tid.Length > 0) lw.Add(string.Format("(ctid = '{0}' or tid = '{0}' or orderSn = '{0}')", tid));
+
+            string shopname = GetPostString("shopname");
+            if (shopname.Length > 0) lw.Add(string.Format("seller_nick = '{0}'", shopname));
+            string buyernick = GetPostString("buyer_nick");
+            if (buyernick.Length > 0) lw.Add(string.Format("buyer_nick like '%{0}%'", buyernick));
+            string sellermemo = GetPostString("seller_memo");
+            if (sellermemo.Length > 0) lw.Add(string.Format("seller_memo like '%{0}%'", sellermemo));
+
+            string supplier = GetPostString("supplier");
+            if (supplier.Length > 0) lw.Add(string.Format("SupplierName like '%{0}%'", supplier));
+
+
+            string customer = GetPostString("customer");
+            if (customer.Length > 0) lw.Add(string.Format("CustomerTb like '%{0}%'", customer));
+            string design = GetPostString("design");
+            if (design.Length > 0) lw.Add(string.Format("DesignUserName like '%{0}%'", design));
+
+            //lw.Add(string.Format("IsArbitrate  != '{0}'", 2));
+
+            string poscode = CurrentUser.UserPost.Post.Code;
+            if (poscode != "SysAdmin")
+            {
+                string shopid = CurrentUser.User.pemShop;
+                lw.Add(string.Format("shopId in ({0})", shopid));
+            }
+            lw.Add("IssueState > 0");
+            dStruct.MainWhere = string.Join(" and ", lw.ToArray());
+            DataTable dt = WebCache.GetData("view_ErpTradeCellIssue", dStruct);
+            writeGridDataTableJson(dStruct.TotalCount, dt);
+        }
+        public void saveIssueContent()
+        {
+            string ctid = GetPostString("ctid");
+            if (!string.IsNullOrEmpty(ctid))
+            {
+                string content = GetPostString("content");
+                CeErpTradeAfterSaleExtend ceErpTradeAfterSaleExtend = CeErpTradeAfterSaleExtend.getByTid(ctid);
+                if (ceErpTradeAfterSaleExtend == null)
+                {
+                    ceErpTradeAfterSaleExtend = new CeErpTradeAfterSaleExtend();
+                    ceErpTradeAfterSaleExtend.tid = ctid;
+                }
+                ceErpTradeAfterSaleExtend.IssueContent = content;
+                ceErpTradeAfterSaleExtend.IssueState = 1;
+                if (ceErpTradeAfterSaleExtend.ID > 0)
+                {
+                    ceErpTradeAfterSaleExtend.Update();
+                }
+                else
+                {
+                    ceErpTradeAfterSaleExtend.Create();
+                }
+                LogHelper.addLog(ctid, CurrentUser.UserID, "添加问题反馈信息:" + content, 6);
+                returnSuccessMsg("添加成功!");
+                return;
+            }
+            returnErrorMsg("找不到订单");
+        }
 
+        public void dealIssueContent()
+        {
+            string ctid = GetPostString("ctid");
+            if (!string.IsNullOrEmpty(ctid))
+            {
+                string content = GetPostString("content");
+                CeErpTradeAfterSaleExtend ceErpTradeAfterSaleExtend = CeErpTradeAfterSaleExtend.getByTid(ctid);
+                if (ceErpTradeAfterSaleExtend != null)
+                {
+                    ceErpTradeAfterSaleExtend.IssueState = 2;
+                    ceErpTradeAfterSaleExtend.Update();
+                    LogHelper.addLog(ctid, CurrentUser.UserID, "处理问题反馈信息", 6);
+                    returnSuccessMsg("修改完成!");
+                    return;
+                }
+            }
+            returnErrorMsg("找不到订单");
+        }
     }
 
 }

+ 1 - 0
SiteCore/taoObj/api_trade_info.cs

@@ -127,6 +127,7 @@ namespace SiteCore.taoObj
 
             public List<TradeItemOrder> bizOrderItems { get; set; }
             public List<bizOrderSplit> bizOrderSplits { get; set; }
+            public bool IsNew { get; set; }
         }
         public class TradeItemOrder
         {

+ 5 - 4
SiteCore/taobao/preSalesHelper.cs

@@ -501,9 +501,9 @@ namespace SiteCore.Handler
                     foreach (DataRow dr in dt.Rows)
                     {
                         int OrderState = Convert.ToInt32(dr["OrderState"]);
-                        if (OrderState >= 4)
+                        if (OrderState >= 5)
                         {
-                            returnErrorMsg(dr["ctid"] + "设计订单无法重置");
+                            returnErrorMsg(dr["ctid"] + "设计完成订单无法重置");
                             return;
                         }
                         LogHelper.addLog(dr["ctid"].ToString(), UserID, "售前:订单重置", 0, 1);
@@ -829,11 +829,11 @@ namespace SiteCore.Handler
                             pers.audit_type = 0;
                             if (tag == 4)
                             {
-                                pers.stay_type = "推多";
+                                pers.stay_type = "微信推购";
                             }
                             else
                             {
-                                pers.stay_type = "推购";
+                                pers.stay_type = "旺旺推购";
                             }
 
                             if (entity.IsXianHuo == 0)
@@ -2121,6 +2121,7 @@ namespace SiteCore.Handler
             trade.posCode = bizOrder.shopCode;
             if (isCreate)
             {
+                trade.IsNew = bizOrder.IsNew;
                 trade.Create();
             }
             else

+ 4 - 1
SiteCore/taobao/tmcHelper.cs

@@ -836,7 +836,10 @@ namespace SiteCore
             //    xianhuoMemo += "-";
             //    xianhuoMemo += trade.seller_nick;
             //}
-            trade.IsNew = isNew;
+            if (!trade.IsNew)
+            {
+                trade.IsNew = isNew;
+            }
             CeErpTradeCell entity = null;
             entity = CeErpTradeCell.GetByCtid_M(tObj.refOid);
             if (entity == null)

+ 160 - 0
Web/EAfterSale/IssueContent.aspx

@@ -0,0 +1,160 @@
+<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage/ErpView.master" AutoEventWireup="true" CodeFile="IssueContent.aspx.cs" Inherits="EAfterSale_IssueContent" %>
+
+<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
+    <style type="text/css">
+        .marginleft20 {
+            margin-left: 20px;
+        }
+
+        .mini-grid-cell-nowrap {
+            overflow: hidden;
+            /* white-space: nowrap;
+            text-overflow: ellipsis; */
+            word-break: break-all;
+            word-wrap: break-word;
+            white-space: pre-wrap;
+        }
+
+        .hz {
+            display: flex;
+            flex-direction: row;
+            float: right;
+            margin-right: 50px;
+            font-size: 14px;
+            height: 30px;
+            line-height: 30px;
+            vertical-align: middle;
+        }
+
+            .hz a {
+                height: 30px;
+                line-height: 30px;
+            }
+    </style>
+    <script type="text/javascript">
+
+        function searchFn() {
+            var form = new mini.Form("#ctl00_f_all");
+            var data = form.getData(true, false);
+            var s = data;
+            //var s = mini.encode(data);
+            //alert(s);
+            //form.setIsValid(false);
+            //console.log("565656565", data);
+            grid.load({
+                ctid: s.tid, shopname: s.shop, buyer_nick: s.ww, design: s.design, customer: s.customer, orderState: s.state, supplier: s.supplier,
+            });
+        }
+        function orderPTimeRenderer(e) {
+            var grid = e.sender;
+            var record = e.record;
+            var tid = record.tid;
+            var rowIndex = e.rowIndex;
+            var html = "<div style=\"display:flex;flex-direction:column;\">";
+            html += ("<div>" + record.seller_nick + "</div>");
+
+            html += getWWurlByNick(record.buyer_nick);
+            html += ("<div>" + formatCommonDate(record.pay_time) + "</div>");
+            if (record.UrgencyTime != "") {
+                html += ("<div style=\"color:red;\">急:" + formatCommonDate(record.UrgencyTime) + "</div>");
+            }
+            html += "</div>";
+            return html;
+        }
+
+        function orderStatusRenderer(e) {
+            var grid = e.sender;
+            var record = e.record;
+            var tid = record.tid;
+            var rowIndex = e.rowIndex;
+            var statestr = getOrderStatestrByState(record.OrderState);
+            var html = "<div style=\"display:flex;flex-direction:column;\">";
+            html += ("<div onclick=\"clickToLog('" + record.ctid + "')\" style=\"color:blue;margin-bottom:10px;\">" + statestr + "</div>");
+            var taostatus = getInitStatusstrByState(record.status);
+            html += ("<div>" + taostatus + "</div>");
+            if (record.ExpressNo && record.ExpressNo != "") {
+                html += ("<div style=\"color:red;margin-top:5px;\">单号:" + record.ExpressNo + "</div>");
+            }
+            html += "</div>";
+            return html;
+        }
+        function SFRenderer(e) {
+            var record = e.record;
+            var html = "<div style=\"display:flex;flex-direction:column;\">";
+            if (record.IsSF == 1) {
+                html += ("<div style=\"color:blue;\"> 顺丰寄付 </div>");
+            }
+            else if (record.IsSF == 2) {
+                html += ("<div style=\"color:green;\"> 顺丰到付 </div>");
+            }
+
+            html += "</div>";
+            return html;
+        }
+        function addressRenderer(e) {
+            var grid = e.sender;
+            var record = e.record;
+            var tid = record.tid;
+            var rowIndex = e.rowIndex;
+            var html = "<div>" + record.receiver_name + "  " + record.receiver_mobile + "  " + record.receiver_state + record.receiver_city + record.receiver_district + record.receiver_address + "</div>";
+            return html;
+        }
+        function orderCusRenderer(e) {
+            var grid = e.sender;
+            var record = e.record;
+            var ctid = record.ctid;
+            var rowIndex = e.rowIndex;
+            var html = "<div style=\"display:flex;flex-direction:column;align-items:center;\">";
+            html += ("<a style='color:#0090FF;'>客服:" + record.CustomerUserName + "</a>");
+            html += ("<a style='color:#0090FF;'>设计师:" + record.DesignUserName + "</a>");
+            html += ("<a style='color:#0090FF;'>供应商:" + record.SupplierName + "</a>");
+            //if (record.MemoOpt == 3) {
+            //    html += ("<a style=\"width:40px;color:red;border:1px solid red;\" onclick=\"clickResetOptFn()\">查货</a>");
+            //}
+            html += "</div>";
+            return html;
+        }
+        function actionRenderer(e) {
+            var grid = e.sender;
+            var record = e.record;
+            var ctid = record.ctid;
+            var html = "";
+            if (record.IssueState == 1) {
+                html += getGridBtn("dis", "处理完成", "completeDeal('" + ctid + "')");
+            }
+            return html;
+        }
+        function completeDeal(ctid) {
+            if (!confirm("确认处理完成?")) return;
+            postAjax("dealIssueContent", "ctid=" + ctid, function (data) {
+                resultShow(data, "grid.reload();");
+            });
+        }
+    </script>
+</asp:Content>
+<asp:Content ID="Content2" ContentPlaceHolderID="btn" runat="Server">
+    <a id="btnExport" runat="server" class="mini-button mini-button-success" iconcls="icon-folder" onclick="exportFn()">导出</a>
+</asp:Content>
+<asp:Content ID="Content4" ContentPlaceHolderID="content" runat="Server">
+    <div class="mini-fit">
+        <div id="m_grid" class="mini-datagrid" style="width: 98%;" showemptytext="true" emptytext="暂无记录" contextmenu="#gridMenu" url="../handler/sync.ashx?t=get_issue_list">
+            <div property="columns">
+                <div type="checkcolumn" width="20"></div>
+                <div field="tid" width="110" align="center" headeralign="center" renderer="orderIdRenderer">订单编号</div>
+                <div field="pay_time" width="80" align="center" headeralign="center" renderer="orderPTimeRenderer">付款时间</div>
+                <div field="seller_memo" width="150" align="center" headeralign="center" renderer="memoRenderer">备注</div>
+                <div field="OrderState" width="40" align="center" headeralign="center" renderer="orderStatusRenderer">状态</div>
+                <div field="IsSF" width="50" align="center" headeralign="center" renderer="SFRenderer">是否顺丰</div>
+                <div name="address" width="80" align="center" headeralign="center" renderer="addressRenderer">收货地址</div>
+                <div name="orderscus" width="60" align="center" headeralign="center" renderer="orderCusRenderer">供应商</div>
+                <div field="IssueContent" width="60" align="center" headeralign="center">反馈信息</div>
+                <div name="action" width="50" headeralign="center" align="center" renderer="actionRenderer" cellstyle="padding:0;">#</div>
+            </div>
+        </div>
+    </div>
+    <ul id="gridMenu" class="mini-contextmenu" onbeforeopen="onBeforeOpen">
+        <li name="edit" iconcls="icon-copy" onclick="onCopyOrder">复制单号</li>
+        <li name="edit" iconcls="icon-copy" onclick="onCopyBuyerNick">复制旺旺号</li>
+    </ul>
+</asp:Content>
+

+ 37 - 0
Web/EAfterSale/IssueContent.aspx.cs

@@ -0,0 +1,37 @@
+using SiteCore;
+using SQLData;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Web;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+using Utils.Serialization;
+
+public partial class EAfterSale_IssueContent : BasePage
+{
+    protected override void OnPreInit(EventArgs e)
+    {
+        _repTitle = "问题反馈";
+        PmTag = "issueContent";
+        //_selfCheckPermission = true;
+        _keyFilterVisible = false;
+        _addVisible = false;
+        _filterItem = "order,shop,cus,design,wang";
+        _filterDateBtn = false;
+    }
+
+    protected void Page_Load(object sender, EventArgs e)
+    {
+        if (!IsPostBack)
+        {
+            string sData = GetString("sData");
+            if (sData != "") AppendScript("openPageData=" + sData + ";");
+            AppendScript("viewUrl='" + webConfig.ltFileSiteUrl + "/d/xddj';uploadUrl ='" + webConfig.ltSimUploadUrl + "?ut=xddj';");
+            AppendScript("userPostCode='" + CurrentUser.UserPost.Post.Code + "';");
+            AppendScript("CurrentUserId='" + CurrentUser.UserPost.UserID + "';");
+        }
+    }
+}

+ 1 - 1
Web/EAfterSale/js/Handling.js

@@ -541,7 +541,7 @@ function saveHandleFn() {
     parms.AfterSalePayment = $("#txtPayment").val();
     parms.DeductFee = $("#txtDeduct").val();
     parms.RefundFee = $("#txtRefund").val();
-    if ( parms.supRefundType == "") {
+    if (mini.get("txtReason1").getText() != "客户问题" && mini.get("txtReason1").getText() != "系统问题" && parms.supRefundType == "") {
         mini.alert("请选择退款类型");
         return;
     }

+ 17 - 1
Web/EDelivery/PddDelivering.aspx

@@ -219,7 +219,23 @@
             </tr>
         </table>
     </div>
-
+    <div id="issue_win" class="mini-window" title="问题反馈" style="width: 550px; height: 200px; position: relative; display: none">
+        <table class="win_tb" border="0" cellpadding="0" cellspacing="1">
+            <tr>
+                <td class="td1">问题反馈</td>
+                <td class="td2" colspan="3">
+                    <textarea id="txtIssue" style="width: 96%; height: 60px;"></textarea></td>
+            </tr>
+            <tr>
+                <td colspan="4">
+                    <div class="win_btn" style="text-align: center;">
+                        <a class="mini-button" iconcls="icon-ok" onclick="saveIssueFn">保存</a>&nbsp;
+                        <a class="mini-button" iconcls="icon-cancel" onclick="canceIssueFn">取消</a>
+                    </div>
+                </td>
+            </tr>
+        </table>
+    </div>
     <div id="memo_win" class="mini-window" title="备注信息" style="width: 550px; height: 200px; position: relative; display: none">
         <table class="win_tb" border="0" cellpadding="0" cellspacing="1">
             <tr>

+ 18 - 0
Web/EDelivery/WaitingDelivery.aspx

@@ -237,6 +237,24 @@
         </table>
     </div>
 
+    <div id="issue_win" class="mini-window" title="问题反馈" style="width: 550px; height: 200px; position: relative; display: none">
+        <table class="win_tb" border="0" cellpadding="0" cellspacing="1">
+            <tr>
+                <td class="td1">问题反馈</td>
+                <td class="td2" colspan="3">
+                    <textarea id="txtIssue" style="width: 96%; height: 60px;"></textarea></td>
+            </tr>
+            <tr>
+                <td colspan="4">
+                    <div class="win_btn" style="text-align: center;">
+                        <a class="mini-button" iconcls="icon-ok" onclick="saveIssueFn">保存</a>&nbsp;
+                        <a class="mini-button" iconcls="icon-cancel" onclick="canceIssueFn">取消</a>
+                    </div>
+                </td>
+            </tr>
+        </table>
+    </div>
+
     <div id="price_win" class="mini-window" title="成本登记" style="width: 550px; height: 300px; position: relative; display: none">
         <table class="win_tb" border="0" cellpadding="0" cellspacing="1">
             <tr>

+ 17 - 0
Web/EDelivery/js/PddDelivered.js

@@ -163,6 +163,22 @@ function clickResetOptFn() {
     });
 }
 
+function canceIssueFn() {
+    mini.get("issue_win").hide();
+}
+function setIssueContent(eid) {
+    edit_id = eid;
+    mini.get("issue_win").show();
+}
+function saveIssueFn() {
+    var parms = new Object();
+    parms.ctid = edit_id;
+    parms.content = $("#txtIssue").val();
+    postAjax("saveIssueContent", parms, function (data) {
+        mini.get("issue_win").hide();
+        resultShow(data, "grid.reload();");
+    });
+}
 
 //点击指派按钮
 function assignSupplierFn() {
@@ -261,6 +277,7 @@ function actionRenderer(e) {
     var id = record.ID;
     var html = getGridBtn("view", "预览文件", "viewCdrImg('" + id + "')");
     html += getGridBtn("edit", "修改物流", "changeExpress('" + record.ctid + "')");
+    html += getGridBtn("dis", "问题反馈", "setIssueContent('" + ctid + "')");
     if (!!record.attachments) {
         html += getGridBtn("view", "下载附件", "downAtta('" + record.attachments + "')");
     }

+ 18 - 0
Web/EDelivery/js/WaitingDelivery.js

@@ -118,6 +118,7 @@ function actionRenderer(e) {
     html += getGridBtn("edit", "查单备注", "checkMemoFn('" + ctid + "')");
     html += getGridBtn("dis", "发货", "deliveryFn('" + ctid + "','" + record.seller_nick + "')");
     html += getGridBtn("dis", "标记已发", "setBuchaDelivery('" + ctid + "')");
+    html += getGridBtn("dis", "问题反馈", "setIssueContent('" + ctid + "')");
     if (userPostCode != "Supplier") {
         html += getGridBtn("edit", "成本登记", "showPriceWin('" + ctid + "','" + record.payment_cyt + "','" + record.SupplierName + "')");
     }
@@ -243,6 +244,22 @@ function urgencyFn(eid) {
 function canceMemolFn() {
     mini.get("memo_win").hide();
 }
+function canceIssueFn() {
+    mini.get("issue_win").hide();
+}
+function setIssueContent(eid) {
+    edit_id = eid;
+    mini.get("issue_win").show();
+}
+function saveIssueFn() {
+    var parms = new Object();
+    parms.ctid = edit_id;
+    parms.content = $("#txtIssue").val();
+    postAjax("saveIssueContent", parms, function (data) {
+        mini.get("issue_win").hide();
+        resultShow(data, "grid.reload();");
+    });
+}
 
 //保存备注
 function saveMemoFn() {
@@ -314,6 +331,7 @@ function checkMemoFn(eid) {
     mini.get("memo_win").show();
 }
 
+
 //点击查货重置状态
 function clickResetOptFn() {
     var rec = grid.getSelected();