Exemplo n.º 1
0
        /// <summary>
        /// 删除备注
        /// </summary>
        public string DeleteRemark()
        {
            string Id = Request.QueryString["Id"].ToString();

            bll.apiorderbll apiorderBll = new bll.apiorderbll();
            return(apiorderBll.DeleteRemark(Id));
        }
Exemplo n.º 2
0
        /// <summary>
        /// 添加备注
        /// </summary>
        public string UpdateApiOrder()
        {
            int    roleId  = helpcommon.ParmPerportys.GetNumParms(userInfo.User.personaId);
            string OrderId = Request.Form["OrderId"].ToString();
            string Remark  = Request.Form["Remark"].ToString();

            bll.apiorderbll             apiorderBll = new bll.apiorderbll();
            Dictionary <string, string> Dic         = new Dictionary <string, string>();

            Dic.Add("OrderId", OrderId);
            Dic.Add("Remark", Remark);
            Dic.Add("Edittime", DateTime.Now.ToString());
            Dic.Add("UserId", roleId.ToString());
            return(apiorderBll.UpdateApiOrder(Dic));
        }
Exemplo n.º 3
0
        /// <summary>
        /// 编辑信息
        /// </summary>
        public string EditApiOrder()
        {
            int           roleId  = helpcommon.ParmPerportys.GetNumParms(userInfo.User.personaId);
            int           menuId  = helpcommon.ParmPerportys.GetNumParms(Request.Form["menuId"].ToString());
            string        OrderId = Request.Form["OrderId"].ToString();
            StringBuilder s       = new StringBuilder();

            bll.apiorderbll      apiorderBll = new bll.apiorderbll();
            PublicHelpController ph          = new PublicHelpController();
            DataTable            dt          = apiorderBll.getOrderDetailsMsg(OrderId);

            string[] ssName       = apiorderBll.getDataName("apiOrderDetails");
            string[] ssNameParent = apiorderBll.getDataName("apiOrder"); //主菜单显示字段
            string[] ss           = ph.getFiledPermisson(roleId, menuId, funName.selectChildOrder);
            if (dt != null)
            {
                #region 表头
                s.Append("<tr>");
                for (int z = 0; z < ssName.Length; z++)
                {
                    if (ss.Contains(ssName[z]))
                    {
                        s.Append("<th>");
                        if (ssName[z] == "detailsOrderId")
                        {
                            s.Append("子订单ID");
                        }
                        if (ssName[z] == "detailsScode")
                        {
                            s.Append("商品货号");
                        }
                        if (ssName[z] == "detailsColor")
                        {
                            s.Append("颜色");
                        }
                        if (ssName[z] == "detailsImg")
                        {
                            s.Append("图片");
                        }
                        if (ssName[z] == "detailsItemPrice")
                        {
                            s.Append("商品售价");
                        }
                        if (ssName[z] == "detailsTaxPrice")
                        {
                            s.Append("税费金额");
                        }
                        if (ssName[z] == "detailsSaleCount")
                        {
                            s.Append("销售数量");
                        }
                        if (ssName[z] == "detailsDeliveryPrice")
                        {
                            s.Append("快递费用");
                        }
                        if (ssName[z] == "detailsStatus")
                        {
                            s.Append("详情状态");
                        }
                        if (ssName[z] == "detailsTime")
                        {
                            s.Append("下单时间");
                        }
                        if (ssName[z] == "detailsPayTime")
                        {
                            s.Append("付款时间");
                        }
                        if (ssName[z] == "detailsEditTime")
                        {
                            s.Append("编辑时间");
                        }
                        if (ssName[z] == "detailsSendTime")
                        {
                            s.Append("发货时间");
                        }
                        if (ssName[z] == "detailsSucessTime")
                        {
                            s.Append("结束时间");
                        }
                        if (ssName[z] == "detailsSplit")
                        {
                            s.Append("分配状态");
                        }
                        if (ssName[z] == "Def1")
                        {
                            s.Append("默认1");
                        }
                        if (ssName[z] == "Def2")
                        {
                            s.Append("默认2");
                        }
                        if (ssName[z] == "Def3")
                        {
                            s.Append("默认3");
                        }
                        if (ssName[z] == "Def4")
                        {
                            s.Append("默认4");
                        }
                        if (ssName[z] == "Def5")
                        {
                            s.Append("默认5");
                        }

                        s.Append("</th>");
                    }
                }
                s.Append("</tr>");
                #endregion

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    s.Append("<tr>");
                    for (int j = 0; j < ss.Length; j++)
                    {
                        if (ss[j].ToLower() == "id")
                        {
                            s.Append("<td>");
                            s.Append("<label id='lblId'>" + dt.Rows[i][ss[j]].ToString() + "</label>");
                            s.Append("</td>");
                        }
                        else if (ss[j].ToLower().Contains("price"))
                        {
                            s.Append("<td>");
                            s.Append("<label>" + Convert.ToDecimal(dt.Rows[i][ss[j]]).ToString("f2") + "</label>");
                            s.Append("</td>");
                        }
                        else if (ss[j].ToLower() == "detailsimg")
                        {
                            s.Append("<td>");
                            s.Append("<img src=\"" + dt.Rows[i][ss[j]].ToString() + "\" style='height:60px;' onerror='errorImg(this)'  />");
                            s.Append("</td>");
                        }
                        else
                        {
                            if (ss[j].ToLower() == "detailssplit" && (dt.Rows[i][ss[j]].ToString() == "1" || dt.Rows[i][ss[j]].ToString() == "0"))
                            {
                                if (dt.Rows[i][ss[j]].ToString() == "1")
                                {
                                    s.Append("<td class='orderSplitStates'>");
                                    s.Append("已分配");
                                    s.Append("</td>");
                                }
                                else
                                {
                                    s.Append("<td>");
                                    s.Append("未分配");
                                    s.Append("</td>");
                                }
                            }
                            else
                            {
                                s.Append("<td>");
                                s.Append(dt.Rows[i][ss[j]].ToString());
                                s.Append("</td>");
                            }
                        }
                    }
                    s.Append("</tr>");
                }
            }
            s.Append("-*-");
            DataTable dt1 = DbHelperSQL.Query(@"select * from apiOrderRemark a left join users b on a.UserId=b.Id where a.OrderId='" + OrderId + "'").Tables[0];
            if (dt1.Rows.Count > 0)
            {
                s.Append("<table class='mytable'>");
                s.Append("<tr><th style='width:125px'>操作时间</th><th>备注内容</th><th style='width:55px'>操作人</th>");
                if (ph.isFunPermisson(roleId, menuId, funName.updateName))
                {
                    s.Append("<th style='width:35px'>编辑</th>");
                }
                if (ph.isFunPermisson(roleId, menuId, funName.deleteName))
                {
                    s.Append("<th style='width:35px'>删除</th>");
                }
                s.Append("</tr>");
                for (int i = 0; i < dt1.Rows.Count; i++)
                {
                    s.Append("<tr><td>" + dt1.Rows[i]["Edittime"] + "</td><td class='tdRemark'>" + dt1.Rows[i]["Remark"] + "</td><td>" + dt1.Rows[i]["userRealName"] + "</td>");
                    if (ph.isFunPermisson(roleId, menuId, funName.updateName))
                    {
                        if (userInfo.User.Id.ToString() == dt1.Rows[i]["UserId"].ToString())
                        {
                            s.Append("<td class='EditRemark'><a href='#' title='" + dt1.Rows[i]["Id"] + "' >编辑</a></td>");
                        }
                        else
                        {
                            s.Append("<td></td>");
                        }
                    }
                    if (ph.isFunPermisson(roleId, menuId, funName.deleteName))
                    {
                        s.Append("<td><a href='#' onclick='DeleteRemark(\"" + dt1.Rows[i]["Id"] + "\")'>删除</a></td>");
                    }
                    s.Append("</tr>");
                }
                s.Append("</table>");
            }

            return(s.ToString());
        }
Exemplo n.º 4
0
        /// <summary>
        /// 分配供应商
        /// </summary>
        /// <returns></returns>
        public string getSplitSingle()
        {
            //def2   是否已分配(0未分配,1分配)

            string s              = string.Empty;
            string splitResult    = string.Empty;                                                     //分配订单返回的结果
            string repeatOrderIds = string.Empty;                                                     //重复分配的订单(表示已分配成功的订单)
            //string noOrderIds = string.Empty;                                                         //禁止分配的订单(表示订单状态非待确认状态)
            OrderHelper oh = new OrderHelper();                                                       //订单类

            bll.apiorderbll apiorderBll = new bll.apiorderbll();
            List <string>   list        = new List <string>();                                        //接收订单编号(过滤空值)
            string          orderId     = Request.Form["orderId"] ?? string.Empty;                    //订单ID

            string[] orderIds = helpcommon.StrSplit.StrSplitData(orderId, ',');                       //分割订单ID,查看是否多个订单同时分配

            for (int i = 0; i < orderIds.Length; i++)
            {
                if (!string.IsNullOrWhiteSpace(orderIds[i]))
                {
                    list.Add(orderIds[i]);
                }
            }

            #region 过滤已分配完成的订单
            List <model.apiOrder> listApiOrder = apiorderBll.getOrderMsg(orderIds);                //根据主订单获取子订单商品

            for (int m = listApiOrder.Count - 1; m >= 0; m--)
            {
                if (listApiOrder[m].def2 == "1" || listApiOrder[m].orderStatus != 1)                //过滤已分配成功的订单(表示已分配成功的订单)和禁止分配的订单(表示订单状态非待确认状态)
                {
                    repeatOrderIds += listApiOrder[m].orderId + ",";
                    listApiOrder.RemoveAt(m);
                }
            }
            if (listApiOrder.Count <= 0)
            {
                return("订单(" + repeatOrderIds + ")不允许重复分配");
            }
            #endregion

            if (list.Count > 1)
            {
                #region 分配多个订单
                for (int m = 0; m < listApiOrder.Count; m++)
                {
                    DataTable dt = apiorderBll.getOrderDetailsMsg(listApiOrder[m].orderId);           //根据主订单获取子订单商品

                    if (dt != null)
                    {
                        string[] scode = new string[dt.Rows.Count];                                   //一个订单是否有多个商品(获取一个订单中有几个商品)
                        for (int i = 0; i < dt.Rows.Count; i++)
                        {
                            scode[i] = dt.Rows[i]["detailsScode"].ToString();                         //得到子订单中的商品货号
                        }
                        s += oh.getBalance(listApiOrder[m].orderId, scode) + "\r\n";
                    }
                }
                #endregion
            }
            else
            {
                #region 分配单个订单
                orderId = orderId.Trim(',');
                DataTable dt = apiorderBll.getOrderDetailsMsg(orderId);                               //根据主订单获取子订单商品

                if (dt != null)
                {
                    string[] scode = new string[dt.Rows.Count];                                       //一个订单是否有多个商品(获取一个订单中有几个商品)
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        scode[i] = dt.Rows[i]["detailsScode"].ToString();                             //得到子订单中的商品货号
                    }
                    s = oh.getBalance(orderId, scode);
                }
                #endregion
            }

            if (!string.IsNullOrWhiteSpace(repeatOrderIds))
            {
                s += "\r\n订单(" + repeatOrderIds + ")不允许重复分配";
            }

            apiorderBll = null;
            return(s);
        }
Exemplo n.º 5
0
        /// <summary>
        /// 获取订单列表
        /// </summary>
        /// <returns></returns>
        public string getData()
        {
            #region 搜索条件
            string   orderParams  = Request.Form["params"] ?? string.Empty;                                                                      //参数
            string[] orderParamss = helpcommon.StrSplit.StrSplitData(orderParams, ',');                                                          //参数集合

            Dictionary <string, string> dic = new Dictionary <string, string>();                                                                 //搜索条件
            string orderId        = helpcommon.StrSplit.StrSplitData(orderParamss[0], ':')[1].Replace("'", "") ?? string.Empty;                  //订单ID
            string orderScode     = helpcommon.StrSplit.StrSplitData(orderParamss[1], ':')[1].Replace("'", "") ?? string.Empty;                  //订单商品货号
            string orderColor     = helpcommon.StrSplit.StrSplitData(orderParamss[2], ':')[1].Replace("'", "") ?? string.Empty;                  //订单商品颜色
            string orderBuyName   = helpcommon.StrSplit.StrSplitData(orderParamss[3], ':')[1].Replace("'", "") ?? string.Empty;                  //客户姓名
            string orderAddress   = helpcommon.StrSplit.StrSplitData(orderParamss[4], ':')[1].Replace("'", "") ?? string.Empty;                  //客户地址
            string orderMobile    = helpcommon.StrSplit.StrSplitData(orderParamss[5], ':')[1].Replace("'", "") ?? string.Empty;                  //客户手机
            string orderStatus    = helpcommon.StrSplit.StrSplitData(orderParamss[6], ':')[1].Replace("'", "") ?? string.Empty;                  //订单状态
            string orderPayStatus = helpcommon.StrSplit.StrSplitData(orderParamss[7], ':')[1].Replace("'", "").Replace("}", "") ?? string.Empty; //支付状态

            orderId        = orderId == "\'\'" ? string.Empty : orderId;
            orderScode     = orderScode == "\'\'" ? string.Empty : orderScode;
            orderColor     = orderColor == "\'\'" ? string.Empty : orderColor;
            orderBuyName   = orderBuyName == "\'\'" ? string.Empty : orderBuyName;
            orderAddress   = orderAddress == "\'\'" ? string.Empty : orderAddress;
            orderMobile    = orderMobile == "\'\'" ? string.Empty : orderMobile;
            orderStatus    = orderStatus == "\'\'" ? string.Empty : orderStatus;
            orderPayStatus = orderPayStatus == "\'\'" ? string.Empty : orderPayStatus;

            dic.Add("orderId", orderId);
            dic.Add("orderScode", orderScode);
            dic.Add("orderColor", orderColor);
            dic.Add("orderBuyName", orderBuyName);
            dic.Add("orderAddress", orderAddress);
            dic.Add("orderMobile", orderMobile);
            dic.Add("orderStatus", orderStatus);
            dic.Add("orderPayStatus", orderPayStatus);
            #endregion
            //int te = 0;
            bool splitSingle = false;                                                   //是否存在分配订单的功能权限
            bool updateName  = false;                                                   //是否存在编辑订单的功能权限
            bool deleteName  = false;                                                   //是否存在删除订单的功能权限

            int roleId = helpcommon.ParmPerportys.GetNumParms(userInfo.User.personaId); //角色ID
            int menuId = helpcommon.ParmPerportys.GetNumParms(Request.Form["menuId"]);  //菜单ID

            int pageIndex = Request.Form["pageIndex"] == null ? 0 : helpcommon.ParmPerportys.GetNumParms(Request.Form["pageIndex"]);
            int pageSize  = Request.Form["pageSize"] == null ? 10 : helpcommon.ParmPerportys.GetNumParms(Request.Form["pageSize"]);
            List <model.apiOrderModel> list = new List <model.apiOrderModel>();
            StringBuilder   s           = new StringBuilder();
            bll.apiorderbll apiorderBll = new bll.apiorderbll();
            string[]        ssName      = apiorderBll.getDataName("apiOrder");
            string[]        ssName1     = apiorderBll.getDataName("apiOrderPayDetails");
            //DataTable dt = new DataTable();
            //DataTable dt = apiorderBll.getOrderMsg( pageIndex, pageSize);
            int       count = 0;
            DataTable dt    = apiorderBll.getOrderMsg(dic, pageIndex, pageSize, out count);
            //int count = apiorderBll.getDataCount();

            int pageCount = count / pageSize;
            pageCount = count % pageSize > 0 ? pageCount + 1 : pageCount;

            PublicHelpController ph = new PublicHelpController();
            string[]             ss = ph.getFiledPermisson(roleId, menuId, funName.selectName); //获取有权限的字段

            splitSingle = ph.isFunPermisson(roleId, menuId, funName.splitSingle);               //是否存在分配订单的功能权限
            updateName  = ph.isFunPermisson(roleId, menuId, funName.updateName);                //是否存在编辑订单的功能权限
            deleteName  = ph.isFunPermisson(roleId, menuId, funName.deleteName);                //是否存在删除订单的功能权限

            #region TABLE添加
            if (ph.isFunPermisson(roleId, menuId, funName.addName))
            {
                s.Append("<tr>");
                s.Append("<th colspan='50' class='mytableadd'>");
                s.Append("<div style='padding-top: 2px;'>");
                //s.Append("<input type='button' value='展开' onclick='ShowAllTable(this)'/>");
                //s.Append("<a href='#'  onclick='javascript: showDiv()' >添加</a>");

                s.Append("</div>");
                s.Append("</th>");
                s.Append("<tr>");
            }
            #endregion

            #region TABLE表头
            s.Append("<tr>");
            s.Append("<th><input type='checkbox' id='selectAll' onclick='selectAll()' ></th>");
            s.Append("<th>详情</th>");
            for (int z = 0; z < ssName.Length; z++)
            {
                if (ss.Contains(ssName[z]))
                {
                    if (ssName[z] == "orderId")
                    {
                        s.Append("<th>"); s.Append("订单编号"); s.Append("</th>");
                    }
                    if (ssName[z] == "realName")
                    {
                        s.Append("<th>"); s.Append("姓名"); s.Append("</th>");
                    }
                    if (ssName[z] == "provinceId")
                    {
                        s.Append("<th>"); s.Append("省"); s.Append("</th>");
                    }
                    if (ssName[z] == "cityId")
                    {
                        s.Append("<th>"); s.Append("市"); s.Append("</th>");
                    }
                    if (ssName[z] == "district")
                    {
                        s.Append("<th>"); s.Append("县"); s.Append("</th>");
                    }
                    if (ssName[z] == "buyNameAddress")
                    {
                        s.Append("<th>"); s.Append("地址"); s.Append("</th>");
                    }
                    if (ssName[z] == "postcode")
                    {
                        s.Append("<th>"); s.Append("邮编"); s.Append("</th>");
                    }
                    if (ssName[z] == "phone")
                    {
                        s.Append("<th>"); s.Append("手机"); s.Append("</th>");
                    }
                    if (ssName[z] == "orderMsg")
                    {
                        s.Append("<th>"); s.Append("订单备注"); s.Append("</th>");
                    }
                    if (ssName[z] == "itemPrice")
                    {
                        s.Append("<th>"); s.Append("总金额"); s.Append("</th>");
                    }
                    if (ssName[z] == "orderStatus")
                    {
                        s.Append("<th>"); s.Append("订单状态"); s.Append("</th>");
                    }
                    if (ssName[z] == "deliveryPrice")
                    {
                        s.Append("<th>"); s.Append("快递费"); s.Append("</th>");
                    }
                    if (ssName[z] == "favorablePrice")
                    {
                        s.Append("<th>"); s.Append("优惠额"); s.Append("</th>");
                    }
                    if (ssName[z] == "taxPrice")
                    {
                        s.Append("<th>"); s.Append("税费"); s.Append("</th>");
                    }
                    if (ssName[z] == "orderPrice")
                    {
                        s.Append("<th>"); s.Append("订单金额"); s.Append("</th>");
                    }
                    if (ssName[z] == "paidPrice")
                    {
                        s.Append("<th>"); s.Append("实付金额"); s.Append("</th>");
                    }
                    if (ssName[z] == "isPay")
                    {
                        s.Append("<th>"); s.Append("支付状态"); s.Append("</th>");
                    }
                    //if (ssName[z] == "payTime")
                    //    s.Append("支付时间");
                    //if (ssName[z] == "payOuterId")
                    //    s.Append("支付流水号");
                    if (ssName[z] == "createTime")
                    {
                        s.Append("<th>"); s.Append("创建时间"); s.Append("</th>");
                    }
                    if (ssName[z] == "invoiceType")
                    {
                        s.Append("<th>"); s.Append("发票类型"); s.Append("</th>");
                    }
                    if (ssName[z] == "invoiceTitle")
                    {
                        s.Append("<th>"); s.Append("发票抬头"); s.Append("</th>");
                    }
                    if (ssName[z] == "Def1")
                    {
                        s.Append("<th>"); s.Append("身份证"); s.Append("</th>");
                    }
                    if (ssName[z] == "Def2")
                    {
                        s.Append("<th>"); s.Append("自提"); s.Append("</th>");
                    }
                    //if (ssName[z] == "Def3")
                    //    s.Append("默认3");
                    //if (ssName[z] == "Def4")
                    //    s.Append("默认4");
                    //if (ssName[z] == "Def5")
                    //    s.Append("默认5");
                }
            }

            for (int z = 0; z < ssName1.Length; z++)
            {
                if (ss.Contains(ssName1[z]))
                {
                    if (ssName1[z] == "payMentName")
                    {
                        s.Append("<th>"); s.Append("支付方式"); s.Append("</th>");
                    }
                    if (ssName1[z] == "payPlatform")
                    {
                        s.Append("<th>"); s.Append("支付平台"); s.Append("</th>");
                    }
                    if (ssName1[z] == "payId")
                    {
                        s.Append("<th>"); s.Append("内部流水号"); s.Append("</th>");
                    }
                    if (ssName1[z] == "payOuterId")
                    {
                        s.Append("<th>"); s.Append("外部流水号"); s.Append("</th>");
                    }
                    if (ssName1[z] == "payPrice")
                    {
                        s.Append("<th>"); s.Append("支付金额"); s.Append("</th>");
                    }
                    if (ssName1[z] == "payTime")
                    {
                        s.Append("<th>"); s.Append("支付时间"); s.Append("</th>");
                    }
                    if (ssName1[z] == "sellerAccount")
                    {
                        s.Append("<th>"); s.Append("卖家支付账号"); s.Append("</th>");
                    }
                    if (ssName1[z] == "buyerAccount")
                    {
                        s.Append("<th>"); s.Append("买家支付账号"); s.Append("</th>");
                    }
                }
            }

            s.Append("<th>编辑</th><th>删除</th><th>供应商</th>");
            s.Append("</tr>");
            #endregion

            #region TABLE内容
            if (dt.Rows.Count < 1)
            {
                s.Append("<tr><td colspan='50' style='text-align:center;font-size:12px;color:red;'>本次搜索暂无数据!</td></tr>");
            }

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                s.Append("<tr class='trSourceOrder' ondblclick=detailstable(this)>");
                s.Append("<td><input type='checkbox' name='ckbTable' ></td>");
                s.Append("<td onclick='showTable(this)'>+</td>");//11111111111111111111111

                for (int j = 0; j < ss.Length; j++)
                {
                    if (ss[j].ToLower() == "id")
                    {
                        s.Append("<td>");
                        s.Append("<label id='lblId'>" + dt.Rows[i][ss[j]].ToString() + "</label>");
                        s.Append("</td>");
                    }
                    else if (ss[j].ToLower() == "ispay")
                    {
                        s.Append("<td>");
                        if (dt.Rows[i][ss[j]].ToString() == "1")
                        {
                            s.Append("已支付");
                        }
                        else
                        {
                            s.Append("未支付");
                        }

                        s.Append("</td>");
                    }
                    else if (ss[j].ToLower() == "orderstatus")
                    {
                        s.Append("<td>");
                        if (dt.Rows[i][ss[j]].ToString() == "1")
                        {
                            s.Append("待确认");
                        }
                        else if (dt.Rows[i][ss[j]].ToString() == "2")
                        {
                            s.Append("已确认");
                        }
                        else if (dt.Rows[i][ss[j]].ToString() == "3")
                        {
                            s.Append("待发货");
                        }
                        else if (dt.Rows[i][ss[j]].ToString() == "4")
                        {
                            s.Append("已发货");
                        }
                        else if (dt.Rows[i][ss[j]].ToString() == "5")
                        {
                            s.Append("交易成功");
                        }
                        else if (dt.Rows[i][ss[j]].ToString() == "6")
                        {
                            s.Append("通关异常");
                        }
                        else if (dt.Rows[i][ss[j]].ToString() == "7")
                        {
                            s.Append("通关成功");
                        }
                        else if (dt.Rows[i][ss[j]].ToString() == "11")
                        {
                            s.Append("退货");
                        }
                        else if (dt.Rows[i][ss[j]].ToString() == "12")
                        {
                            s.Append("取消");
                        }
                        s.Append("</td>");
                    }
                    else if (ss[j].ToLower() == "payprice" || ss[j].ToLower() == "itemprice" || ss[j].ToLower() == "deliveryprice" || ss[j].ToLower() == "favorableprice" || ss[j].ToLower() == "taxprice" || ss[j].ToLower() == "orderprice" || ss[j].ToLower() == "paidprice")
                    {
                        s.Append("<td>");
                        s.Append(helpcommon.ParmPerportys.GetDecimalParms(dt.Rows[i][ss[j]].ToString()).ToString("F2"));
                        s.Append("</td>");
                    }
                    else
                    {
                        s.Append("<td>");
                        s.Append(dt.Rows[i][ss[j]].ToString());
                        s.Append("</td>");
                    }
                }

                #region 编辑
                s.Append("<td>");
                if (updateName)
                {
                    s.Append("<a href='#' onclick='userEdit(" + dt.Rows[i][0].ToString() + ")'>编辑</a>");
                }
                else
                {
                    s.Append("<a href='#'>无编辑权限</a>");
                }
                s.Append("</td>");
                #endregion

                #region  除
                s.Append("<td>");
                if (deleteName)
                {
                    s.Append("<a href='#' onclick='del(" + dt.Rows[i][0].ToString() + ")'>删除</a>");
                }
                else
                {
                    s.Append("<a href='#'>无删除权限</a>");
                }

                s.Append("</td>");
                #endregion

                #region 分单
                //def2   是否已分配(0未分配,1分配)
                s.Append("<td>");
                if (dt.Rows[i]["isPay"].ToString() == "1")
                {
                    if (splitSingle)
                    {
                        if (dt.Rows[i]["def2"].ToString() != "1")
                        {
                            if (dt.Rows[i]["orderStatus"].ToString() != "1")
                            {
                                s.Append("<a href='#' id='cdLink'>禁止分配</a>");
                            }
                            else
                            {
                                s.Append("<a href='#' id='cdLink' onclick=\"javascript:splitSingle('" + dt.Rows[i]["orderId"].ToString() + "');\">分配供应商</a>"); //分配供应商(开始决定一个订单只能存在一件货,先改成一个订单可以存在多件货)
                            }
                        }
                        else if (dt.Rows[i]["def2"].ToString() == "1")
                        {
                            s.Append("<a href='#' id='cdLink'>分配完成</a>");
                        }
                    }
                    else
                    {
                        s.Append("<a href='#'>无分配权限</a>");
                    }
                }
                else
                {
                    s.Append("<a href='#' id='cdLink'>禁止分配</a>");
                }
                s.Append("</td>");
                #endregion
                s.Append("</tr>");
            }
            #endregion

            #region 分页
            s.Append("-----");
            s.Append(pageCount + "-----" + count);
            #endregion

            apiorderBll = null;

            return(s.ToString());
        }
Exemplo n.º 6
0
        /// <summary>
        /// 获取订单详情列表
        /// </summary>
        /// <returns></returns>
        public string getOrderDetails()
        {
            StringBuilder s       = new StringBuilder();
            string        orderId = Request.Form["orderId"].ToString();                                      //订单ID
            int           roleId  = helpcommon.ParmPerportys.GetNumParms(userInfo.User.personaId);           //角色
            int           menuId  = helpcommon.ParmPerportys.GetNumParms(Request.Form["menuId"].ToString()); //菜单

            try
            {
                bll.apiorderbll      apiorderBll  = new bll.apiorderbll();
                PublicHelpController ph           = new PublicHelpController();
                DataTable            dt           = apiorderBll.getOrderDetailsMsg(orderId);
                string[]             ssName       = apiorderBll.getDataName("apiOrderDetails");
                string[]             ssNameParent = apiorderBll.getDataName("apiOrder"); //主菜单显示字段
                string[]             ss           = ph.getFiledPermisson(roleId, menuId, funName.selectChildOrder);



                s.Append("<tr>");
                s.Append("<td colspan='" + ssNameParent.Length + 2 + "'>");
                s.Append("<table class='details' cellspacing='0' cellpadding='0'>");

                if (dt != null)
                {
                    #region 表头
                    s.Append("<tr>");
                    for (int z = 0; z < ssName.Length; z++)
                    {
                        if (ss.Contains(ssName[z]))
                        {
                            s.Append("<td>");
                            if (ssName[z] == "detailsOrderId")
                            {
                                s.Append("子订单编号");
                            }
                            if (ssName[z] == "detailsScode")
                            {
                                s.Append("商品货号");
                            }
                            if (ssName[z] == "detailsColor")
                            {
                                s.Append("颜色");
                            }
                            if (ssName[z] == "detailsImg")
                            {
                                s.Append("图片");
                            }
                            if (ssName[z] == "detailsItemPrice")
                            {
                                s.Append("成交价");
                            }
                            if (ssName[z] == "detailsTaxPrice")
                            {
                                s.Append("税金");
                            }
                            if (ssName[z] == "detailsSaleCount")
                            {
                                s.Append("数量");
                            }
                            if (ssName[z] == "detailsDeliveryPrice")
                            {
                                s.Append("快递费");
                            }
                            if (ssName[z] == "detailsStatus")
                            {
                                s.Append("订单状态");
                            }
                            if (ssName[z] == "detailsTime")
                            {
                                s.Append("下单时间");
                            }
                            if (ssName[z] == "detailsPayTime")
                            {
                                s.Append("付款时间");
                            }
                            if (ssName[z] == "detailsEditTime")
                            {
                                s.Append("编辑时间");
                            }
                            if (ssName[z] == "detailsSendTime")
                            {
                                s.Append("发货时间");
                            }
                            if (ssName[z] == "detailsSucessTime")
                            {
                                s.Append("结束时间");
                            }
                            if (ssName[z] == "detailsSplit")
                            {
                                s.Append("分配状态");
                            }
                            if (ssName[z] == "Def1")
                            {
                                s.Append("默认1");
                            }
                            if (ssName[z] == "Def2")
                            {
                                s.Append("默认2");
                            }
                            if (ssName[z] == "Def3")
                            {
                                s.Append("默认3");
                            }
                            if (ssName[z] == "Def4")
                            {
                                s.Append("默认4");
                            }
                            if (ssName[z] == "Def5")
                            {
                                s.Append("默认5");
                            }

                            s.Append("</td>");
                        }
                    }

                    //s.Append("<td>分配</td><td>编辑</td><td>删除</td>");
                    s.Append("</tr>");
                    #endregion

                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        //(订单当前状态:1为待确认,2为确认,3为待发货,4为发货,5交易成功,6通关异常,7,通关成功,11退货,12取消)
                        s.Append("<tr>");
                        for (int j = 0; j < ss.Length; j++)
                        {
                            if (ss[j].ToLower() == "id")
                            {
                                s.Append("<td>");
                                s.Append("<label id='lblId'>" + dt.Rows[i][ss[j]].ToString() + "</label>");
                                s.Append("</td>");
                            }
                            else if (ss[j].ToLower().Contains("price"))
                            {
                                s.Append("<td>");
                                s.Append("<label>" + Convert.ToDecimal(dt.Rows[i][ss[j]].ToString() == "" ? "0" : dt.Rows[i][ss[j]]).ToString("f2") + "</label>");
                                s.Append("</td>");
                            }
                            else if (ss[j].ToLower() == "detailsimg")
                            {
                                s.Append("<td>");
                                s.Append("<img src=\"" + dt.Rows[i][ss[j]].ToString() + "\" style='height:60px;' onerror='errorImg(this)'  />");
                                s.Append("</td>");
                            }
                            else
                            {
                                if (ss[j].ToLower() == "detailssplit" && (dt.Rows[i][ss[j]].ToString() == "1" || dt.Rows[i][ss[j]].ToString() == "0")) //订单分配
                                {
                                    if (dt.Rows[i][ss[j]].ToString() == "1")
                                    {
                                        s.Append("<td class='orderSplitStates'>");
                                        s.Append("已分配");
                                        s.Append("</td>");
                                    }
                                    else
                                    {
                                        s.Append("<td>");
                                        s.Append("未分配");
                                        s.Append("</td>");
                                    }
                                }
                                else if (ss[j].ToLower() == "detailsstatus") //订单详情
                                {
                                    #region 订单详情值
                                    s.Append("<td>");
                                    if (dt.Rows[i][ss[j]].ToString() == "1")
                                    {
                                        s.Append("待确认");
                                    }
                                    else if (dt.Rows[i][ss[j]].ToString() == "2")
                                    {
                                        s.Append("已确认");
                                    }
                                    else if (dt.Rows[i][ss[j]].ToString() == "3")
                                    {
                                        s.Append("待发货");
                                    }
                                    else if (dt.Rows[i][ss[j]].ToString() == "4")
                                    {
                                        s.Append("已发货");
                                    }
                                    else if (dt.Rows[i][ss[j]].ToString() == "5")
                                    {
                                        s.Append("交易成功");
                                    }
                                    else if (dt.Rows[i][ss[j]].ToString() == "6")
                                    {
                                        s.Append("通关异常");
                                    }
                                    else if (dt.Rows[i][ss[j]].ToString() == "7")
                                    {
                                        s.Append("通关成功");
                                    }
                                    else if (dt.Rows[i][ss[j]].ToString() == "11")
                                    {
                                        s.Append("退货");
                                    }
                                    else if (dt.Rows[i][ss[j]].ToString() == "12")
                                    {
                                        s.Append("取消");
                                    }
                                    s.Append("</td>");
                                    #endregion
                                }
                                else
                                {
                                    s.Append("<td>");
                                    s.Append(dt.Rows[i][ss[j]].ToString());
                                    s.Append("</td>");
                                }
                            }
                        }

                        s.Append("</tr>");
                    }
                }
            }
            catch (Exception ex) { return(ex.Message); }

            s.Append("</table>");
            s.Append("</td>");
            s.Append("</tr>");

            return(s.ToString());
        }
        /// <summary>
        /// 拆单,分配订单
        /// </summary>
        /// <param name="orderId">订单编号</param>
        /// <param name="scode">商品货号</param>
        /// <returns></returns>
        public string getBalance(string orderId, string[] scode)
        {
            string s           = string.Empty;
            string splitResult = string.Empty;                                     //分配订单返回的结果
            string sqlText     = string.Empty;
            string cancelOrder = string.Empty;                                     //取消订单返回结果

            bll.apiorderbll apiorderBll = new bll.apiorderbll();
            DataTable       dtTime      = apiorderBll.getOrderDetailsMsg(orderId); //获取原始订单时间

            for (int f = 0; f < scode.Length; f++)                                 //如果一个订单存在多个商品,根据订单ID和货号进行遍历分配供应商
            {
                DataTable dt  = new DataTable();                                   //返回当前货号所在订单中的商品购买数量
                DataTable dt1 = new DataTable();                                   //返回当前商品(scode)的供应商,价格,库存3个属性值集合

                string detailsOrderId     = string.Empty;                          //子订单ID
                string detailsColor       = string.Empty;                          //商品颜色
                string detailsImg         = string.Empty;                          //商品图片
                string detailsTime        = string.Empty;                          //订单插入时间
                string minusBanlaceResult = string.Empty;                          //销售库存减去本次销售数量结果(成功、失败)
                string orderScode         = scode[f].ToString();                   //当前商品的货号(scode)
                int    orderScodeNum      = 0;                                     //子订单商品购买数量
                int    totalBalance       = 0;                                     //当前商品(scode)的总库存(所有供应商的库存和)
                int    saleBalanceDef3    = 0;                                     //当前商品(scode)已售数量(销售字段Def3的值)

                #region 根据orderId,scode获取订单商品购买数量
                //商品购买数量
                if (!string.IsNullOrWhiteSpace(orderId) && !string.IsNullOrWhiteSpace(orderScode))
                {
                    dt             = apiorderBll.getOrderMsg(orderId, orderScode);                                                             //根据订单号和货号返回此scode货号所在订单中的商品数量。
                    orderScodeNum  = helpcommon.ParmPerportys.GetNumParms(dt.Rows[0]["detailsSaleCount"].ToString());                          //返回此scode货号所在订单中的商品数量。
                    detailsOrderId = dt.Rows[0]["detailsOrderId"].ToString();                                                                  //子订单ID
                    detailsColor   = dt.Rows[0]["detailsColor"].ToString();                                                                    //商品颜色
                    detailsImg     = dt.Rows[0]["detailsImg"].ToString();                                                                      //商品图片
                    detailsTime    = dtTime.Rows[0]["detailsTime"].ToString();                                                                 //订单插入时间
                }
                #endregion

                #region 当前货号的3个信息值:1.供应商,2.价格,3.库存(因product表中只存在总库存数量,所以应该去productstock表中查询这3个属性值)
                Dictionary <string, decimal> dicPrice = new Dictionary <string, decimal>();                                                    //存放库存数量,价格
                Dictionary <string, int>     dicLevel = new Dictionary <string, int>();                                                        //存放数据源NO,库存数量

                Dictionary <string, decimal> dicPrice1 = new Dictionary <string, decimal>();                                                   //存放库存数量,价格
                Dictionary <string, int>     dicLevel1 = new Dictionary <string, int>();                                                       //存放数据源NO,库存数量

                ProductStockBLL ProductStockBll = new ProductStockBLL();
                dt1 = ProductStockBll.getScodeBalance(orderScode, false);                                      //返回供应商,价格,库存(当前货号的3个信息值:1.供应商,2.价格,3.库存)


                for (int i = 0; i < dt1.Rows.Count; i++)
                {
                    totalBalance += helpcommon.ParmPerportys.GetNumParms(dt1.Rows[i]["balance"].ToString());   //当前商品(scode)的总库存(所有供应商的库存和)
                }

                var m = dt1.AsEnumerable().ToArray();                                                                                               //dt1转换为数组
                var p = (from c in m orderby c["vencode"].ToString(), c["balance"].ToString(), c["price"].ToString() descending select c).ToList(); //已按供应商,库存,价格排序
                saleBalanceDef3 = ProductStockBll.getScodeBalanceSales(orderScode);                                                                 //此scode已售数量
                #endregion

                #region 总库存<=已售数量-1
                if (totalBalance <= saleBalanceDef3 - 1)//总库存<=已售数量-1(因为在bms接收app订单的时候,product表中的def3销售字段就会加上相应的订单商品购买数量)
                {
                    string cancelMsg = "库存不足,系统自动取消,";
                    //update
                    string orderResult         = MD5DAL.AppAPIHelper.ChangeOrderStatus(orderId, 3);            //给app发送取消消息
                    helpcommon.appOrderMsg msg = helpcommon.ReSerialize.ReserializeMethod(orderResult);
                    if (msg != null)
                    {
                        if (msg.Code == "0")   //code:0表示取消订单成功
                        {
                            model.pbxdatasourceDataContext context = new model.pbxdatasourceDataContext();
                            context.Connection.Open();
                            context.Transaction = context.Connection.BeginTransaction();

                            bll.sourceorderbll sourceorderBll = new bll.sourceorderbll();
                            ProductBll         Productbll     = new ProductBll();
                            cancelOrder       += sourceorderBll.cancelOrder(orderId, context);                  //bms取消订单(修改相关数据表状态为12)
                            minusBanlaceResult = Productbll.minusBanlace(orderScode, orderScodeNum, context);   //减掉此次购买商品数量  helpcommon.ParmPerportys.GetNumParms(dt1.Rows[i]["balance"].ToString());

                            if (cancelOrder.Contains("成功") && minusBanlaceResult.Contains("成功"))
                            {
                                context.Transaction.Commit();
                            }
                            else
                            {
                                context.Transaction.Rollback();
                            }
                            sourceorderBll = null;
                            Productbll     = null;
                        }
                        else
                        {
                            cancelMsg += "(" + msg.Message + ")给app推送取消订单信息失败";
                        }
                    }
                    return(cancelMsg + orderResult);                                                            // "库存不足,请取消此订单";
                }
                #endregion

                #region 分配供应商(一个订单多件商品,可能会被拆分到几个供应商。这里指同款商品多个或多款商品多个)
                int restNum = orderScodeNum; //分配到几个供应商,依次分配后,还剩下多少需要分配
                int state   = 0;             //
                for (int i = 0; i < p.Count; i++)
                {
                    if (state > 0)
                    {
                        continue;
                    }

                    #region 检测是否存在分配成功却又取消分配的订单(需重新分配)
                    DataTable dtSendSource = new bll.sourceorderbll().getOrderSendData(orderId, orderScode);                                                                                        //根据订单ID在apisendorder源头表中检测是否存在分配成功却又取消分配的订单(需重新分配)
                    sqlText += @"update apiorderdetails set detailsEditTime='" + DateTime.Now.ToString("yyyy-MM-dd") + "'  where orderId='" + orderId + "' and detailsscode='" + orderScode + "';"; //子订单编辑修改的时间
                    #endregion

                    if (helpcommon.ParmPerportys.GetNumParms(p[i]["balance"].ToString()) >= orderScodeNum)          //判断哪些数据源中的商品库存量>客户所购商品数量(供应商的库存已倒序)
                    {
                        #region 某个供应商存在足够多的库存,直接分配完成
                        //如果是取消过的订单
                        //update  p[i]["vencode"].ToString()
                        //比较vencode,取    取消订单的供应商的下一个
                        //select * from apiSendOrder where orderId = dt.Rows[0]["orderId"].ToString()

                        if (dtSendSource.Rows.Count == 1)    //存在分配成功却又取消分配的订单(需重新分配)【分配成功却又取消分配的订单只处理分配到一个供应商的订单,多个供应商由人工分配】
                        {
                            #region 存在分配成功却又取消分配的订单(需重新分配),因为前面已分配过,所以无需新增,修改即可
                            if (p[i]["vencode"].ToString() == dtSendSource.Rows[0]["sendSource"].ToString())
                            {
                                if (i + 1 < p.Count)
                                {
                                    //根据订单号、货号更改订单数量,编辑时间,供应商
                                    sqlText += @"update apiSendOrder set  newSaleCount='" + orderScodeNum + "',editTime='" + DateTime.Now.ToString("yyyy-MM-dd") + "',sendSource = '" + p[i + 1]["vencode"].ToString() + "' where orderId='" + orderId + "' and newscode='" + orderScode + "';";
                                    state++;
                                }
                                else
                                {
                                    return("订单(" + orderId + ")无供应商可分配,请取消订单");
                                }
                            }
                            #endregion
                        }
                        else
                        {
                            #region  存在分配成功却又取消分配的订单(新增记录)
                            //否则insert
                            var sendOrderId = DateTime.Now.ToString("yyyyMMddHHmmss") + new Random().Next(1000, 9999).ToString();
                            sqlText += @"insert into apiSendOrder(orderId,detailsOrderId,newOrderId,newScode,newColor,newSize,newImg,newSaleCount,
newStatus,createTime,editTime,showStatus,sendSource) values('"
                                       + orderId + "','"
                                       + detailsOrderId + "','"
                                       + sendOrderId + "','"
                                       + orderScode + "','"
                                       + detailsColor + "','"
                                       + "','"
                                       + detailsImg + "',"
                                       + orderScodeNum + ","
                                       + 1 + ",'"  //新订单状态(订单当前状态:1为待确认,2为确认,3为待发货,4为发货,5交易成功,6通关异常,7,通关成功,11退货,12取消)
                                       + detailsTime + "','"
                                       + DateTime.Now.ToString("yyyy-MM-dd") + "',"
                                       + 0 + ",'" //审核开放(是否开放给供应商查看,0为未开放,1为开放)
                                       + p[i]["vencode"].ToString() + "');";
                            state++;
                            #endregion
                        }
                        #endregion
                    }
                    else
                    {
                        #region 一个供应商库存不足,需几个供应商加在一起

                        if (dtSendSource.Rows.Count > 1)    //存在分配成功却又取消分配的订单(需重新分配)
                        {
                            return("人工处理一个订单分配到几个供应商的订单");
                        }
                        else
                        {
                            sqlText += @"insert into apiSendOrder(orderId,detailsOrderId,newOrderId,newScode,newColor,newSize,newImg,newSaleCount,
newStatus,createTime,editTime,showStatus,sendSource) values('"
                                       + orderId + "','"
                                       + detailsOrderId + "','"
                                       + DateTime.Now.ToString("yyyyMMddHHmmss") + new Random().Next(1000, 9999) + "','"
                                       + orderScode + "','"
                                       + detailsColor + "','"
                                       + "','"
                                       + detailsImg + "',"
                                       + helpcommon.ParmPerportys.GetNumParms(p[i]["balance"].ToString()) + ","
                                       + 1 + ",'" //新订单状态(订单当前状态:1为待确认,2为确认,3为待发货,4为发货,5交易成功,6通关异常,7,通关成功,11退货,12取消)
                                       + detailsTime + "','"
                                       + DateTime.Now.ToString("yyyy-MM-dd") + "',"
                                       + 0 + ",'"//审核开放(是否开放给供应商查看,0为未开放,1为开放)
                                       + p[i]["vencode"].ToString() + "');";

                            if (helpcommon.ParmPerportys.GetNumParms(p[i]["balance"].ToString()) >= restNum)                            //当分配完成后
                            {
                                restNum = restNum - helpcommon.ParmPerportys.GetNumParms(p[i]["balance"].ToString());                   //剩余购买数量
                                state++;
                            }
                        }

                        #endregion
                    }
                }
                #endregion
            }

            SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["ConnectionString"].ToString());
            con.Open();
            SqlTransaction st      = con.BeginTransaction();
            SqlCommand     command = new SqlCommand();
            try
            {
                //def2   是否已分配(0未分配,1分配)
                sqlText += @"update apiorder set def2 = 1 where orderId='" + orderId + "';";

                IDataParameter[] ipara = new IDataParameter[] { new SqlParameter("@sqlText", SqlDbType.NVarChar, 4000) };
                ipara[0].Value     = sqlText;
                command.Connection = con;
                command.Parameters.AddRange(ipara);
                command.CommandType = CommandType.StoredProcedure;
                command.CommandText = "sendSource";
                command.Transaction = st;
                command.ExecuteNonQuery();

                st.Commit();
                splitResult = "订单(" + orderId + ")分配成功";
            }
            catch (Exception ex) { st.Rollback(); splitResult = "分配失败,程序错误" + ex.Message + sqlText; }

            return(splitResult);
        }